@Override public void onDragStart( DragStartEvent event ) { String text = extractText(); event.setData( type.name(), text ); event.getDataTransfer().setDragImage( move.getElement(), 10, 10 ); } }, DragStartEvent.getType() );
@UiHandler("container") void onDragStart(DragStartEvent event) { int itemColumnIndex = controller.getColumnIndex(column); // While the HTML5 DnD spec allows setting "drag data" within // "dragstart" event, it prevents access to that data in every // other event, except for the "drop" event. This way, it's not // possible to check "drag data" _during_ a drag operation, e.g. // in order to visually highlight a possible drop target. controller.setDragIndex(itemColumnIndex); // Without this, the DnD behavior doesn't seem to be triggered. event.getDataTransfer().setData("text", String.valueOf(itemColumnIndex)); //$NON-NLS-1$ // Define a custom drag image. event.getDataTransfer().setDragImage(getElement(), event.getNativeEvent().getClientX() - getAbsoluteLeft(), event.getNativeEvent().getClientY() - getAbsoluteTop()); }
@UiHandler("container") void onDragStart(DragStartEvent event) { if (!dragEnabled) { return; } // IE strikes again, for some unknown reason, in IE you can only put 'Text' as the setData first // parameter. So if you want to pass multiple values, you have to collect them in one string, then parse // the string on the other end instead of passing different values. String aggregatedString = "VM_GID=" + nodeModel.getVm().getId().toString(); //$NON-NLS-1$ aggregatedString += "|PINNED=" + String.valueOf(nodeModel.isPinned()); //$NON-NLS-1$ aggregatedString += "|INDEX=" + String.valueOf(nodeModel.getIndex()); //$NON-NLS-1$ event.setData("Text", aggregatedString); //$NON-NLS-1$ // show a ghost of the widget under cursor. NativeEvent nativeEvent = event.getNativeEvent(); int x = nativeEvent.getClientX() - getAbsoluteLeft(); int y = nativeEvent.getClientY() - getAbsoluteTop(); event.getDataTransfer().setDragImage(getElement(), x, y); }