public void drop(final DropTargetDropEvent dtde) { if (dragHandler == null) { dtde.rejectDrop(); return; } try { if (ElementMetaDataTransferable.ELEMENT_FLAVOR.equals(getFlavor())) { final ElementMetaData metaData = (ElementMetaData) getTransferData(); dragHandler.drop(dtde, editorContext, metaData, null); return; } if (FieldDescriptionTransferable.ELEMENT_FLAVOR.equals(getFlavor())) { final String fieldName = (String) getTransferData(); final ElementMetaData metaData = createMetaData(fieldName); dragHandler.drop(dtde, editorContext, metaData, fieldName); return; } dtde.rejectDrop(); } finally { editorContext.getRepresentationContainer().revalidate(); editorContext.getRepresentationContainer().repaint(); dragHandler = null; } }
/** * Called while a drag operation is ongoing, when the mouse pointer has exited the operable part * of the drop site for the <code>DropTarget</code> registered with this listener. * * @param dte the <code>DropTargetEvent</code> */ public void dragExit(final DropTargetEvent dte) { if (dragHandler == null) { super.dragExit(dte); return; } dragHandler.dragAborted(dte, editorContext); dragHandler = null; super.dragExit(dte); editorContext.getRepresentationContainer().revalidate(); editorContext.getRepresentationContainer().repaint(); }
private ElementMetaData createMetaData(final String fieldName) { final ContextAwareDataSchemaModel model = editorContext.getRenderContext().getReportDataSchemaModel(); final DataSchema dataSchema = model.getDataSchema(); final DataAttributes attributes = dataSchema.getAttributes(fieldName); final DataAttributeContext dataAttributeContext = new DefaultDataAttributeContext(); if (attributes == null) { return null; } final ElementType type = AutoGeneratorUtility.createFieldType(attributes, dataAttributeContext); if (type == null) { return null; } return type.getMetaData(); }
protected int updateDragOver(final DropTargetDragEvent event) { try { if (ElementMetaDataTransferable.ELEMENT_FLAVOR.equals(getFlavor())) { final ElementMetaData data = (ElementMetaData) getTransferData(); if (data == null) { return DnDConstants.ACTION_NONE; } if (dragHandler == null) { dragHandler = createDragHandler(data); if (dragHandler == null) { return DnDConstants.ACTION_NONE; } return dragHandler.dragStarted(event, editorContext, data, null); } else { return dragHandler.dragUpdated(event, editorContext, data, null); } } if (FieldDescriptionTransferable.ELEMENT_FLAVOR.equals(getFlavor())) { final String fieldName = (String) getTransferData(); final ElementMetaData data = createMetaData(fieldName); if (data == null) { return DnDConstants.ACTION_NONE; } if (dragHandler == null) { dragHandler = createDragHandler(data); if (dragHandler == null) { return DnDConstants.ACTION_NONE; } return dragHandler.dragStarted(event, editorContext, data, fieldName); } else { return dragHandler.dragUpdated(event, editorContext, data, fieldName); } } return DnDConstants.ACTION_NONE; } finally { editorContext.getRepresentationContainer().revalidate(); editorContext.getRepresentationContainer().repaint(); } }