]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.debug.graphical/src/org/simantics/debug/graphical/DebuggerCanvas.java
Support Json content as drop data in Graphical Debugger
[simantics/platform.git] / bundles / org.simantics.debug.graphical / src / org / simantics / debug / graphical / DebuggerCanvas.java
index 6430d029beca6185d922dddd3e9a1bc41a4d3bb8..310d8a0865e824cfc8b0f6e51dd26af1bf41c78b 100644 (file)
@@ -214,12 +214,11 @@ public class DebuggerCanvas extends JPanel {
                         transferable.getTransferData(LocalObjectTransferable.FLAVOR);
                         Object obj = LocalObjectTransfer.getTransfer().getObject();
                         handleDrop(dtde, obj);
                         transferable.getTransferData(LocalObjectTransferable.FLAVOR);
                         Object obj = LocalObjectTransfer.getTransfer().getObject();
                         handleDrop(dtde, obj);
-                        
-                        dtde.getDropTargetContext().dropComplete( true );
                     }
                     else {
                         DataFlavor textFlavor = DataFlavor.selectBestTextFlavor(transferable.getTransferDataFlavors());
                         if(textFlavor != null) {
                     }
                     else {
                         DataFlavor textFlavor = DataFlavor.selectBestTextFlavor(transferable.getTransferDataFlavors());
                         if(textFlavor != null) {
+                            // Try to read the textual content of the drop event as a JSON object containing a field named resourceId
                             try(Reader reader = textFlavor.getReaderForText(transferable)) {
                                 ObjectMapper mapper = new ObjectMapper();
                                 JsonNode node = mapper.readTree(reader);
                             try(Reader reader = textFlavor.getReaderForText(transferable)) {
                                 ObjectMapper mapper = new ObjectMapper();
                                 JsonNode node = mapper.readTree(reader);
@@ -235,8 +234,6 @@ public class DebuggerCanvas extends JPanel {
                                         }
                                     }));
                                     handleDrop(dtde, obj);
                                         }
                                     }));
                                     handleDrop(dtde, obj);
-                                    
-                                    dtde.getDropTargetContext().dropComplete( true );
                                     return;
                                 }
                             }
                                     return;
                                 }
                             }
@@ -255,6 +252,8 @@ public class DebuggerCanvas extends JPanel {
         double x = canvasPosX+dtde.getLocation().getX()/canvasZoom;
         double y = canvasPosY+dtde.getLocation().getY()/canvasZoom;
         handleDrop(x, y, obj);
         double x = canvasPosX+dtde.getLocation().getX()/canvasZoom;
         double y = canvasPosY+dtde.getLocation().getY()/canvasZoom;
         handleDrop(x, y, obj);
+        
+        dtde.getDropTargetContext().dropComplete( true );
     }
     
     public void keyPressed(KeyEvent e) {
     }
     
     public void keyPressed(KeyEvent e) {