/** * Build a tree path to the given node. * @param desc The node. * @return The path items. */ @Override public List buildTreePath(ITreeNode node) { assert SwingUtilities.isEventDispatchThread();// || Starter.isShutdown(); return super.buildTreePath(node); }
/** * Inform listeners that a node has been removed */ public void fireNodesRemoved(ITreeNode parent, ITreeNode[] childs, int[] indices) { List<ITreeNode> path = buildTreePath(parent); // System.err.println(""+hashCode()+" Node removed: "+child+", "+index+", "+path); for(int i = 0; i < listeners.size(); i++) { listeners.get(i).treeNodesRemoved(new AsyncTreeModelEvent(this, path.toArray(), indices, childs)); } }
@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); } } }
/** * Inform listeners that tree has changed from given node on. */ public void fireTreeChanged(ITreeNode node) { List<ITreeNode> path = buildTreePath(node); // System.err.println(""+hashCode()+" Path changed: "+node+", "+path+", "+node.getCachedChildren()); for(int i = 0; i < listeners.size(); i++) { listeners.get(i).treeStructureChanged(new AsyncTreeModelEvent(this, path.toArray())); } }
/** * Inform listeners that a node has been removed */ public void fireNodeRemoved(ITreeNode parent, ITreeNode child, int index) { List<ITreeNode> path = buildTreePath(parent); // System.err.println(""+hashCode()+" Node removed: "+child+", "+index+", "+path); for(int i = 0; i < listeners.size(); i++) { listeners.get(i).treeNodesRemoved( new AsyncTreeModelEvent(this, path.toArray(), new int[]{index}, new Object[]{child})); } }
/** * Refresh the node. */ public void refresh(boolean recurse) { if(TreeExpansionHandler.isTreeExpanded(tree, new TreePath(model.buildTreePath(this).toArray()))) super.refresh(recurse); }
/** * Inform listeners that a node has been added */ public void fireNodeAdded(ITreeNode parent, ITreeNode child, int index) { // if(child.toString().indexOf("A:")!=-1) // System.out.println("here4"); List<ITreeNode> path = buildTreePath(parent); // System.err.println(""+hashCode()+" Node added: "+child+", "+index+", "+path); for (int i = 0; i < listeners.size(); i++) { listeners.get(i).treeNodesInserted( new AsyncTreeModelEvent(this, path.toArray(), new int[]{index}, new Object[]{child})); } }
indices = itmp; path = buildTreePath(parents[i]); indices = null; nodes = null; path = buildTreePath((ITreeNode) set.iterator().next());