/** * Invoked after nodes have been inserted into the tree. */ public void treeNodesInserted(TreeModelEvent event) { // System.out.println("nodes inserted: "+event); // When a new node has been inserted, // we may have to re-expand its parent. handlePath(event.getTreePath()); }
/** * Test if a path is expanded or should be. */ public boolean isExpanded(TreePath path) { return super.isExpanded(path) || expandedpaths!=null && expandedpaths.contains(NodePath.createNodePath((ISwingTreeNode)path.getLastPathComponent())); }
public void resultAvailable(Object result) { handleTreeStructureChanged(event, root, i+1); }
@Override protected void expandChildren(boolean dorecurse, List<ITreeNode> children) { if(dorecurse && TreeExpansionHandler.isTreeExpanded(tree, new TreePath(model.buildTreePath(AbstractSwingTreeNode.this).toArray()))) { for(int i=0; children!=null && i<children.size(); i++) { ((ITreeNode)children.get(i)).refresh(dorecurse); } } }
new TreeExpansionHandler(tree); tree.setCellRenderer(new ObjectTreeCellRenderer());
/** * Refresh the node. */ public void refresh(boolean recurse) { if(TreeExpansionHandler.isTreeExpanded(tree, new TreePath(model.buildTreePath(this).toArray()))) super.refresh(recurse); }
new TreeExpansionHandler(tree); tree.setRootVisible(false); tree.setCellRenderer(new IdTreeCellRenderer());
IFuture ret = super.handlePath(path);
/** * Test if a tree node is expanded or should be. */ public static boolean isTreeExpanded(JTree tree, TreePath path) { boolean ret = tree.isExpanded(path); if(!ret) { List tehs = (List)tree.getClientProperty(TreeExpansionHandler.class); for(int i=0; !ret && tehs!=null && i<tehs.size(); i++) { TreeExpansionHandler teh = (TreeExpansionHandler)tehs.get(i); ret = teh.isExpanded(path); } } return ret; } }
/** * Invoked after the tree has drastically changed structure from a * given node down. */ public void treeStructureChanged(final TreeModelEvent event) { handleTreeStructureChanged(event, event.getTreePath(), Math.max(tree.getRowForPath(event.getTreePath()), 0)); }
new TreeExpansionHandler(tree); tree.setCellRenderer(new OAVTreeCellRenderer());
handlePath(path).addResultListener(new IResultListener()
new TreeExpansionHandler(tree); RootNode root = new RootNode(model, tree); model.setRoot(root);