Author: kono
Date: 2011-11-17 16:11:59 -0800 (Thu, 17 Nov 2011)
New Revision: 27520
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
Log:
fixes #455 Parent tree node will be removed if it is a leaf.
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
2011-11-17 22:47:13 UTC (rev 27519)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
2011-11-18 00:11:59 UTC (rev 27520)
@@ -83,6 +83,7 @@
import org.cytoscape.model.events.RowsSetListener;
import org.cytoscape.model.subnetwork.CyRootNetwork;
import org.cytoscape.model.subnetwork.CySubNetwork;
+import org.cytoscape.property.session.Parent;
import org.cytoscape.task.NetworkCollectionTaskFactory;
import org.cytoscape.task.NetworkTaskFactory;
import org.cytoscape.task.NetworkViewCollectionTaskFactory;
@@ -299,21 +300,27 @@
*/
public void removeNetwork(final Long network_id) {
final NetworkTreeNode node = getNetworkNode(network_id);
- final Enumeration children = node.children();
+ final Enumeration<?> children = node.children();
final List<NetworkTreeNode> removed_children = new
ArrayList<NetworkTreeNode>();
- while (children.hasMoreElements()) {
+ while (children.hasMoreElements())
removed_children.add((NetworkTreeNode)
children.nextElement());
- }
for (NetworkTreeNode child : removed_children) {
child.removeFromParent();
root.add(child);
}
+ final NetworkTreeNode parentNode = (NetworkTreeNode)
node.getParent();
node.removeFromParent();
+
+ if(parentNode.getChildCount() == 0) {
+ // Remove from root node
+ parentNode.removeFromParent();
+ }
+
+ treeTable.doLayout();
treeTable.getTree().updateUI();
- treeTable.doLayout();
}
/**
@@ -338,13 +345,17 @@
// // Event handlers /////
+
+ @Override
public void handleEvent(NetworkAboutToBeDestroyedEvent nde) {
- CyNetwork net = nde.getNetwork();
+ final CyNetwork net = nde.getNetwork();
logger.debug("Network about to be destroyed " + net.getSUID());
removeNetwork(net.getSUID());
nameTables.remove(net.getDefaultNetworkTable());
}
+
+ @Override
public void handleEvent(NetworkAddedEvent e) {
final CyNetwork net = e.getNetwork();
logger.debug("Got NetworkAddedEvent. Model ID = " +
net.getSUID());
@@ -385,11 +396,8 @@
logger.warn("Current network view is set to null.");
return;
}
-
logger.debug("Got SetCurrentNetworkViewEvent. View ID = " +
e.getNetworkView().getSUID());
-
final long curr = e.getNetworkView().getModel().getSUID();
-
focusNetworkNode(curr);
}
@@ -400,9 +408,7 @@
logger.warn("Got null for current network.");
return;
}
-
logger.debug("Set current network " + cnet.getSUID());
-
focusNetworkNode(cnet.getSUID());
}
@@ -477,7 +483,7 @@
}
}
- NetworkTreeNode getNetworkNode(Long network_id) {
+ NetworkTreeNode getNetworkNode(final Long network_id) {
final Enumeration<?> tree_node_enum =
root.breadthFirstEnumeration();
while (tree_node_enum.hasMoreElements()) {
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.