in src/main/java/com/atlassian/uwc/ui/organizer/TreeTester.java [157:238]
public synchronized void drop(DropTargetDropEvent dropTargetDropEvent) {
// Only support dropping over nodes that aren't leafs
Point location = dropTargetDropEvent.getLocation();
TreePath path = getPathForLocation(location.x, location.y);
Object node = path.getLastPathComponent();
if ((node != null) && (node instanceof TreeNode)
&& (!((TreeNode) node).isLeaf())) {
try {
Transferable tr = dropTargetDropEvent.getTransferable();
if (tr
.isDataFlavorSupported(TransferableTreeNode.DEFAULT_MUTABLE_TREENODE_FLAVOR)) {
dropTargetDropEvent
.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
Object userObject = tr
.getTransferData(TransferableTreeNode.DEFAULT_MUTABLE_TREENODE_FLAVOR);
addElement(path, userObject);
dropTargetDropEvent.dropComplete(true);
} else if (tr
.isDataFlavorSupported(DataFlavor.stringFlavor)) {
dropTargetDropEvent
.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
String string = (String) tr
.getTransferData(DataFlavor.stringFlavor);
addElement(path, string);
dropTargetDropEvent.dropComplete(true);
} else if (tr
.isDataFlavorSupported(DataFlavor.plainTextFlavor)) {
dropTargetDropEvent
.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
Object stream = tr
.getTransferData(DataFlavor.plainTextFlavor);
if (stream instanceof InputStream) {
InputStreamReader isr = new InputStreamReader(
(InputStream) stream);
BufferedReader reader = new BufferedReader(isr);
String line;
while ((line = reader.readLine()) != null) {
addElement(path, line);
}
dropTargetDropEvent.dropComplete(true);
} else if (stream instanceof Reader) {
BufferedReader reader = new BufferedReader(
(Reader) stream);
String line;
while ((line = reader.readLine()) != null) {
addElement(path, line);
}
dropTargetDropEvent.dropComplete(true);
} else {
System.err.println("Unknown type: "
+ stream.getClass());
dropTargetDropEvent.rejectDrop();
}
} else if (tr
.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
dropTargetDropEvent
.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
List fileList = (List) tr
.getTransferData(DataFlavor.javaFileListFlavor);
Iterator iterator = fileList.iterator();
while (iterator.hasNext()) {
File file = (File) iterator.next();
addElement(path, file.toURL());
}
dropTargetDropEvent.dropComplete(true);
} else {
System.err.println("Rejected");
dropTargetDropEvent.rejectDrop();
}
} catch (IOException io) {
io.printStackTrace();
dropTargetDropEvent.rejectDrop();
} catch (UnsupportedFlavorException ufe) {
ufe.printStackTrace();
dropTargetDropEvent.rejectDrop();
}
} else {
System.out.println("Can't drop on a leaf");
dropTargetDropEvent.rejectDrop();
}
}