List of usage examples for javax.swing.tree DefaultMutableTreeNode getChildAt
public TreeNode getChildAt(int index)
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)); } }