|
DragAndDrop |
|
package ij.plugin; import ij.*; import ij.io.*; import java.io.*; import java.awt.datatransfer.*; import java.awt.dnd.*; import java.util.List; import java.util.Iterator; /** This class opens images, roi's, luts and text files dragged and dropped on the ImageJ frame. Requires Java 2, v1.3.1. Based on the Draw_And_Drop plugin by Eric Kischell (keesh@ieee.org). */ public class DragAndDrop implements PlugIn, DropTargetListener { protected static ImageJ ij = null; // the "ImageJ" frame private static boolean enableDND = true; protected DataFlavor dFlavor; public void run(String arg) { String vers = System.getProperty("java.version"); if (vers.compareTo("1.3.1") < 0) return; ij = IJ.getInstance(); ij.setDropTarget(null); DropTarget dropTarget = new DropTarget(ij, this); } public void drop(DropTargetDropEvent dtde) { dtde.acceptDrop(DnDConstants.ACTION_COPY); try { Transferable t = dtde.getTransferable(); if (t.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) { Object data = t.getTransferData(DataFlavor.javaFileListFlavor); Iterator iterator = ((List)data).iterator(); //IJ.log("drop"); while(iterator.hasNext()) { File file = (File)iterator.next(); //IJ.log("dopen: "+file.getAbsolutePath()); new Opener().open(file.getAbsolutePath()); } } } catch(Exception e) { dtde.dropComplete(false); return; } dtde.dropComplete(true); } public void dragEnter(DropTargetDragEvent dtde) { dtde.acceptDrag(DnDConstants.ACTION_COPY); } public void dragOver(DropTargetDragEvent e) {} public void dragExit(DropTargetEvent e) {} public void dropActionChanged(DropTargetDragEvent e) {} }
|
DragAndDrop |
|