Author: kono
Date: 2011-05-02 15:32:19 -0700 (Mon, 02 May 2011)
New Revision: 24892

Modified:
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/AbstractNetworkViewReader.java
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReader.java
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewReader.java
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/XGMMLNetworkViewReader.java
Log:
Consolidated threshold checking in abstract class.

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/AbstractNetworkViewReader.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/AbstractNetworkViewReader.java
     2011-05-02 21:22:33 UTC (rev 24891)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/AbstractNetworkViewReader.java
     2011-05-02 22:32:19 UTC (rev 24892)
@@ -3,14 +3,18 @@
 import java.io.InputStream;
 
 import org.cytoscape.io.read.CyNetworkViewReader;
+import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkFactory;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewFactory;
+import org.cytoscape.view.model.NullCyNetworkView;
 import org.cytoscape.view.vizmap.VisualStyle;
 import org.cytoscape.work.AbstractTask;
 
 public abstract class AbstractNetworkViewReader extends AbstractTask 
implements CyNetworkViewReader {
 
+    protected CyNetwork[] networks;
+
     protected CyNetworkView[] cyNetworkViews;
 
     protected VisualStyle[] visualstyles;
@@ -34,8 +38,8 @@
        this.inputStream = inputStream;
        this.cyNetworkViewFactory = cyNetworkViewFactory;
        this.cyNetworkFactory = cyNetworkFactory;
-       
-       if(viewThreshold != null)
+
+       if (viewThreshold != null)
            this.viewThreshold = viewThreshold;
        else
            this.viewThreshold = DEF_VIEW_THRESHOLD;
@@ -43,6 +47,9 @@
 
     @Override
     public CyNetworkView[] getNetworkViews() {
+       if(cyNetworkViews == null)
+           this.createViews();
+       
        return cyNetworkViews;
     }
 
@@ -50,4 +57,21 @@
     public VisualStyle[] getVisualStyles() {
        return visualstyles;
     }
+
+    protected void createViews() {
+       if (networks == null || networks.length == 0)
+           throw new IllegalStateException("No network model is available.");
+       this.cyNetworkViews = new CyNetworkView[networks.length];
+
+       for (int i = 0; i < networks.length; i++) {
+           final CyNetwork network = networks[i];
+           final int objectCount = network.getEdgeCount() + 
network.getNodeCount();
+           if (this.viewThreshold < objectCount)
+               cyNetworkViews[i] = new NullCyNetworkView(network);
+           else
+               cyNetworkViews[i] = createView(network);
+       }
+    }
+
+    abstract protected CyNetworkView createView(final CyNetwork network);
 }

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReader.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReader.java
      2011-05-02 21:22:33 UTC (rev 24891)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/gml/GMLNetworkViewReader.java
      2011-05-02 22:32:19 UTC (rev 24892)
@@ -178,7 +178,6 @@
 
     private final RenderingEngineManager renderingEngineManager;
 
-    private CyNetwork network;
     private CyNetworkView view;
 
     /**
@@ -215,25 +214,15 @@
 
         readGML(keyVals, taskMonitor); // read the GML file
 
-        network = cyNetworkFactory.getInstance();
-        createGraph(taskMonitor); // create the graph AND new visual style
-        
-        createView();
+        this.networks = new CyNetwork[1];
+        this.networks[0] = cyNetworkFactory.getInstance();
+        createGraph(taskMonitor); // create the graph AND new visual style     
   
     }
-
-    @Override
-    public void cancel() {
-    }
     
-    private void createView() {
-       final int objectCount = network.getNodeCount() + network.getEdgeCount();
-       if(this.viewThreshold < objectCount) {
-           this.cyNetworkViews = new CyNetworkView[] { new 
NullCyNetworkView(network) };
-           return;
-       }
-       
+    @Override
+    protected CyNetworkView createView(CyNetwork network) {
        view = cyNetworkViewFactory.getNetworkView(network);
-       
+              
 
         // New features are called here:
         // 1 Extract (virtually) all attributes from the GML file
@@ -246,10 +235,15 @@
         releaseStructures();
 
         layout(view);
-       this.cyNetworkViews = new CyNetworkView[] { view };
+        
+        return view;
     }
 
     @Override
+    public void cancel() {
+    }
+
+    @Override
     public VisualStyle[] getVisualStyles() {
         return null;
     }
@@ -302,7 +296,7 @@
             String label = node_labels.get(idx);
 
             if (nodeNameSet.add(label)) {
-                CyNode node = network.addNode();
+                CyNode node = networks[0].addNode();
                 
                 //FIXME this fires too many events!!
                 node.getCyRow().set(CyTableEntry.NAME, label);
@@ -343,7 +337,7 @@
 
                 CyNode node_1 = nodeIDMap.get(sourceName);
                 CyNode node_2 = nodeIDMap.get(targetName);
-                CyEdge edge = network.addEdge(node_1, node_2, 
isDirected.booleanValue());
+                CyEdge edge = networks[0].addEdge(node_1, node_2, 
isDirected.booleanValue());
                 edge.getCyRow().set(CyTableEntry.NAME, edgeName);
                 edge.getCyRow().set("interaction", label);
                 edge_names.add(idx, edge);
@@ -512,7 +506,7 @@
      */
     @SuppressWarnings("unchecked")
     public void layout(CyNetworkView view) {
-        if ((view == null) || (network.getNodeCount() == 0)) {
+        if ((view == null) || (networks[0].getNodeCount() == 0)) {
             return;
         }
 
@@ -673,7 +667,7 @@
 
         // System.out.print( "In layout, Root index is: " + root_index );
         // System.out.print( " Checking label: " + label );
-        View<CyNode> view = 
myView.getNodeView(network.getNode(root_index.intValue()));
+        View<CyNode> view = 
myView.getNodeView(networks[0].getNode(root_index.intValue()));
 
         // TODO update for new view
         //             if (label != null) {
@@ -831,7 +825,7 @@
                     return;
                 }
 
-                edgeView = myView.getEdgeView(network.getEdge(((Integer) 
keyVal.value).intValue()));
+                edgeView = myView.getEdgeView(networks[0].getEdge(((Integer) 
keyVal.value).intValue()));
             } else if (keyVal.key.equals(GRAPHICS)) {
                 graphics_list = (List<KeyValue>) keyVal.value;
             }

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewReader.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewReader.java
      2011-05-02 21:22:33 UTC (rev 24891)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkViewReader.java
      2011-05-02 22:32:19 UTC (rev 24892)
@@ -48,7 +48,6 @@
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewFactory;
-import org.cytoscape.view.model.NullCyNetworkView;
 import org.cytoscape.work.TaskMonitor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -68,8 +67,9 @@
     private final CyEventHelper eventHelper;
     private final CyLayoutAlgorithmManager layouts;
 
-    public SIFNetworkViewReader(InputStream is, CyLayoutAlgorithmManager 
layouts, CyNetworkViewFactory cyNetworkViewFactory,
-           CyNetworkFactory cyNetworkFactory, final CyEventHelper eventHelper, 
final int viewThreshold) {
+    public SIFNetworkViewReader(InputStream is, CyLayoutAlgorithmManager 
layouts,
+           CyNetworkViewFactory cyNetworkViewFactory, CyNetworkFactory 
cyNetworkFactory,
+           final CyEventHelper eventHelper, final int viewThreshold) {
        super(is, cyNetworkViewFactory, cyNetworkFactory, viewThreshold);
        this.layouts = layouts;
        this.eventHelper = eventHelper;
@@ -93,7 +93,7 @@
        String line;
        final BufferedReader br = new BufferedReader(new 
InputStreamReader(inputStream));
        Map<String, CyNode> nMap = new HashMap<String, CyNode>();
-       
+
        CyNetwork network = cyNetworkFactory.getInstance();
        final CyTable nodeTable = network.getDefaultNodeTable();
        final CyTable edgeTable = network.getDefaultEdgeTable();
@@ -109,17 +109,17 @@
 
            while ((line = br.readLine()) != null) {
                if (cancelled) {
-                   // Cancel called.  Clean up the garbage.
+                   // Cancel called. Clean up the garbage.
                    nMap.clear();
                    nMap = null;
                    network = null;
                    br.close();
                    return;
                }
-               
+
                if (line.trim().length() <= 0)
                    continue;
-               
+
                try {
                    final Interaction itr = new Interaction(line, delimiter);
                    createEdge(itr, network, nMap);
@@ -139,7 +139,9 @@
        nMap.clear();
        nMap = null;
 
-       createView(network);
+       this.networks = new CyNetwork[]{network};
+       createViews();
+       
        tm.setProgress(1.0);
     }
 
@@ -164,23 +166,14 @@
        }
     }
 
-    
-    private void createView(final CyNetwork network) {
+    @Override
+    protected CyNetworkView createView(final CyNetwork network) {
 
-       final int objectCount = network.getEdgeCount() + network.getNodeCount();
-       if (this.viewThreshold < objectCount) {
-           this.cyNetworkViews = new CyNetworkView[] { new 
NullCyNetworkView(network) };
-           logger.info("Number of object in this network is above threshold.  
View model was not created.");
-           return;
-       }
-
-       // Assume sif contains only one network.
        final CyNetworkView view = cyNetworkViewFactory.getNetworkView(network);
-
        final CyLayoutAlgorithm layout = layouts.getDefaultLayout();
        layout.setNetworkView(view);
        insertTasksAfterCurrentTask(layout.getTaskIterator());
-       // SIF always creates only one network.
-       this.cyNetworkViews = new CyNetworkView[] { view };
+
+       return view;
     }
 }

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/XGMMLNetworkViewReader.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/XGMMLNetworkViewReader.java
  2011-05-02 21:22:33 UTC (rev 24891)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/xgmml/XGMMLNetworkViewReader.java
  2011-05-02 22:32:19 UTC (rev 24892)
@@ -44,8 +44,8 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.Properties;
 import java.util.Map.Entry;
+import java.util.Properties;
 
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParser;
@@ -63,7 +63,6 @@
 import org.cytoscape.property.CyProperty;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewFactory;
-import org.cytoscape.view.model.NullCyNetworkView;
 import org.cytoscape.view.model.View;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.model.VisualProperty;
@@ -108,8 +107,6 @@
     private List<GraphicsConverter<?>> nodeConverters;
     private List<GraphicsConverter<?>> edgeConverters;
 
-    private CyNetwork network;
-
     private static final Logger logger = 
LoggerFactory.getLogger(XGMMLNetworkViewReader.class);
 
     /**
@@ -142,8 +139,7 @@
 
        try {
            readXGMML();
-           network = readDataManager.getNetwork();
-           createView();
+           networks = new CyNetwork[]{readDataManager.getNetwork()};
        } catch (SAXException e) {
            throw new IOException("Could not parse XGMML file: ");
        }
@@ -155,6 +151,16 @@
     public void cancel() {
     }
 
+    @Override
+    protected CyNetworkView createView(CyNetwork network) {
+
+       view = cyNetworkViewFactory.getNetworkView(network);
+       layout();
+
+       return view;
+
+    }
+
     /**
      * Actual method to read XGMML documents.
      * 
@@ -373,24 +379,6 @@
        }
     }
 
-    /**
-     * Create and layout the view.
-     * 
-     * @param network
-     *            The network we just parsed.
-     */
-    private void createView() {
-       final int objectCount = network.getNodeCount() + network.getEdgeCount();
-       if (this.viewThreshold < objectCount)
-           view = new NullCyNetworkView(network);
-       else {
-           view = cyNetworkViewFactory.getNetworkView(network);
-           layout();
-       }
-       
-       cyNetworkViews = new CyNetworkView[] { view };
-    }
-
     private void createConverters() {
        nodeConverters = new ArrayList<GraphicsConverter<?>>();
        edgeConverters = new ArrayList<GraphicsConverter<?>>();

-- 
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