/** * DOCUMENT ME! * * @param network_id DOCUMENT ME! */ public void focusNetworkNode(String network_id) { //logger.info("NetworkPanel: focus network node"); DefaultMutableTreeNode node = getNetworkNode(network_id); if (node != null) { // fires valueChanged if the network isn't already selected treeTable.getTree().getSelectionModel().setSelectionPath(new TreePath(node.getPath())); treeTable.getTree().scrollPathToVisible(new TreePath(node.getPath())); } }
/** * Remove a network from the panel. * * @param network_id */ public void removeNetwork(final String network_id) { final NetworkTreeNode node = getNetworkNode(network_id); if (node == null) return; final Enumeration<NetworkTreeNode> children = node.children(); NetworkTreeNode child = null; final List removed_children = new ArrayList(); while (children.hasMoreElements()) { removed_children.add(children.nextElement()); } for (Iterator i = removed_children.iterator(); i.hasNext();) { child = (NetworkTreeNode) i.next(); child.removeFromParent(); root.add(child); } Cytoscape.getNetwork(network_id).removeSelectEventListener(this); node.removeFromParent(); treeTable.getTree().updateUI(); treeTable.doLayout(); }
DefaultMutableTreeNode root = (DefaultMutableTreeNode) netPanel.getNetworkNode(TREE_ROOT);
/** * DOCUMENT ME! * * @param network_id DOCUMENT ME! * @param parent_id DOCUMENT ME! */ public void addNetwork(String network_id, String parent_id) { // first see if it exists if (getNetworkNode(network_id) == null) { //logger.info("NetworkPanel: addNetwork " + network_id); NetworkTreeNode dmtn = new NetworkTreeNode(Cytoscape.getNetwork(network_id).getTitle(), network_id); Cytoscape.getNetwork(network_id).addSelectEventListener(this); if (parent_id != null && getNetworkNode(parent_id) != null) { getNetworkNode(parent_id).add(dmtn); } else { root.add(dmtn); } // apparently this doesn't fire valueChanged treeTable.getTree().collapsePath(new TreePath(new TreeNode[] { root })); treeTable.getTree().updateUI(); TreePath path = new TreePath(dmtn.getPath()); treeTable.getTree().expandPath(path); treeTable.getTree().scrollPathToVisible(path); treeTable.doLayout(); // this is necessary because valueChanged is not fired above focusNetworkNode(network_id); } }
/** * update a network title */ public void updateTitle(final CyNetwork network) { // updates the title in the network panel if (treeTable.getTree().getSelectionPath() != null) { // user has selected something treeTableModel.setValueAt(network.getTitle(), treeTable.getTree().getSelectionPath().getLastPathComponent(), 0); } else { // no selection, means the title has been changed programmatically NetworkTreeNode node = getNetworkNode(network.getIdentifier()); treeTableModel.setValueAt(network.getTitle(), node, 0); } treeTable.getTree().updateUI(); treeTable.doLayout(); // updates the title in the networkViewMap Cytoscape.getDesktop().getNetworkViewManager().updateNetworkTitle(network); }