Author: scooter
Date: 2012-07-20 10:46:24 -0700 (Fri, 20 Jul 2012)
New Revision: 29942
Modified:
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/GroupViewCollapseHandler.java
Log:
Add "preserve group node" capability
Modified:
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/GroupViewCollapseHandler.java
===================================================================
---
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/GroupViewCollapseHandler.java
2012-07-20 17:39:11 UTC (rev 29941)
+++
core3/impl/trunk/group-view-impl/src/main/java/org/cytoscape/group/view/internal/GroupViewCollapseHandler.java
2012-07-20 17:46:24 UTC (rev 29942)
@@ -41,12 +41,14 @@
import org.cytoscape.group.events.GroupCollapsedEvent;
import org.cytoscape.group.events.GroupCollapsedListener;
+import org.cytoscape.model.CyEdge;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNetworkManager;
import org.cytoscape.model.CyNode;
import org.cytoscape.model.CyRow;
import org.cytoscape.model.CyTable;
import org.cytoscape.model.subnetwork.CyRootNetwork;
+import org.cytoscape.model.subnetwork.CySubNetwork;
import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.model.CyNetworkViewFactory;
@@ -181,13 +183,32 @@
// Handle opacity
double opacity =
cyGroupSettings.getGroupNodeOpacity(group);
+ if (opacity != 100.0)
+
nView.setVisualProperty(BasicVisualLexicon.NODE_TRANSPARENCY,
(int)(opacity*255.0/100.0));
} else {
+ CyNode groupNode = group.getGroupNode();
+
// Get the location of the group node before it went
away
- Dimension center = getLocation(rootNetwork,
group.getGroupNode());
+ Dimension center = getLocation(rootNetwork, groupNode);
moveNodes(group, view, center);
+
// If we're asked to, show the group node
if (!cyGroupSettings.getHideGroupNode(group)) {
+ CySubNetwork subnet = (CySubNetwork)network;
+
+ subnet.addNode(group.getGroupNode()); // Add
the node back
+
+ // Add the group nodes's edges back
+ List<CyEdge> groupNodeEdges =
rootNetwork.getAdjacentEdgeList(groupNode, CyEdge.Type.ANY);
+ for (CyEdge edge: groupNodeEdges)
+ subnet.addEdge(edge);
+
+ view.updateView();
+
+ // Now, call ourselves as if we had been
collapsed
+ handleEvent(new GroupCollapsedEvent(group,
network, true));
+ return;
}
}
--
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.