for (int i = 0; i < flavors.length; i++) {
// System.out.println("flavor " + flavors[i]);
// Drop from Windows
if (DataFlavor.javaFileListFlavor.equals(flavors[i])) {
dtde.acceptDrop(DnDConstants.ACTION_COPY);
Transferable t = dtde.getTransferable();
if (t.getTransferData(DataFlavor.javaFileListFlavor) instanceof java.util.List) {
java.util.List fileList = (java.util.List) t.getTransferData(DataFlavor.javaFileListFlavor);
if (fileList.get(0) instanceof File) {
File[] f = new File[fileList.size()];
fileList.toArray(f);
fileDropped(f);
}
}
return;
}
// Drop from GNOME
else if (flavors[i].getMimeType().startsWith("text/uri-list") && flavors[i].getRepresentationClass()
.equals(Reader.class)) {
dtde.acceptDrop(DnDConstants.ACTION_COPY);
Transferable t = dtde.getTransferable();
BufferedReader r = new BufferedReader((Reader) t.getTransferData(flavors[i]));
String s = null;
List l = new ArrayList();
while ((s = r.readLine()) != null) {
if (s.startsWith("file://")) {
s = s.substring(7);
}
l.add(new File(URLDecoder.decode(s, "UTF-8")));
}
File[] f = new File[l.size()];
l.toArray(f);
fileDropped(f);
return;
}
// Drop from GNOME
else if (DataFlavor.stringFlavor.equals(flavors[i])) {
dtde.acceptDrop(DnDConstants.ACTION_COPY);
Transferable t = dtde.getTransferable();
Object o = t.getTransferData(DataFlavor.stringFlavor);
if (o instanceof String) {
// System.out.println("string uri list = " + o);
List l = new ArrayList();
StringTokenizer tz = new StringTokenizer(o.toString(), "\n\r");
while (tz.hasMoreTokens()) {