Example usage for javax.swing.tree DefaultMutableTreeNode getChildAt

List of usage examples for javax.swing.tree DefaultMutableTreeNode getChildAt

Introduction

In this page you can find the example usage for javax.swing.tree DefaultMutableTreeNode getChildAt.

Prototype

public TreeNode getChildAt(int index) 

Source Link

Document

Returns the child at the specified index in this node's child array.

Usage

From source file:MyTreeModelListener.java

public void treeNodesChanged(TreeModelEvent e) {
    DefaultMutableTreeNode node;
    node = (DefaultMutableTreeNode) (e.getTreePath().getLastPathComponent());

    try {//from ww w .j a v a2s. co  m
        int index = e.getChildIndices()[0];
        node = (DefaultMutableTreeNode) (node.getChildAt(index));
    } catch (NullPointerException exc) {
    }

    System.out.println("The user has finished editing the node.");
    System.out.println("New value: " + node.getUserObject());
}

From source file:Main.java

private void buildTreeFromString(final DefaultTreeModel model, final String str) {
    DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot();
    String[] strings = str.split("/");
    DefaultMutableTreeNode node = root;
    for (String s : strings) {
        int index = childIndex(node, s);
        if (index < 0) {
            DefaultMutableTreeNode newChild = new DefaultMutableTreeNode(s);
            node.insert(newChild, node.getChildCount());
            node = newChild;/*from   w w w . j  av  a2 s .  com*/
        } else {
            node = (DefaultMutableTreeNode) node.getChildAt(index);
        }
    }
}

From source file:Main.java

/**
 * Method by Adrian: [/* w  w w  . jav  a 2 s  .  c  o m*/
 * <a href="http://stackoverflow.com/a/15704264/5620200">StackOverflow</a> ]
 * & Mike: [ <a href=
 * "http://stackoverflow.com/questions/1542170/arranging-nodes-in-a-jtree">
 * StackOverflow</a> ]
 * 
 * @param node
 * @return
 */
@SuppressWarnings("unchecked")
public static DefaultMutableTreeNode sort(DefaultMutableTreeNode node) {
    List<DefaultMutableTreeNode> children = Collections.list(node.children());
    List<String> orgCnames = new ArrayList<String>();
    List<String> cNames = new ArrayList<String>();
    DefaultMutableTreeNode temParent = new DefaultMutableTreeNode();
    for (DefaultMutableTreeNode child : children) {
        DefaultMutableTreeNode ch = (DefaultMutableTreeNode) child;
        temParent.insert(ch, 0);
        String uppser = ch.toString().toUpperCase();
        // Not dependent on package name, so if duplicates are found
        // they will later on be confused. Adding this is of
        // very little consequence and fixes the issue.
        if (cNames.contains(uppser)) {
            uppser += "$COPY";
        }
        cNames.add(uppser);
        orgCnames.add(uppser);
        if (!child.isLeaf()) {
            sort(child);
        }
    }
    Collections.sort(cNames);
    for (String name : cNames) {
        int indx = orgCnames.indexOf(name);
        int insertIndex = node.getChildCount();
        node.insert(children.get(indx), insertIndex);
    }
    // Fixing folder placement
    for (int i = 0; i < node.getChildCount() - 1; i++) {
        DefaultMutableTreeNode child = (DefaultMutableTreeNode) node.getChildAt(i);
        for (int j = i + 1; j <= node.getChildCount() - 1; j++) {
            DefaultMutableTreeNode prevNode = (DefaultMutableTreeNode) node.getChildAt(j);
            if (!prevNode.isLeaf() && child.isLeaf()) {
                node.insert(child, j);
                node.insert(prevNode, i);
            }
        }
    }
    return node;
}

From source file:net.landora.animeinfo.notifications.NotificationViewer.java

private void addChildren(DefaultMutableTreeNode node, List<Object> items) {
    if (node.getAllowsChildren()) {
        for (int i = 0; i < node.getChildCount(); i++) {
            DefaultMutableTreeNode n = (DefaultMutableTreeNode) node.getChildAt(i);
            addChildren(n, items);/*from   ww w .  j  a  v a  2s.c o m*/
        }
    } else {
        items.add(node.getUserObject());
    }
}

From source file:edu.ku.brc.specify.tasks.subpane.security.NavigationTreeContextMenuMgr.java

/**
 * @param node/*from w  ww .  ja  v  a  2s.co m*/
 * @return
 */
private DefaultMutableTreeNode getAdminTreeNode(final DefaultMutableTreeNode node) {
    for (int i = 0; i < node.getChildCount(); i++) {
        DefaultMutableTreeNode child = (DefaultMutableTreeNode) node.getChildAt(i);
        FormDataObjIFace dmObj = ((DataModelObjBaseWrapper) child.getUserObject()).getDataObj();

        if (dmObj instanceof SpPrincipal) {
            String name = ((SpPrincipal) dmObj).getName();
            if (name.equals("Administrator")) {
                return (DefaultMutableTreeNode) child;
            }
        }
        DefaultMutableTreeNode cNode = getAdminTreeNode(child);
        if (cNode != null) {
            return cNode;
        }
    }
    return null;
}

From source file:edu.ku.brc.specify.config.DebugLoggerDialog.java

protected void buildTree(final Logger logger, DefaultMutableTreeNode parent, final String[] names,
        final int level) {
    for (int i = 0; i < parent.getChildCount(); i++) {
        LoggerNode node = (LoggerNode) parent.getChildAt(i);
        //System.out.println("["+node.toString()+"]["+names[level]+"]");
        if (node.toString().equals(names[level])) {
            buildTree(logger, node, names, level + 1);
            return;
        }//  ww w. jav a 2 s .  c om
    }

    LoggerNode newNode = new LoggerNode(logger, names[level]);
    newNode.setSelected(logger.getLevel() == Level.DEBUG);
    parent.add(newNode);
    newNode.setParent(parent);
    if (level < names.length - 1) {
        buildTree(logger, newNode, names, level + 1);
    }
}

From source file:com.mindcognition.mindraider.ui.swing.explorer.LabelsTree.java

public void treeNodesChanged(TreeModelEvent e) {
    DefaultMutableTreeNode node = (DefaultMutableTreeNode) (e.getTreePath().getLastPathComponent());

    /*/*from   w w  w  .  j  a v a2s.  co m*/
     * If the event lists children, then the changed node is the child
     * of the node we've already gotten. Otherwise, the changed node and
     * the specified node are the same.
     */
    // TODO
    try {
        int index = e.getChildIndices()[0];
        node = (DefaultMutableTreeNode) (node.getChildAt(index));

        // TODO RENAME NOT IMPLEMENTED investigate how is the node stored into the user object
        /*            
                    if (node.getLevel() == LEVEL_LABELS) {
        MindRaider.folderCustodian.rename(
                (String) getTreeNodeToResourceUriMap().get(node),
                (String) node.getUserObject());
                    } else {
        if (node.getLevel() == LEVEL_NOTEBOOKS) {
            MindRaider.notebookCustodian.rename(
                    (String) getTreeNodeToResourceUriMap()
                            .get(node), (String) node
                            .getUserObject());
            MindRaider.profile.setActiveNotebookUri(null);
            MindRaider.notebookCustodian.loadNotebook(new URI(
                    (String) getTreeNodeToResourceUriMap()
                            .get(node)));
            NotebookJPanel.getInstance().refresh();
        }
                    }
        */
    } catch (Exception ex) {
        logger.debug("Unable to found node!", ex);
    }

    logger.debug("New value: " + node.getUserObject());
}

From source file:com.pironet.tda.AbstractDumpParser.java

/**
 * retrieve the next node for adding histogram information into the tree.
 *
 * @param root the root to use for search.
 * @return node to use for append.//from  w w w.  j av  a2s.  c om
 */
protected DefaultMutableTreeNode getNextDumpForHistogram(DefaultMutableTreeNode root) {
    if (dumpHistogramCounter == -1) {
        // -1 as index starts with 0.
        dumpHistogramCounter = root.getChildCount() - 1;
    }
    DefaultMutableTreeNode result = null;

    if (dumpHistogramCounter > 0) {
        result = (DefaultMutableTreeNode) root.getChildAt(dumpHistogramCounter);
        dumpHistogramCounter--;
    }

    return result;
}

From source file:TreeUtil.java

public void addNode(String name, Object obj) {
    itsMap.put(name, obj);/*  w  w w. j  ava  2  s .  c o  m*/
    DefaultMutableTreeNode tempNode = itsRootNode;
    StringTokenizer tok = new StringTokenizer(name, ".");
    String currentName = null;
    while (tok.hasMoreTokens()) {
        String myTok = tok.nextToken();
        currentName = (currentName == null) ? myTok : currentName + "." + myTok;
        boolean createNew = true;
        for (int j = 0; j < tempNode.getChildCount(); j++) {
            DefaultMutableTreeNode childNode = (DefaultMutableTreeNode) tempNode.getChildAt(j);
            if (childNode.toString().equals(myTok)) {
                tempNode = childNode;
                createNew = false;
                break;
            }
        }
        if (createNew) {
            DefaultMutableTreeNode aNode = new DefaultMutableTreeNode(myTok);
            itsTreeMap.put(currentName, aNode);
            // Let's give some consideration to where in the tree we place
            // the new node.
            // We want any nodes with children to be listed first, in
            // alphabetical order.
            // Then come nodes with no children, in alphabetical order.
            if (tok.hasMoreTokens()) {
                // This node is not a leaf node
                int targeti;
                for (targeti = 0; targeti < tempNode.getChildCount(); targeti++) {
                    TreeNode bNode = tempNode.getChildAt(targeti);
                    if (bNode.isLeaf() || bNode.toString().compareToIgnoreCase(myTok) > 0) {
                        break;
                    }
                }
                tempNode.insert(aNode, targeti);
            } else {
                // This node is a leaf node
                int targeti;
                for (targeti = 0; targeti < tempNode.getChildCount(); targeti++) {
                    TreeNode bNode = tempNode.getChildAt(targeti);
                    if (bNode.isLeaf() && bNode.toString().compareToIgnoreCase(myTok) > 0) {
                        break;
                    }
                }
                tempNode.insert(aNode, targeti);
            }
            tempNode = aNode;
        }
    }
}

From source file:uk.co.markfrimston.tasktree.TaskTree.java

protected void addChildElementsFromTasks(Document doc, Element parent, DefaultMutableTreeNode treeNode,
        int indent) {
    for (int i = 0; i < treeNode.getChildCount(); i++) {
        DefaultMutableTreeNode treeChild = (DefaultMutableTreeNode) treeNode.getChildAt(i);
        String indentText = "\n";
        for (int j = 0; j < indent + 1; j++) {
            indentText += "\t";
        }/*from ww  w .  ja v  a  2s  . c  om*/
        parent.appendChild(doc.createTextNode(indentText));
        Element childEl = doc.createElement("task");
        childEl.setAttribute("label", (String) treeChild.getUserObject());
        parent.appendChild(childEl);
        addChildElementsFromTasks(doc, childEl, treeChild, indent + 1);
    }
    if (treeNode.getChildCount() > 0) {
        String indentText = "\n";
        for (int i = 0; i < indent; i++) {
            indentText += "\t";
        }
        parent.appendChild(doc.createTextNode(indentText));
    }
}