/** Delegated to us from VisualizerNode * */ public int getIndex(final javax.swing.tree.TreeNode p1) { VisualizerNode visNode = (VisualizerNode) p1; if (visNode.indexOf != -1) { final List<VisualizerNode> vn = getVisNodes(false); if (visNode.indexOf >= vn.size() || vn.get(visNode.indexOf) != visNode) { return -1; } } else { recomputeIndexes(visNode); } return visNode.indexOf; }
/** Notification of children addded event. Modifies the list of nodes * and fires info to all listeners. */ public void added(VisualizerEvent.Added ev) { if (this != parent.getChildren()) { // children were replaced, quit processing event return; } snapshot = ev.getSnapshot(); ListIterator<VisualizerNode> it = getVisNodes(true).listIterator(); int[] indxs = ev.getArray(); int current = 0; int inIndxs = 0; while (inIndxs < indxs.length) { while (current++ < indxs[inIndxs]) { it.next(); } it.add(null); inIndxs++; } recomputeIndexes(null); VisualizerNode p = this.parent; while (p != null) { Object[] listeners = p.getListenerList(); for (int i = listeners.length - 1; i >= 0; i -= 2) { ((NodeModel) listeners[i]).added(ev); } p = (VisualizerNode) p.getParent(); } }