- rootNode = new DefaultMutableTreeNode("Sections");
- treeModel = new DefaultTreeModel(rootNode);
- treeModel.addTreeModelListener(new MyTreeModelListener());
-
- tree = new JTree(treeModel);
- DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) tree.getCellRenderer();
- renderer.setOpenIcon(new ImageIcon("junk.gif"));
- renderer.setClosedIcon(new ImageIcon("junk.gif"));
- renderer.setLeafIcon(new ImageIcon("junk.gif"));
- tree.setEditable(true);
- tree.getSelectionModel().setSelectionMode
- (TreeSelectionModel.SINGLE_TREE_SELECTION);
- tree.setShowsRootHandles(true);
-
- JScrollPane scrollPane = new JScrollPane(tree);
- add(scrollPane);
- }
-
- /** Remove all nodes except the root node. */
- public void clear() {
- rootNode.removeAllChildren();
- treeModel.reload();
- }
-
- public String getCurrentNodeText() {
- DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
- if (currentNode != null){
- return (String)currentNode.getUserObject();
- }
- return null;
- }
- /** Remove the currently selected node. */
- public void removeCurrentNode() {
- TreePath currentSelection = tree.getSelectionPath();
- if (currentSelection != null) {
- DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode)
- (currentSelection.getLastPathComponent());
- MutableTreeNode parent = (MutableTreeNode)(currentNode.getParent());
- if (parent != null) {
- treeModel.removeNodeFromParent(currentNode);
- return;
- }
- }
-
- // Either there was no selection, or the root was selected.
- toolkit.beep();
- }
-
- /** Add child to the currently selected node. */
- public DefaultMutableTreeNode addObject(Object child) {
- DefaultMutableTreeNode parentNode = null;
- TreePath parentPath = tree.getSelectionPath();
-
- if (parentPath == null) {
- parentNode = rootNode;
- } else {
- parentNode = (DefaultMutableTreeNode)
- (parentPath.getLastPathComponent());
- }
-
- return addObject(parentNode, child, true);
- }
-
- public DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,
- Object child) {
- return addObject(parent, child, false);
- }
-
- public DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,
- Object child,
- boolean shouldBeVisible) {
- DefaultMutableTreeNode childNode =
- new DefaultMutableTreeNode(child);
-
- if (parent == null) {
- parent = rootNode;
- }
-
- treeModel.insertNodeInto(childNode, parent,
- parent.getChildCount());
-
- //Make sure the user can see the lovely new node.
- if (shouldBeVisible) {
- tree.scrollPathToVisible(new TreePath(childNode.getPath()));
- }
- return childNode;