Author: clopes
Date: 2012-09-26 09:08:06 -0700 (Wed, 26 Sep 2012)
New Revision: 30488

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/ReadDataManager.java
Log:
Fixes #1480 (Network collection name should not be blank).
Refs #1428 : New subnetworks from imported XGMML can be added to another 
(pre-existing) CyRootNetwork.

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-26 16:01:18 UTC (rev 30487)
+++ 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/GenericXGMMLReader.java
    2012-09-26 16:08:06 UTC (rev 30488)
@@ -105,12 +105,6 @@
        @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 {
@@ -151,6 +145,11 @@
        protected void init(TaskMonitor tm) {
                readDataMgr.init();
                readDataMgr.setViewFormat(false); // TODO: refactor readDataMgr 
and delete this line
+               
+               // 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.setParentNetwork(name2RootMap.get(rootNetworkList.getSelectedValue()));
        }
        
        protected void complete(TaskMonitor tm) {

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-26 16:01:18 UTC (rev 30487)
+++ 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/HandleGraph.java
   2012-09-26 16:08:06 UTC (rev 30488)
@@ -68,6 +68,14 @@
                return s == null || ObjectTypeMap.fromXGMMLBoolean(s);
        }
        
+       /**
+        * Handles XGMML from Cytoscape 2.x session files only.
+        * @param tag
+        * @param atts
+        * @param current
+        * @return
+        * @throws SAXException
+        */
        private ParseState handleCy2ModelAndView(String tag, Attributes atts, 
ParseState current) throws SAXException {
                final CyRootNetwork parent = manager.getParentNetwork();
                final CyNetwork currentNet;
@@ -77,10 +85,7 @@
                        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!, this is out-dated
-                               
-                               // create a sub network, because we should add 
all nodes to subnetwork
-                               currentNet = rootNet.addSubNetwork();
+                               currentNet = rootNet.getBaseNetwork();
                        } else {
                                // This is a 2.x "child-network"...
                                currentNet = parent.addSubNetwork();
@@ -97,6 +102,14 @@
                return current;
        }
        
+       /**
+        * Handles "CyNetwork-type" XGMML from Cytoscape 3 session files only.
+        * @param tag
+        * @param atts
+        * @param current
+        * @return
+        * @throws SAXException
+        */
        private ParseState handleCy3Model(String tag, Attributes atts, 
ParseState current) throws SAXException {
                final CyNetwork currentNet;
                boolean register = isRegistered(atts);
@@ -121,13 +134,27 @@
                return current;
        }
        
+       /**
+        * Handles standalone XGMML graphs, not associated with a session file.
+        * @param tag
+        * @param atts
+        * @param current
+        * @return
+        * @throws SAXException
+        */
        private ParseState handleGenericXGMMLGraph(String tag, Attributes atts, 
ParseState current) throws SAXException {
                final CyNetwork currentNet;
 
                if (manager.graphCount == 1) {
                        // Root (graph) element...
-                       final CyRootNetwork rootNet = 
manager.createRootNetwork();
-                       currentNet = rootNet.getBaseNetwork();
+                       final CyRootNetwork parentNet = 
manager.getParentNetwork();
+                       
+                       if (parentNet == null) {
+                               final CyRootNetwork rootNet = 
manager.createRootNetwork();
+                               currentNet = rootNet.getBaseNetwork();
+                       } else {
+                               currentNet = parentNet.addSubNetwork();
+                       }
                } else {
                        // Nested graph tag...
                        final CyRootNetwork rootNet = manager.getRootNetwork();

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-26 16:01:18 UTC (rev 30487)
+++ 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/xgmml/handler/ReadDataManager.java
       2012-09-26 16:08:06 UTC (rev 30488)
@@ -416,10 +416,8 @@
        }
 
        protected CyRootNetwork createRootNetwork() {
-               
-               if (this.rootNetwork != null){
+               if (this.rootNetwork != null)
                        return this.rootNetwork;
-               }
                
                final CyNetwork baseNet = networkFactory.createNetwork();
                final CyRootNetwork rootNetwork = 
rootNetworkManager.getRootNetwork(baseNet);
@@ -730,10 +728,4 @@
        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.

Reply via email to