Author: scooter
Date: 2012-04-25 21:41:40 -0700 (Wed, 25 Apr 2012)
New Revision: 29013
Modified:
core3/impl/trunk/group-impl/src/main/java/org/cytoscape/group/internal/CyGroupFactoryImpl.java
core3/impl/trunk/group-impl/src/main/java/org/cytoscape/group/internal/CyGroupImpl.java
Log:
Add methods to support session loading
Modified:
core3/impl/trunk/group-impl/src/main/java/org/cytoscape/group/internal/CyGroupFactoryImpl.java
===================================================================
---
core3/impl/trunk/group-impl/src/main/java/org/cytoscape/group/internal/CyGroupFactoryImpl.java
2012-04-26 04:40:49 UTC (rev 29012)
+++
core3/impl/trunk/group-impl/src/main/java/org/cytoscape/group/internal/CyGroupFactoryImpl.java
2012-04-26 04:41:40 UTC (rev 29013)
@@ -79,7 +79,8 @@
* {@inheritDoc}
*/
@Override
- public CyGroup createGroup(CyNetwork network, List<CyNode> nodes,
List<CyEdge> edges, boolean register) {
+ public CyGroup createGroup(CyNetwork network, List<CyNode> nodes,
+ List<CyEdge> edges, boolean register) {
return createGroup(network, null, nodes, edges, register);
}
@@ -87,10 +88,22 @@
* {@inheritDoc}
*/
@Override
- public CyGroup createGroup(CyNetwork network, CyNode node, List<CyNode>
nodes, List<CyEdge> edges, boolean register) {
+ public CyGroup createGroup(CyNetwork network, CyNode node,
+ List<CyNode> nodes, List<CyEdge> edges,
boolean register) {
CyGroup group = new CyGroupImpl(help, mgr, network, node,
nodes, edges);
if (register)
mgr.addGroup(group);
return group;
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public CyGroup createGroup(CyNetwork network, CyNode node, boolean
register) {
+ CyGroup group = new CyGroupImpl(help, mgr, network, node, null,
null);
+ if (register)
+ mgr.addGroup(group);
+ return group;
+ }
}
Modified:
core3/impl/trunk/group-impl/src/main/java/org/cytoscape/group/internal/CyGroupImpl.java
===================================================================
---
core3/impl/trunk/group-impl/src/main/java/org/cytoscape/group/internal/CyGroupImpl.java
2012-04-26 04:40:49 UTC (rev 29012)
+++
core3/impl/trunk/group-impl/src/main/java/org/cytoscape/group/internal/CyGroupImpl.java
2012-04-26 04:41:40 UTC (rev 29013)
@@ -137,9 +137,19 @@
}
}
- // Create the subnetwork
- CySubNetwork groupNet = rootNetwork.addSubNetwork(nodes, edges);
- groupNode.setNetworkPointer(groupNet);
+ CySubNetwork np = (CySubNetwork)groupNode.getNetworkPointer();
+ // If we already have a network pointer and we didn't get
+ // nodes or edges, and the network pointer points to the same
+ // root network, then it may have been provided by the session
loader
+ if (np != null && nodeProvided &&
+ edges.size() == 0 && nodes.size() == 0 &&
+ np.getRootNetwork().equals(this.rootNetwork)) {
+ CySubNetwork groupNet = np;
+ } else {
+ // Create the subnetwork
+ CySubNetwork groupNet =
rootNetwork.addSubNetwork(nodes, edges);
+ groupNode.setNetworkPointer(groupNet);
+ }
// Update our meta-edges
updateMetaEdges(true);
@@ -192,8 +202,7 @@
/**
* @see org.cytoscape.group.CyGroup#addNode()
*/
- @Override
- public synchronized void addNode(CyNode node) {
+ private synchronized void addNode(CyNode node) {
if (!rootNetwork.containsNode(node))
throwIllegalArgumentException("Can only add a node in
the same network tree");
getGroupNetwork().addNode(node);
@@ -210,8 +219,7 @@
/**
* @see org.cytoscape.group.CyGroup#addInternalEdge()
*/
- @Override
- public synchronized void addInternalEdge(CyEdge edge) {
+ private synchronized void addInternalEdge(CyEdge edge) {
if (!rootNetwork.containsEdge(edge))
throwIllegalArgumentException("Can only add an edge in
the same network tree");
getGroupNetwork().addEdge(edge);
@@ -222,8 +230,7 @@
/**
* @see org.cytoscape.group.CyGroup#addExternalEdge()
*/
- @Override
- public synchronized void addExternalEdge(CyEdge edge) {
+ protected synchronized void addExternalEdge(CyEdge edge) {
if (!rootNetwork.containsEdge(edge))
throwIllegalArgumentException("Can only add an edge in
the same network tree");
if (!externalEdges.contains(edge))
@@ -638,7 +645,7 @@
metaEdges.add(newEdge);
}
- for (CyEdge edge: newEdges) {
metaPartner.addExternalEdge(edge); }
+ for (CyEdge edge: newEdges) {
((CyGroupImpl)metaPartner).addExternalEdge(edge); }
}
private CyEdge createMetaEdge(CyEdge edge, CyNode node, CyNode
groupNode) {
--
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.