Author: pwang
Date: 2012-09-24 14:56:50 -0700 (Mon, 24 Sep 2012)
New Revision: 30470
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/GenericXGMMLReader.java
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleGraph.java
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleNode.java
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/ReadDataManager.java
Log:
Support add new network (in xgmml format) to network collection
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/GenericXGMMLReader.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/GenericXGMMLReader.java
2012-09-24 20:53:05 UTC (rev 30469)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/GenericXGMMLReader.java
2012-09-24 21:56:50 UTC (rev 30470)
@@ -105,6 +105,12 @@
@Override
public void run(TaskMonitor tm) throws Exception {
tm.setProgress(0.0);
+
+ // Now user has the option to import network into different
collection
+
this.initNodeMap(name2RootMap.get(rootNetworkList.getSelectedValue()),
this.targetColumnList.getSelectedValue());
+ this.readDataMgr.setNodeMap(this.nMap);
+
this.readDataMgr.setRootNetwork(name2RootMap.get(rootNetworkList.getSelectedValue()));
+
init(tm);
try {
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleGraph.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleGraph.java
2012-09-24 20:53:05 UTC (rev 30469)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleGraph.java
2012-09-24 21:56:50 UTC (rev 30470)
@@ -77,7 +77,10 @@
if (parent == null) {
// This is a regular top-level network...
final CyRootNetwork rootNet =
manager.createRootNetwork();
- currentNet = rootNet.getBaseNetwork(); // The
root-network is not important here!
+ //currentNet = rootNet.getBaseNetwork(); // The
root-network is not important here!, this is out-dated
+
+ // create a sub network, because we should add
all nodes to subnetwork
+ currentNet = rootNet.addSubNetwork();
} else {
// This is a 2.x "child-network"...
currentNet = parent.addSubNetwork();
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleNode.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleNode.java
2012-09-24 20:53:05 UTC (rev 30469)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleNode.java
2012-09-24 21:56:50 UTC (rev 30470)
@@ -61,8 +61,16 @@
manager.addNode(node, label, (CySubNetwork)
curNet);
if ( label != null && (!manager.isSessionFormat() ||
manager.getDocumentVersion() < 3.0) ) {
- curNet.getRow(node).set(CyNetwork.NAME, label);
+ if (!curNet.containsNode(node) && curNet
instanceof CySubNetwork){
+ // The node should be node in root
network, it does not exist in current subnetwork yet
+ CySubNetwork subnet = (CySubNetwork)
curNet;
+ subnet.addNode(node);
+ node = subnet.getNode(node.getSUID());
+ }
+
+ curNet.getRow(node).set(CyNetwork.NAME, label);
+
if (rootNet != null && curNet != rootNet)
rootNet.getRow(node).set(CyNetwork.NAME, label);
}
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/ReadDataManager.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/ReadDataManager.java
2012-09-24 20:53:05 UTC (rev 30469)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/ReadDataManager.java
2012-09-24 21:56:50 UTC (rev 30470)
@@ -416,6 +416,11 @@
}
protected CyRootNetwork createRootNetwork() {
+
+ if (this.rootNetwork != null){
+ return this.rootNetwork;
+ }
+
final CyNetwork baseNet = networkFactory.createNetwork();
final CyRootNetwork rootNetwork =
rootNetworkManager.getRootNetwork(baseNet);
@@ -440,9 +445,21 @@
((CySubNetwork) net).addNode(node);
}
- if (node == null) // OK, create it
- node = net.addNode();
+ if (node == null)
+ {
+ node = this.nMap.get(label);
+ if ( node == null){
+ // OK, create it
+ node = net.addNode();
+ }
+ }
+ if (net instanceof CySubNetwork && getParentNetwork() != null) {
+ // cache the parent node, not the node from subnetwork
+ CySubNetwork subnet = (CySubNetwork) net;
+ node = subnet.getRootNetwork().getNode(node.getSUID());
+ }
+
// Add to internal cache:
cache.cache(oldId, node);
cache.cacheNodeByName(label, node);
@@ -705,4 +722,18 @@
return b;
}
+
+ // The following is added to support the user option to import network
into different collection
+ private Map<Object, CyNode> nMap;
+ private CyRootNetwork rootNetwork = null;
+
+ public void setNodeMap(Map<Object, CyNode> nMap){
+ this.nMap = nMap;
+ }
+
+ public void setRootNetwork(CyRootNetwork rootNet){
+ this.rootNetwork = rootNet;
+ }
+
+
}
--
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.