]> source.dussan.org Git - vaadin-framework.git/commitdiff
removed component transferable (integrated to transferable), changed one test to...
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Fri, 19 Feb 2010 13:57:33 +0000 (13:57 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Fri, 19 Feb 2010 13:57:33 +0000 (13:57 +0000)
svn changeset:11407/svn branch:6.3_dd

19 files changed:
src/com/vaadin/event/ComponentTransferable.java [deleted file]
src/com/vaadin/event/DataBoundTransferable.java
src/com/vaadin/event/Transferable.java
src/com/vaadin/event/TransferableImpl.java [new file with mode: 0644]
src/com/vaadin/event/dd/acceptCriteria/ComponentFilter.java
src/com/vaadin/event/dd/acceptCriteria/SourceIsSameAsTarget.java
src/com/vaadin/terminal/gwt/client/ui/VDragAndDropWrapper.java
src/com/vaadin/terminal/gwt/client/ui/dd/VDragAndDropManager.java
src/com/vaadin/terminal/gwt/server/DragAndDropService.java
src/com/vaadin/ui/DragAndDropWrapper.java
src/com/vaadin/ui/DragDropPane.java
src/com/vaadin/ui/Tree.java
tests/src/com/vaadin/tests/dd/AcceptAnythingWindow.java
tests/src/com/vaadin/tests/dd/AcceptFromComponent.java
tests/src/com/vaadin/tests/dd/DDTest1.java
tests/src/com/vaadin/tests/dd/DDTest2.java
tests/src/com/vaadin/tests/dd/DDTest5.java
tests/src/com/vaadin/tests/dd/HorizontalLayoutSortableWithWrappers.java
tests/src/com/vaadin/tests/dd/HorizontalSortableCssLayoutWithWrappers.java

diff --git a/src/com/vaadin/event/ComponentTransferable.java b/src/com/vaadin/event/ComponentTransferable.java
deleted file mode 100644 (file)
index 2b7ac66..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.vaadin.event;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import com.vaadin.ui.Component;
-
-public class ComponentTransferable implements Transferable {
-    private Map<String, Object> rawVariables = new HashMap<String, Object>();
-    private Component sourceComponent;
-
-    public ComponentTransferable(Component sourceComponent,
-            Map<String, Object> rawVariables) {
-        this.sourceComponent = sourceComponent;
-        this.rawVariables = rawVariables;
-    }
-
-    public Component getSourceComponent() {
-        return sourceComponent;
-    }
-
-    public Object getData(String dataFlawor) {
-        return rawVariables.get(dataFlawor);
-    }
-
-    public void setData(String dataFlawor, Object value) {
-        rawVariables.put(dataFlawor, value);
-    }
-
-    public Collection<String> getDataFlawors() {
-        return rawVariables.keySet();
-    }
-
-}
index ddb3cb17ce20b8dbed261ad418295aaf54ae7445..9ec492f9d7e72c6ee1bbb22dcf575eaf806ba74c 100644 (file)
@@ -4,7 +4,7 @@ import java.util.Map;
 
 import com.vaadin.ui.Component;
 
-public abstract class DataBoundTransferable extends ComponentTransferable {
+public abstract class DataBoundTransferable extends TransferableImpl {
 
     public DataBoundTransferable(Component sourceComponent,
             Map<String, Object> rawVariables) {
index 5ce4adfb8fed7fb71386214c64012e721baa80ea..c2b75630cb4deeb19e5be1afe409675687494192 100644 (file)
@@ -2,6 +2,8 @@ package com.vaadin.event;
 
 import java.util.Collection;
 
+import com.vaadin.ui.Component;
+
 public interface Transferable {
 
     public Object getData(String dataFlawor);
@@ -10,4 +12,9 @@ public interface Transferable {
 
     public Collection<String> getDataFlawors();
 
+    /**
+     * @return the component that created the Transferable
+     */
+    public Component getSourceComponent();
+
 }
diff --git a/src/com/vaadin/event/TransferableImpl.java b/src/com/vaadin/event/TransferableImpl.java
new file mode 100644 (file)
index 0000000..a03c572
--- /dev/null
@@ -0,0 +1,35 @@
+package com.vaadin.event;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import com.vaadin.ui.Component;
+
+public class TransferableImpl implements Transferable {
+    private Map<String, Object> rawVariables = new HashMap<String, Object>();
+    private Component sourceComponent;
+
+    public TransferableImpl(Component sourceComponent,
+            Map<String, Object> rawVariables) {
+        this.sourceComponent = sourceComponent;
+        this.rawVariables = rawVariables;
+    }
+
+    public Component getSourceComponent() {
+        return sourceComponent;
+    }
+
+    public Object getData(String dataFlawor) {
+        return rawVariables.get(dataFlawor);
+    }
+
+    public void setData(String dataFlawor, Object value) {
+        rawVariables.put(dataFlawor, value);
+    }
+
+    public Collection<String> getDataFlawors() {
+        return rawVariables.keySet();
+    }
+
+}
index fc0ffd2c532c1e93d615a95021d07a509d5790a5..2da81d64bd135db232b9b8afcdc38135f95d767f 100644 (file)
@@ -3,7 +3,7 @@
  */
 package com.vaadin.event.dd.acceptCriteria;
 
-import com.vaadin.event.ComponentTransferable;
+import com.vaadin.event.TransferableImpl;
 import com.vaadin.event.dd.DragAndDropEvent;
 import com.vaadin.terminal.PaintException;
 import com.vaadin.terminal.PaintTarget;
@@ -28,8 +28,8 @@ public class ComponentFilter extends ClientSideCriterion {
     }
 
     public boolean accepts(DragAndDropEvent dragEvent) {
-        if (dragEvent.getTransferable() instanceof ComponentTransferable) {
-            Component sourceComponent = ((ComponentTransferable) dragEvent
+        if (dragEvent.getTransferable() instanceof TransferableImpl) {
+            Component sourceComponent = ((TransferableImpl) dragEvent
                     .getTransferable()).getSourceComponent();
             for (Component c : component) {
                 if (c == sourceComponent) {
index a0a0afe37aaabb502cc250aadc5685214957275d..778088a3040ccaa1f99f90c9d395232c353c731f 100644 (file)
@@ -3,7 +3,7 @@
  */
 package com.vaadin.event.dd.acceptCriteria;
 
-import com.vaadin.event.ComponentTransferable;
+import com.vaadin.event.TransferableImpl;
 import com.vaadin.event.dd.DragAndDropEvent;
 import com.vaadin.event.dd.DropTarget;
 import com.vaadin.terminal.gwt.client.ui.dd.VSourceIsSameAsTarget;
@@ -13,8 +13,8 @@ import com.vaadin.ui.Component;
 public class SourceIsSameAsTarget extends ClientSideCriterion {
 
     public boolean accepts(DragAndDropEvent dragEvent) {
-        if (dragEvent.getTransferable() instanceof ComponentTransferable) {
-            Component sourceComponent = ((ComponentTransferable) dragEvent
+        if (dragEvent.getTransferable() instanceof TransferableImpl) {
+            Component sourceComponent = ((TransferableImpl) dragEvent
                     .getTransferable()).getSourceComponent();
             DropTarget target = dragEvent.getDropTargetData().getTarget();
             return sourceComponent == target;
index 70072a8066586fcd8e0e7bc4d7caaa80787a0c99..27a14f9c8031438da0c370b57563900a8523c317 100644 (file)
@@ -10,6 +10,7 @@ import com.google.gwt.user.client.DeferredCommand;
 import com.google.gwt.user.client.Element;
 import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
+import com.vaadin.terminal.gwt.client.MouseEventDetails;
 import com.vaadin.terminal.gwt.client.Paintable;
 import com.vaadin.terminal.gwt.client.RenderInformation;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -68,6 +69,9 @@ public class VDragAndDropWrapper extends VCustomComponent implements
                         paintable = VDragAndDropWrapper.this;
                     }
 
+                    transferable.setData("mouseDown", new MouseEventDetails(
+                            event.getNativeEvent()).serialize());
+
                     startDrag.createDragImage(
                             ((Widget) paintable).getElement(), true);
                     event.preventDefault(); // prevent text selection
@@ -112,6 +116,7 @@ public class VDragAndDropWrapper extends VCustomComponent implements
         }
         ApplicationConnection.getConsole().log("HTML 5 Drag Enter");
         VTransferable transferable = new VTransferable();
+        transferable.setDragSource(this);
 
         vaadinDragEvent = VDragAndDropManager.get().startDrag(transferable,
                 event, false);
index 8c7617537ab69aa7efd374f8b04be7d0f10b4154..6b58d36b90366f44a55f30f5e5571da51b0444c4 100644 (file)
@@ -534,8 +534,7 @@ public class VDragAndDropManager {
                         mouseEventDetails.serialize());
             } catch (Exception e) {
                 // NOP, (at least oophm on Safari) can't serialize html dd event
-                // to
-                // mouseevent
+                // to mouseevent
             }
         } else {
             currentDrag.getDropDetails().put("mouseEvent", null);
index 8255aadbbbee0cfcbe40eac52fd302bb5bcac97f..f88903bdeeff1511def8336fc6a5fb7069684045 100644 (file)
@@ -1,11 +1,9 @@
 package com.vaadin.terminal.gwt.server;
 
 import java.io.PrintWriter;
-import java.util.Collection;
-import java.util.HashMap;
 import java.util.Map;
 
-import com.vaadin.event.ComponentTransferable;
+import com.vaadin.event.TransferableImpl;
 import com.vaadin.event.Transferable;
 import com.vaadin.event.dd.DragAndDropEvent;
 import com.vaadin.event.dd.DragSource;
@@ -179,30 +177,9 @@ public class DragAndDropService implements VariableOwner {
         if (sourceComponent != null && sourceComponent instanceof DragSource) {
             transferable = ((DragSource) sourceComponent)
                     .getTransferable(variables);
-        } else {
-            if (transferable == null) {
-                if (sourceComponent != null) {
-                    transferable = new ComponentTransferable(sourceComponent,
-                            variables);
-                } else {
-                    transferable = new Transferable() {
-                        private Map<String, Object> td = new HashMap<String, Object>();
-
-                        public Object getData(String dataFlawor) {
-                            return td.get(dataFlawor);
-                        }
-
-                        public void setData(String dataFlawor, Object value) {
-                            td.put(dataFlawor, value);
-                        }
-
-                        public Collection<String> getDataFlawors() {
-                            return td.keySet();
-                        }
-
-                    };
-                }
-            }
+        }
+        if (transferable == null) {
+            transferable = new TransferableImpl(sourceComponent, variables);
         }
 
         return transferable;
index e2fb2942e7700927ea9b5695e5f702e3ed821c47..232c65f9c62f692fa660c18b8293095ab21a697e 100644 (file)
@@ -2,23 +2,27 @@ package com.vaadin.ui;
 
 import java.util.Map;
 
-import com.vaadin.event.ComponentTransferable;
+import com.vaadin.event.TransferableImpl;
 import com.vaadin.event.Transferable;
 import com.vaadin.event.dd.DragSource;
 import com.vaadin.event.dd.DropHandler;
 import com.vaadin.event.dd.DropTarget;
 import com.vaadin.event.dd.DropTargetDetails;
+import com.vaadin.event.dd.DropTargetDetailsImpl;
 import com.vaadin.terminal.PaintException;
 import com.vaadin.terminal.PaintTarget;
+import com.vaadin.terminal.gwt.client.MouseEventDetails;
 import com.vaadin.terminal.gwt.client.ui.VDragAndDropWrapper;
+import com.vaadin.terminal.gwt.client.ui.dd.HorizontalDropLocation;
+import com.vaadin.terminal.gwt.client.ui.dd.VerticalDropLocation;
 
 @ClientWidget(VDragAndDropWrapper.class)
 public class DragAndDropWrapper extends CustomComponent implements DropTarget,
         DragSource {
 
-    public class DDWrapperTransferable extends ComponentTransferable {
+    public class WrapperTransferable extends TransferableImpl {
 
-        public DDWrapperTransferable(Component sourceComponent,
+        public WrapperTransferable(Component sourceComponent,
                 Map<String, Object> rawVariables) {
             super(sourceComponent, rawVariables);
         }
@@ -33,6 +37,61 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
             Component object = (Component) getData("component");
             return object;
         }
+
+        /**
+         * @return the mouse down event that started the drag and drop operation
+         */
+        public MouseEventDetails getMouseDownEvent() {
+            return MouseEventDetails.deSerialize((String) getData("mouseDown"));
+        }
+
+    }
+
+    public class WrapperDropDetails extends DropTargetDetailsImpl {
+
+        /**
+         * 
+         */
+        private static final long serialVersionUID = 1L;
+
+        public WrapperDropDetails(Map<String, Object> rawDropData) {
+            super(rawDropData);
+        }
+
+        /**
+         * @return the absolute position of wrapper on the page
+         */
+        public Integer getAbsoluteLeft() {
+            return (Integer) getData("absoluteLeft");
+        }
+
+        /**
+         * 
+         * @return the absolute position of wrapper on the page
+         */
+        public Integer getAbsoluteTop() {
+            return (Integer) getData("absoluteTop");
+        }
+
+        /**
+         * @return details about the actual event that caused the event details.
+         *         Practically mouse move or mouse up.
+         */
+        public MouseEventDetails getMouseEvent() {
+            return MouseEventDetails
+                    .deSerialize((String) getData("mouseEvent"));
+        }
+
+        public VerticalDropLocation verticalDropLocation() {
+            return VerticalDropLocation
+                    .valueOf((String) getData("verticalLocation"));
+        }
+
+        public HorizontalDropLocation horizontalDropLocation() {
+            return HorizontalDropLocation
+                    .valueOf((String) getData("horizontalLocation"));
+        }
+
     }
 
     public enum DragStartMode {
@@ -71,12 +130,11 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
 
     public DropTargetDetails translateDragDropDetails(
             Map<String, Object> clientVariables) {
-        // TODO Auto-generated method stub
-        return null;
+        return new WrapperDropDetails(clientVariables);
     }
 
     public Transferable getTransferable(final Map<String, Object> rawVariables) {
-        return new DDWrapperTransferable(this, rawVariables);
+        return new WrapperTransferable(this, rawVariables);
     }
 
     public void setDragStartMode(DragStartMode dragStartMode) {
index 3c8a9c2f80fd50c93f6640edd9cc12071524bcbc..f925fda221a10c7b236ee8a79e82dcbb589ac4ba 100644 (file)
@@ -2,7 +2,7 @@ package com.vaadin.ui;
 
 import java.util.Map;
 
-import com.vaadin.event.ComponentTransferable;
+import com.vaadin.event.TransferableImpl;
 import com.vaadin.event.DataBoundTransferable;
 import com.vaadin.event.Transferable;
 import com.vaadin.event.dd.DragAndDropEvent;
@@ -36,7 +36,10 @@ import com.vaadin.terminal.gwt.client.MouseEventDetails;
  * layouts wouldn't need changes (and have regression risk/ performance
  * penalty).
  * 
+ * @deprecated use {@link DragAndDropWrapper} instead
+ * 
  */
+@Deprecated
 @SuppressWarnings("serial")
 @ClientWidget(com.vaadin.terminal.gwt.client.ui.VDragDropPane.class)
 public class DragDropPane extends AbsoluteLayout implements DropTarget {
@@ -76,8 +79,8 @@ public class DragDropPane extends AbsoluteLayout implements DropTarget {
 
             DragEventDetails ed = (DragEventDetails) event.getDropTargetData();
             Transferable transferable = event.getTransferable();
-            if (transferable instanceof ComponentTransferable) {
-                ComponentTransferable ctr = (ComponentTransferable) transferable;
+            if (transferable instanceof TransferableImpl) {
+                TransferableImpl ctr = (TransferableImpl) transferable;
                 // use "component" (from DragDropPane) if available, else take
                 // the source component
                 Component component = (Component) ctr.getData("component");
index 850519f9f7f0cb111b2f287b7e6c8fee656e6279..22dd0a418224c67552caa41f2dc15c16ad8c083e 100644 (file)
@@ -1210,6 +1210,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
                     .getDropTargetData();
             tree = (Tree) dragEvent.getDropTargetData().getTarget();
             allowedItemIds = getAllowedItemIds(dragEvent, tree);
+
             return allowedItemIds.contains(dropTargetData.getItemIdOver());
         }
 
index ede2fec472d252eb1686f0f1430315f268567746..72cfd17b1301f235a3b35b94922cb2c6f1786692 100644 (file)
 package com.vaadin.tests.dd;
 
-import com.vaadin.ui.DragDropPane;
+import com.vaadin.event.DataBoundTransferable;
+import com.vaadin.event.Transferable;
+import com.vaadin.event.TransferableImpl;
+import com.vaadin.event.dd.DragAndDropEvent;
+import com.vaadin.event.dd.DropHandler;
+import com.vaadin.event.dd.acceptCriteria.AcceptAll;
+import com.vaadin.event.dd.acceptCriteria.AcceptCriterion;
+import com.vaadin.terminal.gwt.client.MouseEventDetails;
+import com.vaadin.ui.AbsoluteLayout;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.DragAndDropWrapper;
+import com.vaadin.ui.Label;
 import com.vaadin.ui.Window;
+import com.vaadin.ui.AbsoluteLayout.ComponentPosition;
+import com.vaadin.ui.DragAndDropWrapper.DragStartMode;
+import com.vaadin.ui.DragAndDropWrapper.WrapperDropDetails;
+import com.vaadin.ui.DragAndDropWrapper.WrapperTransferable;
 
 public class AcceptAnythingWindow extends Window {
 
+    private AbsoluteLayout layout = new AbsoluteLayout();
+
     public AcceptAnythingWindow() {
         setCaption("Drop anything here");
-        DragDropPane pane = new DragDropPane();
-        setContent(pane);
-        pane.setSizeFull();
+
+        final DragAndDropWrapper wrapper = new DragAndDropWrapper(layout);
+        wrapper.setDropHandler(new DropHandler() {
+
+            public AcceptCriterion getAcceptCriterion() {
+                return AcceptAll.get();
+            }
+
+            public void drop(DragAndDropEvent event) {
+                WrapperDropDetails ed = (WrapperDropDetails) event
+                        .getDropTargetData();
+                Transferable transferable = event.getTransferable();
+                TransferableImpl ctr = (TransferableImpl) transferable;
+                // use "component" (from DragDropPane) if available, else
+                // take
+                // the source component
+                Component component = ctr.getSourceComponent();
+                if (component == wrapper) {
+                    WrapperTransferable tr = (WrapperTransferable) transferable;
+                    component = tr.getDraggedComponent();
+                }
+
+                if (component != null) {
+
+                    if (component.getParent() != layout) {
+                        if (transferable instanceof DataBoundTransferable) {
+                            // Item has been dragged, construct a Label from
+                            // Item id
+                            Label l = new Label();
+                            l.setSizeUndefined();
+                            l.setValue("ItemId : "
+                                    + ((DataBoundTransferable) transferable)
+                                            .getItemId());
+                            layout.addComponent(l);
+                            component = l;
+
+                        } else {
+                            // we have a component that is been dragged, add
+                            // it
+                            // to
+                            // this
+                            layout.addComponent(component);
+                        }
+
+                        Integer left = ed.getAbsoluteLeft();
+                        Integer top = ed.getAbsoluteTop();
+
+                        MouseEventDetails eventDetails = ed.getMouseEvent();
+
+                        int clientX = eventDetails.getClientX();
+                        int clientY = eventDetails.getClientY();
+
+                        try {
+                            layout.getPosition(component).setTopValue(
+                                    clientY - top);
+                            layout.getPosition(component).setLeftValue(
+                                    clientX - left);
+                        } catch (Exception e) {
+                            // TODO: handle exception
+                        }
+                    } else {
+
+                        WrapperTransferable tr = (WrapperTransferable) transferable;
+                        // drag ended inside the this Pane
+
+                        MouseEventDetails start = tr.getMouseDownEvent();
+                        MouseEventDetails eventDetails = ed.getMouseEvent();
+
+                        int deltaX = eventDetails.getClientX()
+                                - start.getClientX();
+                        int deltaY = eventDetails.getClientY()
+                                - start.getClientY();
+
+                        ComponentPosition p = layout.getPosition(component);
+                        p.setTopValue(p.getTopValue() + deltaY);
+                        p.setLeftValue(p.getLeftValue() + deltaX);
+
+                    }
+
+                } else {
+                    // drag coming outside of Vaadin
+                    String object = (String) transferable.getData("text/plain");
+
+                    String content = (String) transferable
+                            .getData("fileContents");
+
+                    Label l = new Label();
+                    l.setCaption("Generated from HTML5 drag:");
+                    if (object != null) {
+                        l.setValue(object);
+                    } else {
+                        l.setValue("HTML5 dd");
+                    }
+
+                    l.setDescription(content);
+                    l.setSizeUndefined();
+
+                    layout.addComponent(l);
+
+                }
+                return;
+            }
+        });
+
+        wrapper.setDragStartMode(DragStartMode.COMPONENT);
+        wrapper.setSizeFull();
+        setContent(wrapper);
+
         setWidth("250px");
         setHeight("100px");
     }
-
 }
index 93bd88381a6e0822fff1483eeb0b87e20f112fd0..7ae279b00f88398be6f02b7eccc165fb8a3cde63 100644 (file)
@@ -1,6 +1,6 @@
 package com.vaadin.tests.dd;
 
-import com.vaadin.event.ComponentTransferable;
+import com.vaadin.event.TransferableImpl;
 import com.vaadin.event.Transferable;
 import com.vaadin.event.dd.DragAndDropEvent;
 import com.vaadin.event.dd.acceptCriteria.AcceptCriterion;
@@ -24,8 +24,8 @@ public class AcceptFromComponent extends Window {
 
             public boolean accepts(DragAndDropEvent dragEvent) {
                 Transferable transferable = dragEvent.getTransferable();
-                if (transferable instanceof ComponentTransferable) {
-                    ComponentTransferable componentTransferrable = (ComponentTransferable) transferable;
+                if (transferable instanceof TransferableImpl) {
+                    TransferableImpl componentTransferrable = (TransferableImpl) transferable;
                     if (componentTransferrable.getSourceComponent() == tree1) {
                         return true;
                     }
index d8e387f9621bb77823628802c20ffd49a73ed4b4..3943098eac26218a9a2144c44017728c689fce2b 100644 (file)
@@ -4,7 +4,7 @@ import java.util.Collection;
 
 import com.vaadin.data.Item;
 import com.vaadin.data.util.HierarchicalContainer;
-import com.vaadin.event.ComponentTransferable;
+import com.vaadin.event.TransferableImpl;
 import com.vaadin.event.DataBoundTransferable;
 import com.vaadin.event.Transferable;
 import com.vaadin.event.dd.DragAndDropEvent;
@@ -70,8 +70,8 @@ public class DDTest1 extends TestBase {
                     // e.printStackTrace();
                     // }
                     // System.out.println("Done get to work.");
-                    if (transferable instanceof ComponentTransferable) {
-                        ComponentTransferable ct = (ComponentTransferable) transferable;
+                    if (transferable instanceof TransferableImpl) {
+                        TransferableImpl ct = (TransferableImpl) transferable;
 
                         Component component = (Component) ct
                                 .getData("component");
index e88026ecd209410d712cef0bb58c9c351135f208..e580e6654d1040cf0a1400e28895e4156e560690 100644 (file)
@@ -1,8 +1,6 @@
 package com.vaadin.tests.dd;
 
 import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
 
 import com.vaadin.data.Container;
 import com.vaadin.data.Item;
@@ -19,6 +17,7 @@ import com.vaadin.event.dd.acceptCriteria.ComponentFilter;
 import com.vaadin.event.dd.acceptCriteria.IsDatabound;
 import com.vaadin.event.dd.acceptCriteria.Or;
 import com.vaadin.event.dd.acceptCriteria.OverTreeNode;
+import com.vaadin.event.dd.acceptCriteria.ServerSideCriterion;
 import com.vaadin.terminal.Resource;
 import com.vaadin.terminal.ThemeResource;
 import com.vaadin.tests.components.TestBase;
@@ -28,6 +27,7 @@ import com.vaadin.ui.Table;
 import com.vaadin.ui.Tree;
 import com.vaadin.ui.Window;
 import com.vaadin.ui.AbstractSelect.AbstractSelectDropDetails;
+import com.vaadin.ui.Tree.TreeDropDetails;
 
 public class DDTest2 extends TestBase {
 
@@ -70,13 +70,19 @@ public class DDTest2 extends TestBase {
          * explicitly defining them here), but demonstrates lazy initialization
          * option if rules are heavy.
          */
-        final AcceptCriterion crit = new Tree.TreeDropCriterion() {
+        final AcceptCriterion crit = new ServerSideCriterion() {
+            public boolean accepts(DragAndDropEvent dragEvent) {
 
-            @Override
-            protected Set<Object> getAllowedItemIds(DragAndDropEvent dragEvent,
-                    Tree tree) {
-                HashSet<Object> hashSet = new HashSet<Object>(tree.getItemIds());
-                return hashSet;
+                TreeDropDetails dropTargetData = (TreeDropDetails) dragEvent
+                        .getDropTargetData();
+
+                Object itemIdOver = dropTargetData.getItemIdOver();
+
+                int i = r.nextInt();
+                if (i % 2 == 0) {
+                    return true;
+                }
+                return false;
             }
         };
 
index 77b4d0b11afcfb22661ca425e9ea6a625989341e..83f762406ab31ab835022238e0e43a904a4b91ff 100644 (file)
@@ -15,7 +15,7 @@ import com.vaadin.ui.DragAndDropWrapper;
 import com.vaadin.ui.HorizontalLayout;
 import com.vaadin.ui.Label;
 import com.vaadin.ui.Window;
-import com.vaadin.ui.DragAndDropWrapper.DDWrapperTransferable;
+import com.vaadin.ui.DragAndDropWrapper.WrapperTransferable;
 import com.vaadin.ui.DragAndDropWrapper.DragStartMode;
 
 public class DDTest5 extends TestBase {
@@ -98,8 +98,8 @@ public class DDTest5 extends TestBase {
                  * here)
                  */
 
-                if (dropEvent.getTransferable() instanceof DDWrapperTransferable) {
-                    DDWrapperTransferable transferable = (DDWrapperTransferable) dropEvent
+                if (dropEvent.getTransferable() instanceof WrapperTransferable) {
+                    WrapperTransferable transferable = (WrapperTransferable) dropEvent
                             .getTransferable();
                     Component sourceComponent = transferable
                             .getSourceComponent();
index 32f02a29b97d0a12cc8bd1e57aa05b628a505962..fba2b0cf430cf6c9267aeb94b5b442fdd5059502 100644 (file)
@@ -2,7 +2,7 @@ package com.vaadin.tests.dd;
 
 import java.util.Iterator;
 
-import com.vaadin.event.ComponentTransferable;
+import com.vaadin.event.TransferableImpl;
 import com.vaadin.event.Transferable;
 import com.vaadin.event.dd.DragAndDropEvent;
 import com.vaadin.event.dd.DropHandler;
@@ -61,8 +61,8 @@ public class HorizontalLayoutSortableWithWrappers extends Window {
 
         public void drop(DragAndDropEvent dropEvent) {
             Transferable transferable = dropEvent.getTransferable();
-            if (transferable instanceof ComponentTransferable) {
-                ComponentTransferable ct = (ComponentTransferable) transferable;
+            if (transferable instanceof TransferableImpl) {
+                TransferableImpl ct = (TransferableImpl) transferable;
                 Component sourceComponent = ct.getSourceComponent();
                 if (sourceComponent instanceof WrappedLabel) {
                     int index = 1;
index 10c3dd5956f4c8bc5dbbd4e65eb4b1a2b3ea5338..60209d4b7afa86096945823df3fea99f1c664876 100644 (file)
@@ -2,7 +2,7 @@ package com.vaadin.tests.dd;
 
 import java.util.Iterator;
 
-import com.vaadin.event.ComponentTransferable;
+import com.vaadin.event.TransferableImpl;
 import com.vaadin.event.Transferable;
 import com.vaadin.event.dd.DragAndDropEvent;
 import com.vaadin.event.dd.DropHandler;
@@ -54,8 +54,8 @@ public class HorizontalSortableCssLayoutWithWrappers extends Window {
 
         public void drop(DragAndDropEvent dropEvent) {
             Transferable transferable = dropEvent.getTransferable();
-            if (transferable instanceof ComponentTransferable) {
-                ComponentTransferable ct = (ComponentTransferable) transferable;
+            if (transferable instanceof TransferableImpl) {
+                TransferableImpl ct = (TransferableImpl) transferable;
                 Component sourceComponent = ct.getSourceComponent();
                 if (sourceComponent instanceof WrappedLabel) {
                     int index = 1;