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.