{}
}
-
- /**
- * DOCUMENT ME!
- *
- * @param evt DOCUMENT ME!
- */
public void dragEnter(DropTargetDragEvent evt)
- {
- }
+ {}
- /**
- * DOCUMENT ME!
- *
- * @param evt DOCUMENT ME!
- */
public void dragExit(DropTargetEvent evt)
- {
- }
+ {}
- /**
- * DOCUMENT ME!
- *
- * @param evt DOCUMENT ME!
- */
public void dragOver(DropTargetDragEvent evt)
- {
- }
+ {}
- /**
- * DOCUMENT ME!
- *
- * @param evt DOCUMENT ME!
- */
public void dropActionChanged(DropTargetDragEvent evt)
- {
- }
+ {}
/**
* DOCUMENT ME!
public void drop(DropTargetDropEvent evt)
{
Transferable t = evt.getTransferable();
+ java.util.List files = null;
+
+ try
+ {
+ DataFlavor uriListFlavor = new DataFlavor("text/uri-list;class=java.lang.String");
+ if (t.isDataFlavorSupported(DataFlavor.javaFileListFlavor))
+ {
+ //Works on Windows and MacOSX
+ evt.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
+ files = (java.util.List) t.getTransferData(DataFlavor.javaFileListFlavor);
+ }
+ else if (t.isDataFlavorSupported(uriListFlavor))
+ {
+ // This is used by Unix drag system
+ evt.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
+ String data = (String) t.getTransferData(uriListFlavor);
+ files = new java.util.ArrayList(1);
+ for (java.util.StringTokenizer st = new java.util.StringTokenizer(
+ data,
+ "\r\n");
+ st.hasMoreTokens(); )
+ {
+ String s = st.nextToken();
+ if (s.startsWith("#"))
+ {
+ // the line is a comment (as per the RFC 2483)
+ continue;
+ }
- if (!t.isDataFlavorSupported(DataFlavor.javaFileListFlavor))
+ java.net.URI uri = new java.net.URI(s);
+ java.io.File file = new java.io.File(uri);
+ files.add(file);
+ }
+ }
+ }
+ catch (Exception e)
{
- return;
+ e.printStackTrace();
}
- evt.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
-
- try
+ if (files != null)
{
- java.util.List files = (java.util.List) t.getTransferData(DataFlavor.javaFileListFlavor);
-
+ try
+ {
for (int i = 0; i < files.size(); i++)
{
- String file = files.get(i).toString();
- String protocol = "File";
- String format = null;
+ String file = files.get(i).toString();
+ String protocol = "File";
+ String format = null;
- if (file.endsWith(".jar"))
- {
- format = "Jalview";
+ if (file.endsWith(".jar"))
+ {
+ format = "Jalview";
- }
- else
- {
- format = jalview.io.IdentifyFile.Identify(file,
- protocol);
- }
- LoadFile(file, protocol, format);
+ }
+ else
+ {
+ format = jalview.io.IdentifyFile.Identify(file,
+ protocol);
+ }
+ LoadFile(file, protocol, format);
}
- }
- catch (Exception ex)
- {
+ }
+ catch (Exception ex)
+ {
ex.printStackTrace();
+ }
}
}