Author: pwang
Date: 2012-09-26 12:08:56 -0700 (Wed, 26 Sep 2012)
New Revision: 30493
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/nnf/NNFNetworkReader.java
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/nnf/NNFParser.java
Log:
Support add new network to network collection
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/nnf/NNFNetworkReader.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/nnf/NNFNetworkReader.java
2012-09-26 19:05:39 UTC (rev 30492)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/nnf/NNFNetworkReader.java
2012-09-26 19:08:56 UTC (rev 30493)
@@ -49,6 +49,7 @@
import org.cytoscape.work.TaskMonitor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.cytoscape.model.subnetwork.CyRootNetwork;
/**
* Reader for graphs in the interactions file format. Given the filename,
@@ -60,7 +61,7 @@
private final CyLayoutAlgorithmManager layouts;
// Optional comments start with this character and extend to the end of
line.
private static final char COMMENT_CHAR = '#';
- private final NNFParser parser;
+ private NNFParser parser;
private TaskMonitor parentTaskMonitor;
public NNFNetworkReader(InputStream is, CyLayoutAlgorithmManager
layouts,
@@ -68,12 +69,16 @@
CyNetworkManager cyNetworkManagerServiceRef,
CyRootNetworkManager cyRootNetworkFactory) {
super(is, cyNetworkViewFactory, cyNetworkFactory,
cyNetworkManagerServiceRef, cyRootNetworkFactory);
this.layouts = layouts;
-
- this.parser = new NNFParser(cyNetworkManagerServiceRef,
cyNetworkFactory,cyRootNetworkFactory);
}
@Override
public void run(TaskMonitor tm) throws IOException {
+
+ this.initNodeMap();
+ CyRootNetwork rootNetwork = this.getRootNetwork();
+
+ this.parser = new NNFParser(rootNetwork, this.nMap);
+
try {
readInput(tm);
} finally {
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/nnf/NNFParser.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/nnf/NNFParser.java
2012-09-26 19:05:39 UTC (rev 30492)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/nnf/NNFParser.java
2012-09-26 19:08:56 UTC (rev 30493)
@@ -13,8 +13,9 @@
import org.cytoscape.model.CyNode;
import java.util.Collection;
import org.cytoscape.model.CyRow;
+import org.cytoscape.model.subnetwork.CyRootNetwork;
import org.cytoscape.model.subnetwork.CyRootNetworkManager;
-
+import org.cytoscape.model.subnetwork.CySubNetwork;
import java.util.Iterator;
/**
@@ -32,33 +33,31 @@
private CyNetwork overviewwork;
// Hash map from title to actual network
private Map<String, CyNetwork> networkMap;
-
- private final CyNetworkFactory cyNetworkFactory;
-
- private final CyNetworkManager cyNetworkManagerServiceRef;
- private final CyRootNetworkManager cyRootNetworkFactory;
-
- public NNFParser(CyNetworkManager cyNetworkManagerServiceRef,
CyNetworkFactory cyNetworkFactory, CyRootNetworkManager cyRootNetworkFactory) {
- this.cyNetworkManagerServiceRef = cyNetworkManagerServiceRef;
- this.cyNetworkFactory = cyNetworkFactory;
- this.cyRootNetworkFactory = cyRootNetworkFactory;
+ private final CyRootNetwork rootNetwork;
+ private final Map<Object, CyNode> nMap;
+
+ public NNFParser(CyRootNetwork rootNetwork, Map<Object, CyNode> nMap) {
+ this.rootNetwork = rootNetwork;
+ this.nMap = nMap;
networkMap = new HashMap<String, CyNetwork>();
networks = new ArrayList<CyNetwork>();
- this.overviewwork = this.cyNetworkFactory.createNetwork();
+ this.overviewwork = this.rootNetwork.addSubNetwork();
//this.cyNetworkFactory.createNetwork();
}
/** Returns the first network with title "networkTitle" or null, if
there is no network w/ this title.
*/
private CyNetwork getNetworkByTitle(final String networkTitle) {
- Set<CyNetwork> networks =
this.cyNetworkManagerServiceRef.getNetworkSet();
- for (final CyNetwork network : networks) {
- String title =
network.getRow(network).get(CyNetwork.NAME, String.class);
- if (title.equals(networkTitle))
- return network;
+ Iterator<CySubNetwork> it =
this.rootNetwork.getSubNetworkList().iterator();
+
+ while (it.hasNext()){
+ CySubNetwork subnet = it.next();
+ String title =
subnet.getRow(subnet).get(CyNetwork.NAME, String.class);
+ if (title != null && title.equals(networkTitle))
+ return subnet;
}
- return null;
+ return null;
}
@@ -83,7 +82,7 @@
network = getNetworkByTitle(parts[0]);
if (network == null) {
// Create network without view. View will be
created later.
- network =
this.cyRootNetworkFactory.getRootNetwork(this.overviewwork).addSubNetwork();
+ network = this.rootNetwork.addSubNetwork();
network.getRow(network).set(CyNetwork.NAME,
parts[0]);
}
@@ -104,7 +103,18 @@
}
if (length == 2) {
- final CyNode node = network.addNode();
+
+ CyNode node;
+ if (this.nMap.get(parts[1]) == null){
+ node = network.addNode();
+ this.nMap.put(parts[1],
this.rootNetwork.getNode(node.getSUID()));
+ }
+ else {
+ node = this.nMap.get(parts[1]);
+ CySubNetwork subnet = (CySubNetwork) network;
+ subnet.addNode(node);
+ }
+
network.getRow(node).set(CyNetwork.NAME, parts[1]);
final CyNetwork nestedNetwork =
networkMap.get(parts[1]);
@@ -125,7 +135,18 @@
}
else {
// source node does not existed yet, create one
- source = network.addNode();
//Cytoscape.getCyNode(parts[1], true);
+ if (this.nMap.get(parts[1]) == null){
+ source = network.addNode();
//Cytoscape.getCyNode(parts[1], true);
+ CyNode newNode =
this.rootNetwork.getNode(source.getSUID());
+ this.nMap.put(parts[1], newNode);
+ }
+ else {
+ CyNode newNode =
this.nMap.get(parts[1]);
+ CySubNetwork subNet = (CySubNetwork)
network;
+ subNet.addNode(newNode);
+ source =
network.getNode(newNode.getSUID());
+ }
+
network.getRow(source).set(CyNetwork.NAME,
parts[1]);
}
@@ -149,7 +170,20 @@
}
else {
// source node does not existed yet, create one
- target = network.addNode();
+
+ if (this.nMap.get(parts[3]) == null){
+ target = network.addNode();
+ CyNode newNode =
this.rootNetwork.getNode(target.getSUID());
+ this.nMap.put(parts[3], newNode);
+ }
+ else {
+ CyNode newNode =
this.nMap.get(parts[3]);
+ CySubNetwork subNet = (CySubNetwork)
network;
+ subNet.addNode(newNode);
+ target =
network.getNode(newNode.getSUID());
+ }
+ //target = network.addNode();
+
network.getRow(target).set(CyNetwork.NAME,
parts[3]);
}
@@ -211,7 +245,6 @@
public void setOverViewnetworkName(String overviewNetworkName){
-
this.overviewwork.getRow(this.overviewwork).set(CyNetwork.NAME,
overviewNetworkName);
this.networks.add(this.overviewwork);
}
--
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.