Author: clopes
Date: 2012-09-11 14:46:55 -0700 (Tue, 11 Sep 2012)
New Revision: 30344
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTask.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTaskFactoryImpl.java
Log:
Changes how nested networks are cloned when they point to the network to be
cloned, so the circular reference is maintained in the new network.
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
2012-09-11 16:58:37 UTC (rev 30343)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
2012-09-11 21:46:55 UTC (rev 30344)
@@ -261,7 +261,7 @@
UnHideAllNodesTaskFactoryImpl unHideAllNodesTaskFactory = new
UnHideAllNodesTaskFactoryImpl(undoSupportServiceRef,cyEventHelperRef,visualMappingManagerServiceRef);
UnHideAllEdgesTaskFactoryImpl unHideAllEdgesTaskFactory = new
UnHideAllEdgesTaskFactoryImpl(undoSupportServiceRef,cyEventHelperRef,visualMappingManagerServiceRef);
NewEmptyNetworkTaskFactoryImpl newEmptyNetworkTaskFactory = new
NewEmptyNetworkTaskFactoryImpl(cyNetworkFactoryServiceRef,cyNetworkViewFactoryServiceRef,cyNetworkManagerServiceRef,cyNetworkViewManagerServiceRef,cyNetworkNamingServiceRef,synchronousTaskManagerServiceRef,visualMappingManagerServiceRef);
- CloneNetworkTaskFactoryImpl cloneNetworkTaskFactory = new
CloneNetworkTaskFactoryImpl(cyNetworkManagerServiceRef,cyNetworkViewManagerServiceRef,visualMappingManagerServiceRef,cyNetworkFactoryServiceRef,cyNetworkViewFactoryServiceRef,cyNetworkNamingServiceRef,cyApplicationManagerServiceRef,cyNetworkTableManagerServiceRef,rootNetworkManagerServiceRef);
+ CloneNetworkTaskFactoryImpl cloneNetworkTaskFactory = new
CloneNetworkTaskFactoryImpl(cyNetworkManagerServiceRef,cyNetworkViewManagerServiceRef,visualMappingManagerServiceRef,cyNetworkFactoryServiceRef,cyNetworkViewFactoryServiceRef,cyNetworkNamingServiceRef,cyApplicationManagerServiceRef,cyNetworkTableManagerServiceRef,rootNetworkManagerServiceRef,cyGroupManager,cyGroupFactory);
NewNetworkSelectedNodesEdgesTaskFactoryImpl
newNetworkSelectedNodesEdgesTaskFactory = new
NewNetworkSelectedNodesEdgesTaskFactoryImpl(undoSupportServiceRef,cyRootNetworkFactoryServiceRef,cyNetworkViewFactoryServiceRef,cyNetworkManagerServiceRef,cyNetworkViewManagerServiceRef,cyNetworkNamingServiceRef,visualMappingManagerServiceRef,cyApplicationManagerServiceRef,cyEventHelperRef);
NewNetworkSelectedNodesOnlyTaskFactoryImpl
newNetworkSelectedNodesOnlyTaskFactory = new
NewNetworkSelectedNodesOnlyTaskFactoryImpl(undoSupportServiceRef,cyRootNetworkFactoryServiceRef,cyNetworkViewFactoryServiceRef,cyNetworkManagerServiceRef,cyNetworkViewManagerServiceRef,cyNetworkNamingServiceRef,visualMappingManagerServiceRef,cyApplicationManagerServiceRef,cyEventHelperRef);
DestroyNetworkTaskFactoryImpl destroyNetworkTaskFactory = new
DestroyNetworkTaskFactoryImpl(cyNetworkManagerServiceRef);
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTask.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTask.java
2012-09-11 16:58:37 UTC (rev 30343)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTask.java
2012-09-11 21:46:55 UTC (rev 30344)
@@ -35,6 +35,8 @@
import java.util.WeakHashMap;
import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.group.CyGroupFactory;
+import org.cytoscape.group.CyGroupManager;
import org.cytoscape.model.CyColumn;
import org.cytoscape.model.CyEdge;
import org.cytoscape.model.CyIdentifiable;
@@ -71,6 +73,8 @@
private final CyApplicationManager appMgr;
private final CyNetworkTableManager netTableMgr;
private final CyRootNetworkManager rootNetMgr;
+ private final CyGroupManager groupMgr;
+ private final CyGroupFactory groupFactory;
public CloneNetworkTask(final CyNetwork net,
final CyNetworkManager
netmgr,
@@ -81,7 +85,9 @@
final CyNetworkNaming
naming,
final
CyApplicationManager appMgr,
final
CyNetworkTableManager netTableMgr,
- final
CyRootNetworkManager rootNetMgr) {
+ final
CyRootNetworkManager rootNetMgr,
+ final CyGroupManager
groupMgr,
+ final CyGroupFactory
groupFactory) {
super(net, netmgr, networkViewManager);
this.vmm = vmm;
@@ -91,6 +97,8 @@
this.appMgr = appMgr;
this.netTableMgr = netTableMgr;
this.rootNetMgr = rootNetMgr;
+ this.groupMgr = groupMgr;
+ this.groupFactory = groupFactory;
}
public void run(TaskMonitor tm) {
@@ -143,7 +151,9 @@
orig2NewNodeMap.put(origNode, newNode);
new2OrigNodeMap.put(newNode, origNode);
cloneRow(newNet, CyNode.class, origNet.getRow(origNode,
CyNetwork.LOCAL_ATTRS), newNet.getRow(newNode, CyNetwork.LOCAL_ATTRS));
- newNode.setNetworkPointer(origNode.getNetworkPointer());
+
+ if (!groupMgr.isGroup(origNode, origNet))
+ cloneNetworkPointer(origNet, newNet, newNode,
origNode.getNetworkPointer());
}
}
@@ -157,6 +167,18 @@
}
}
+ private void cloneNetworkPointer(final CyNetwork origNet, final
CyNetwork newNet, final CyNode newNode,
+ CyNetwork netPointer) {
+ if (netPointer != null) {
+ // If the referenced network is the original network
itself, do the same with the new network,
+ // rather than pointing to the original one.
+ if (origNet.equals(netPointer))
+ netPointer = newNet;
+
+ newNode.setNetworkPointer(netPointer);
+ }
+ }
+
private void addColumns(final CyNetwork origNet,
final CyNetwork newNet,
final Class<? extends
CyIdentifiable> tableType,
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTaskFactoryImpl.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTaskFactoryImpl.java
2012-09-11 16:58:37 UTC (rev 30343)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTaskFactoryImpl.java
2012-09-11 21:46:55 UTC (rev 30344)
@@ -30,6 +30,8 @@
package org.cytoscape.task.internal.creation;
import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.group.CyGroupFactory;
+import org.cytoscape.group.CyGroupManager;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNetworkFactory;
import org.cytoscape.model.CyNetworkManager;
@@ -53,6 +55,8 @@
private final CyApplicationManager appMgr;
private final CyNetworkTableManager netTableMgr;
private final CyRootNetworkManager rootNetMgr;
+ private final CyGroupManager groupMgr;
+ private final CyGroupFactory groupFactory;
public CloneNetworkTaskFactoryImpl(final CyNetworkManager networkMgr,
final
CyNetworkViewManager networkViewMgr,
@@ -62,7 +66,9 @@
final
CyNetworkNaming naming,
final
CyApplicationManager appMgr,
final
CyNetworkTableManager netTableMgr,
- final
CyRootNetworkManager rootNetMgr) {
+ final
CyRootNetworkManager rootNetMgr,
+ final
CyGroupManager groupMgr,
+ final
CyGroupFactory groupFactory) {
this.networkMgr = networkMgr;
this.networkViewMgr = networkViewMgr;
this.vmm = vmm;
@@ -72,10 +78,12 @@
this.appMgr = appMgr;
this.netTableMgr = netTableMgr;
this.rootNetMgr = rootNetMgr;
+ this.groupMgr = groupMgr;
+ this.groupFactory = groupFactory;
}
public TaskIterator createTaskIterator(CyNetwork network) {
return new TaskIterator(2,new CloneNetworkTask(network, networkMgr,
networkViewMgr, vmm, netFactory,
- netViewFactory, naming, appMgr, netTableMgr,
rootNetMgr));
+ netViewFactory, naming, appMgr, netTableMgr,
rootNetMgr, groupMgr, groupFactory));
}
}
--
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.