/** * Fire a graph event. Makes sure to invalidate all edges connected * to a node that has been updated. * @see prefuse.data.Graph#fireGraphEvent(prefuse.data.Table, int, int, int, int) */ protected void fireGraphEvent(Table t, int first, int last, int col, int type) { // if a node is invalidated, invalidate the edges, too if ( type==EventConstants.UPDATE && col==VisualItem.IDX_VALIDATED && t==getNodeTable() ) { VisualTable nodes = (VisualTable)t; VisualTable edges = (VisualTable)getEdgeTable(); for ( int i=first; i<=last; ++i ) { if ( nodes.isValidated(i) ) continue; // look only for invalidations IntIterator erows = edgeRows(i); while ( erows.hasNext() ) { int erow = erows.nextInt(); edges.setValidated(erow, false); } } } // fire the event off to listeners super.fireGraphEvent(t, first, last, col, type); }
/** * Create a new window displaying the contents of the input Tree as * a Swing JTree. * @param t the Tree instance to display * @param labelField the data field to use for labeling nodes * @return a reference to the JFrame holding the tree view */ public static JFrame showTreeWindow(Tree t, String labelField) { JPrefuseTree tree = new JPrefuseTree(t, labelField); String title = t.toString(); if ( t instanceof VisualTree ) { title = ((VisualTree)t).getGroup() + " " + title; } JFrame frame = new JFrame(title); frame.getContentPane().add(new JScrollPane(tree)); frame.pack(); frame.setVisible(true); return frame; }
et = addTable(eGroup, tree.getEdgeTable(), filter, edgeSchema); VisualTree vt = new VisualTree(nt, et, tree.getNodeKeyField(), tree.getEdgeSourceField(), tree.getEdgeTargetField()); vt.setVisualization(this); vt.setGroup(group); nt.setTupleManager(ntm); et.setTupleManager(etm); vt.setTupleManagers(ntm, etm);