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() {
/**
*
- * 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 {
transferable.setData("component", paintable);
VDragEvent startDrag = VDragAndDropManager.get().startDrag(
transferable, event.getNativeEvent(), true);
- if (dragStarMode == WRAPPER) {
+ if (dragStarMode == WRAPPER || paintable == null) {
paintable = VDragAndDropWrapper.this;
}
}
}
client.handleComponentRelativeSize(VDragAndDropWrapper.this);
+ Util.notifyParentOfSizeChange(this, false);
+
}
}
+++ /dev/null
-/**
- *
- */
-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<String> stringArrayVariableAsSet = configuration
- .getStringArrayVariableAsSet("keys");
- return stringArrayVariableAsSet.contains(data);
- } catch (Exception e) {
- }
- return false;
- }
-}
\ No newline at end of file
--- /dev/null
+/**
+ *
+ */
+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<String> stringArrayVariableAsSet = configuration
+ .getStringArrayVariableAsSet("keys");
+ return stringArrayVariableAsSet.contains(data);
+ } catch (Exception e) {
+ }
+ return false;
+ }
+}
\ No newline at end of file
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;
/**
* 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);
}
.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) {