+ DataFlavor textFlavor = DataFlavor.selectBestTextFlavor(transferable.getTransferDataFlavors());
+ if(textFlavor != null) {
+ try(Reader reader = textFlavor.getReaderForText(transferable)) {
+ ObjectMapper mapper = new ObjectMapper();
+ JsonNode node = mapper.readTree(reader);
+ Object resourceId = node.get("resourceId");
+ if(resourceId instanceof NumericNode) {
+ dtde.acceptDrop( DnDConstants.ACTION_MOVE );
+
+ transferable.getTransferData(LocalObjectTransferable.FLAVOR);
+ Object obj = new StructuredSelection(Simantics.getSession().syncRequest(new Read<Resource>() {
+ public Resource perform(ReadGraph graph) throws DatabaseException {
+ SerialisationSupport ss = graph.getService(SerialisationSupport.class);
+ return ss.getResource(((NumericNode)resourceId).longValue());
+ }
+ }));
+ handleDrop(dtde, obj);
+
+ dtde.getDropTargetContext().dropComplete( true );
+ return;
+ }
+ }
+ }