]> source.dussan.org Git - vaadin-framework.git/commitdiff
Revert "Drag image for text-area should contain text of text-area (#13557)"
authorTeemu Suo-Anttila <teemusa@vaadin.com>
Mon, 14 Apr 2014 11:14:32 +0000 (11:14 +0000)
committerVaadin Code Review <review@vaadin.com>
Mon, 14 Apr 2014 12:05:45 +0000 (12:05 +0000)
This reverts commit f227f0c1068f17e5491bd399d9f5bde16a0c8272.

Synchronising content after IE wraps the given element into a table with
a body causes a NullPointerException on client side.

This patch also contains new API and should be targeted to master branch.

Change-Id: Ia19acd9fa31c7b67507bf797a2bab7c28ea37b4b

client/src/com/vaadin/client/ui/VTextArea.java
client/src/com/vaadin/client/ui/dd/VDragCloneAware.java [deleted file]
client/src/com/vaadin/client/ui/dd/VDragEvent.java
uitest/src/com/vaadin/tests/components/draganddropwrapper/DragAndDropTextArea.java [deleted file]
uitest/src/com/vaadin/tests/components/draganddropwrapper/DragAndDropTextAreaTest.java [deleted file]

index 627d14a0589798e5661aaa01be3df971fe8e7d53..2a697969df0d46c93168c5e13cd37f8475e9c269 100644 (file)
@@ -17,7 +17,6 @@
 package com.vaadin.client.ui;
 
 import com.google.gwt.core.client.Scheduler;
-import com.google.gwt.dom.client.Element;
 import com.google.gwt.dom.client.Style.Overflow;
 import com.google.gwt.dom.client.Style.WhiteSpace;
 import com.google.gwt.dom.client.TextAreaElement;
@@ -31,7 +30,6 @@ import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.Event;
 import com.vaadin.client.BrowserInfo;
 import com.vaadin.client.Util;
-import com.vaadin.client.ui.dd.VDragCloneAware;
 
 /**
  * This class represents a multiline textfield (textarea).
@@ -42,7 +40,7 @@ import com.vaadin.client.ui.dd.VDragCloneAware;
  * @author Vaadin Ltd.
  * 
  */
-public class VTextArea extends VTextField implements VDragCloneAware {
+public class VTextArea extends VTextField {
     public static final String CLASSNAME = "v-textarea";
     private boolean wordwrap = true;
     private MaxLengthHandler maxLengthHandler = new MaxLengthHandler();
@@ -296,15 +294,4 @@ public class VTextArea extends VTextField implements VDragCloneAware {
         // class instead of directly each other.
     }
 
-    @Override
-    public void initDragImageCopy(Element element) {
-        // Fix for #13557 - drag image doesn't show original text area text.
-        // It happens because "value" property is not copied into the cloned
-        // element
-        String value = getElement().getPropertyString("value");
-        if (value != null) {
-            element.setPropertyString("value", value);
-        }
-    }
-
 }
diff --git a/client/src/com/vaadin/client/ui/dd/VDragCloneAware.java b/client/src/com/vaadin/client/ui/dd/VDragCloneAware.java
deleted file mode 100644 (file)
index 546ca88..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2000-2013 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.client.ui.dd;
-
-import com.google.gwt.dom.client.Element;
-
-/**
- * Widget could implement this interface if drag image requires additional
- * initialization/configuration. Method {@link #initDragImageCopy(Element)}
- * allows to change/correct drag image element when element is dragged via DnD.
- * 
- * @since 7.1
- * @author Vaadin Ltd
- */
-public interface VDragCloneAware {
-
-    /**
-     * This method is called for cloned <code>element</code> which corresponds
-     * to the widget element. One could modify/correct this <code>element</code>
-     * for drag image.
-     * 
-     * @since 7.1
-     * @param element
-     *            cloned element of drag image
-     */
-    void initDragImageCopy(Element element);
-}
index 0f0e1ecdade3927fe7e036b151aedd5e1e08541e..a4667e57f3ef864462b85e93327a712954cbf954 100644 (file)
@@ -20,14 +20,11 @@ import java.util.Map;
 
 import com.google.gwt.dom.client.Document;
 import com.google.gwt.dom.client.NativeEvent;
-import com.google.gwt.dom.client.Node;
 import com.google.gwt.dom.client.Style.Unit;
 import com.google.gwt.dom.client.TableElement;
 import com.google.gwt.dom.client.TableSectionElement;
 import com.google.gwt.event.dom.client.MouseOverEvent;
 import com.google.gwt.user.client.Element;
-import com.google.gwt.user.client.Event;
-import com.google.gwt.user.client.EventListener;
 import com.vaadin.client.BrowserInfo;
 import com.vaadin.client.Util;
 
@@ -187,7 +184,6 @@ public class VDragEvent {
                 cloneNode = table.cast();
             }
         }
-        syncContent(element, cloneNode);
         if (alignImageToEvent) {
             int absoluteTop = element.getAbsoluteTop();
             int absoluteLeft = element.getAbsoluteLeft();
@@ -202,31 +198,4 @@ public class VDragEvent {
 
     }
 
-    /**
-     * Do additional content sync between <code>original</code> element and its
-     * <code>copy</code> if needed.
-     * 
-     * @since 7.1
-     * @param original
-     *            original element
-     * @param copy
-     *            copy of original element
-     */
-    protected void syncContent(Element original, Element copy) {
-        for (int i = 0; i < original.getChildCount(); i++) {
-            Node child = original.getChild(i);
-            if (child instanceof Element) {
-                syncContent((Element) child, (Element) copy.getChild(i));
-            }
-        }
-        doSyncContent(original, copy);
-    }
-
-    private void doSyncContent(Element original, Element copy) {
-        EventListener eventListener = Event.getEventListener(original);
-        if (eventListener instanceof VDragCloneAware) {
-            ((VDragCloneAware) eventListener).initDragImageCopy(copy);
-        }
-    }
-
 }
diff --git a/uitest/src/com/vaadin/tests/components/draganddropwrapper/DragAndDropTextArea.java b/uitest/src/com/vaadin/tests/components/draganddropwrapper/DragAndDropTextArea.java
deleted file mode 100644 (file)
index 410eb21..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2000-2013 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.tests.components.draganddropwrapper;
-
-import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.AbstractTestUI;
-import com.vaadin.ui.DragAndDropWrapper;
-import com.vaadin.ui.DragAndDropWrapper.DragStartMode;
-import com.vaadin.ui.TextArea;
-import com.vaadin.ui.VerticalLayout;
-
-/**
- * Test UI for text area: drag image should contain text-area text.
- * 
- * @since 7.1
- * @author Vaadin Ltd
- */
-public class DragAndDropTextArea extends AbstractTestUI {
-
-    @Override
-    protected void setup(VaadinRequest request) {
-        VerticalLayout dndLayout = new VerticalLayout();
-
-        TextArea area = new TextArea();
-        area.setValue("text");
-
-        dndLayout.addComponent(area);
-        DragAndDropWrapper wrapper = new DragAndDropWrapper(dndLayout);
-        wrapper.setDragStartMode(DragStartMode.WRAPPER);
-        addComponent(wrapper);
-    }
-
-    @Override
-    protected String getTestDescription() {
-        return "Drag image for textarea should contain text-area text";
-    }
-
-    @Override
-    protected Integer getTicketNumber() {
-        return 13557;
-    }
-
-}
diff --git a/uitest/src/com/vaadin/tests/components/draganddropwrapper/DragAndDropTextAreaTest.java b/uitest/src/com/vaadin/tests/components/draganddropwrapper/DragAndDropTextAreaTest.java
deleted file mode 100644 (file)
index 2abf359..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright 2000-2013 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.tests.components.draganddropwrapper;
-
-import java.util.List;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.openqa.selenium.WebElement;
-import org.openqa.selenium.interactions.Actions;
-
-import com.vaadin.testbench.By;
-import com.vaadin.tests.tb3.MultiBrowserTest;
-
-/**
- * Test for drag image of text area which should contain text-area text.
- * 
- * @since 7.1
- * @author Vaadin Ltd
- */
-public class DragAndDropTextAreaTest extends MultiBrowserTest {
-
-    @Test
-    public void testTextAreaDndImage() {
-        openTestURL();
-
-        WebElement wrapper = driver.findElement(By
-                .className("v-verticallayout"));
-        Actions actions = new Actions(driver);
-        actions.clickAndHold(wrapper);
-        actions.moveByOffset(50, 50);
-        actions.perform();
-
-        WebElement dragElement = driver.findElement(By
-                .className("v-drag-element"));
-        List<WebElement> children = dragElement.findElements(By.xpath(".//*"));
-        boolean found = false;
-        for (WebElement child : children) {
-            if ("text".equals(child.getAttribute("value"))) {
-                found = true;
-            }
-        }
-
-        Assert.assertTrue(
-                "Text value is not found in the DnD image of text area", found);
-    }
-
-}