summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeemu Suo-Anttila <teemusa@vaadin.com>2014-04-14 11:14:32 +0000
committerVaadin Code Review <review@vaadin.com>2014-04-14 12:05:45 +0000
commit168de1fefa0f09b07d438968575033e6d234cfb2 (patch)
tree833b7848d77d0f194f779af88a5e479f90d5524e
parent35e2a34c9c4dfcf9117db31f6403401129c9befc (diff)
downloadvaadin-framework-168de1fefa0f09b07d438968575033e6d234cfb2.tar.gz
vaadin-framework-168de1fefa0f09b07d438968575033e6d234cfb2.zip
Revert "Drag image for text-area should contain text of text-area (#13557)"
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
-rw-r--r--client/src/com/vaadin/client/ui/VTextArea.java15
-rw-r--r--client/src/com/vaadin/client/ui/dd/VDragCloneAware.java40
-rw-r--r--client/src/com/vaadin/client/ui/dd/VDragEvent.java31
-rw-r--r--uitest/src/com/vaadin/tests/components/draganddropwrapper/DragAndDropTextArea.java56
-rw-r--r--uitest/src/com/vaadin/tests/components/draganddropwrapper/DragAndDropTextAreaTest.java61
5 files changed, 1 insertions, 202 deletions
diff --git a/client/src/com/vaadin/client/ui/VTextArea.java b/client/src/com/vaadin/client/ui/VTextArea.java
index 627d14a058..2a697969df 100644
--- a/client/src/com/vaadin/client/ui/VTextArea.java
+++ b/client/src/com/vaadin/client/ui/VTextArea.java
@@ -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
index 546ca88a9f..0000000000
--- a/client/src/com/vaadin/client/ui/dd/VDragCloneAware.java
+++ /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);
-}
diff --git a/client/src/com/vaadin/client/ui/dd/VDragEvent.java b/client/src/com/vaadin/client/ui/dd/VDragEvent.java
index 0f0e1ecdad..a4667e57f3 100644
--- a/client/src/com/vaadin/client/ui/dd/VDragEvent.java
+++ b/client/src/com/vaadin/client/ui/dd/VDragEvent.java
@@ -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
index 410eb21170..0000000000
--- a/uitest/src/com/vaadin/tests/components/draganddropwrapper/DragAndDropTextArea.java
+++ /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
index 2abf3599ac..0000000000
--- a/uitest/src/com/vaadin/tests/components/draganddropwrapper/DragAndDropTextAreaTest.java
+++ /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);
- }
-
-}