/** * Update the layouts tree. * * @param current The name of the current layout or <CODE>null</CODE> if none. */ public void updateLayouts(Path current) throws PipelineException { DefaultMutableTreeNode root = null; { root = new DefaultMutableTreeNode(new TreeData(), true); { Path path = new Path(PackageInfo.getSettingsPath(), "layouts"); rebuildTreeModel(path, new Path("/"), root); } DefaultTreeModel model = (DefaultTreeModel) pTree.getModel(); model.setRoot(root); { Enumeration e = root.depthFirstEnumeration(); if (e != null) { while (e.hasMoreElements()) { DefaultMutableTreeNode tnode = (DefaultMutableTreeNode) e.nextElement(); pTree.expandPath(new TreePath(tnode.getPath())); } } } } pTree.clearSelection(); if (current != null) { TreePath tpath = null; DefaultMutableTreeNode tnode = root; for (String comp : current.getComponents()) { DefaultMutableTreeNode next = null; Enumeration e = tnode.children(); if (e != null) { while (e.hasMoreElements()) { DefaultMutableTreeNode child = (DefaultMutableTreeNode) e.nextElement(); TreeData data = (TreeData) child.getUserObject(); if (data.toString().equals(comp)) { tpath = new TreePath(child.getPath()); next = child; break; } } } if (next == null) break; tnode = next; } if (tpath != null) { pTree.setSelectionPath(tpath); pTree.makeVisible(tpath); } } }
/** * Returns all the paths that are located directly underneath a given path. From Globals * * @param w Wrapper class. * @param start The path to start the search underneath * @return * @throws PipelineException */ public ArrayList<String> getChildrenNodes(MasterMgrClient mclient, String start) throws PipelineException { ArrayList<String> toReturn = new ArrayList<String>(); TreeMap<String, Boolean> comps = new TreeMap<String, Boolean>(); comps.put(start, false); NodeTreeComp treeComps = mclient.updatePaths(pUser, pView, comps); Path p = new Path(start); ArrayList<String> parts = p.getComponents(); for (String comp : parts) { if (treeComps != null) treeComps = treeComps.get(comp); } for (String s : treeComps.keySet()) { toReturn.add(s); } return toReturn; }