public synchronized void drop()

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();
            }
        }