From: Matti Tahvonen Date: Fri, 19 Feb 2010 15:46:07 +0000 (+0000) Subject: changes X-Git-Tag: 6.7.0.beta1~1988^2~5 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=7b11d7c37b4d85a49a883d14229aa481e1a3164a;p=vaadin-framework.git changes svn changeset:11409/svn branch:6.3_dd --- diff --git a/src/com/vaadin/terminal/gwt/client/VUIDLBrowser.java b/src/com/vaadin/terminal/gwt/client/VUIDLBrowser.java index 9f08c4df51..824d4770ea 100644 --- a/src/com/vaadin/terminal/gwt/client/VUIDLBrowser.java +++ b/src/com/vaadin/terminal/gwt/client/VUIDLBrowser.java @@ -213,12 +213,14 @@ public class VUIDLBrowser extends Tree implements MouseOutHandler { private static void highlight(Paintable paintable) { Widget w = (Widget) paintable; - Style style = highlight.getStyle(); - style.setTop(w.getAbsoluteTop(), Unit.PX); - style.setLeft(w.getAbsoluteLeft(), Unit.PX); - style.setWidth(w.getOffsetWidth(), Unit.PX); - style.setHeight(w.getOffsetHeight(), Unit.PX); - RootPanel.getBodyElement().appendChild(highlight); + if (w != null) { + Style style = highlight.getStyle(); + style.setTop(w.getAbsoluteTop(), Unit.PX); + style.setLeft(w.getAbsoluteLeft(), Unit.PX); + style.setWidth(w.getOffsetWidth(), Unit.PX); + style.setHeight(w.getOffsetHeight(), Unit.PX); + RootPanel.getBodyElement().appendChild(highlight); + } } private static void deHiglight() { diff --git a/src/com/vaadin/terminal/gwt/client/ui/VDragAndDropWrapper.java b/src/com/vaadin/terminal/gwt/client/ui/VDragAndDropWrapper.java index 27a14f9c80..dee43cae96 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VDragAndDropWrapper.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VDragAndDropWrapper.java @@ -29,19 +29,10 @@ import com.vaadin.terminal.gwt.client.ui.dd.VerticalDropLocation; /** * - * Must have features: - * - * stylenames to root element depending on place on component - * - * - * allow size to change on emphasis/deemphasis (behave well for vaadin layout - * system) - * - * html5 drops + * Must have features pending: * * drop details: locations + sizes in document hierarchy up to wrapper * - * */ public class VDragAndDropWrapper extends VCustomComponent implements VHasDropHandler { @@ -65,7 +56,7 @@ public class VDragAndDropWrapper extends VCustomComponent implements transferable.setData("component", paintable); VDragEvent startDrag = VDragAndDropManager.get().startDrag( transferable, event.getNativeEvent(), true); - if (dragStarMode == WRAPPER) { + if (dragStarMode == WRAPPER || paintable == null) { paintable = VDragAndDropWrapper.this; } @@ -382,6 +373,8 @@ public class VDragAndDropWrapper extends VCustomComponent implements } } client.handleComponentRelativeSize(VDragAndDropWrapper.this); + Util.notifyParentOfSizeChange(this, false); + } } diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VIdentifierIs.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VIdentifierIs.java deleted file mode 100644 index c9b8a1d018..0000000000 --- a/src/com/vaadin/terminal/gwt/client/ui/dd/VIdentifierIs.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * - */ -package com.vaadin.terminal.gwt.client.ui.dd; - -import java.util.Set; - -import com.vaadin.terminal.gwt.client.UIDL; - -final public class VIdentifierIs extends VAcceptCriterion { - - @Override - public boolean validates(VDragEvent drag, UIDL configuration) { - try { - Object data = drag.getTransferable().getData("itemId"); - Set stringArrayVariableAsSet = configuration - .getStringArrayVariableAsSet("keys"); - return stringArrayVariableAsSet.contains(data); - } catch (Exception e) { - } - return false; - } -} \ No newline at end of file diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VItemIdIs.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VItemIdIs.java new file mode 100644 index 0000000000..116cd2719f --- /dev/null +++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VItemIdIs.java @@ -0,0 +1,23 @@ +/** + * + */ +package com.vaadin.terminal.gwt.client.ui.dd; + +import java.util.Set; + +import com.vaadin.terminal.gwt.client.UIDL; + +final public class VItemIdIs extends VAcceptCriterion { + + @Override + public boolean validates(VDragEvent drag, UIDL configuration) { + try { + Object data = drag.getTransferable().getData("itemId"); + Set stringArrayVariableAsSet = configuration + .getStringArrayVariableAsSet("keys"); + return stringArrayVariableAsSet.contains(data); + } catch (Exception e) { + } + return false; + } +} \ No newline at end of file diff --git a/src/com/vaadin/ui/AbstractSelect.java b/src/com/vaadin/ui/AbstractSelect.java index a553a9ad90..9a6917331f 100644 --- a/src/com/vaadin/ui/AbstractSelect.java +++ b/src/com/vaadin/ui/AbstractSelect.java @@ -29,8 +29,8 @@ import com.vaadin.terminal.KeyMapper; import com.vaadin.terminal.PaintException; import com.vaadin.terminal.PaintTarget; import com.vaadin.terminal.Resource; -import com.vaadin.terminal.gwt.client.ui.dd.VIdentifierIs; import com.vaadin.terminal.gwt.client.ui.dd.VIsOverId; +import com.vaadin.terminal.gwt.client.ui.dd.VItemIdIs; import com.vaadin.ui.Tree.Location; /** @@ -1742,9 +1742,9 @@ public abstract class AbstractSelect extends AbstractField implements * criterion drop is accepted only if {@link Transferable} (from this * {@link AbstractSelect}) contains given item identifier or identifiers. */ - @ClientCriterion(VIdentifierIs.class) - public static class IdentifierIs extends AbstractItemSetCriterion { - public IdentifierIs(AbstractSelect select, Object... itemId) { + @ClientCriterion(VItemIdIs.class) + public static class ItemIdIs extends AbstractItemSetCriterion { + public ItemIdIs(AbstractSelect select, Object... itemId) { super(select, itemId); } diff --git a/tests/src/com/vaadin/tests/dd/AcceptAnythingWindow.java b/tests/src/com/vaadin/tests/dd/AcceptAnythingWindow.java index 72cfd17b13..b9e63d9dda 100644 --- a/tests/src/com/vaadin/tests/dd/AcceptAnythingWindow.java +++ b/tests/src/com/vaadin/tests/dd/AcceptAnythingWindow.java @@ -37,13 +37,13 @@ public class AcceptAnythingWindow extends Window { .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) { + // if the drag source was wrapper we are interested about + // the dragged component WrapperTransferable tr = (WrapperTransferable) transferable; component = tr.getDraggedComponent(); + // html5 drag created by wrapper set component null } if (component != null) {