Author: pwang
Date: 2011-01-18 16:12:14 -0800 (Tue, 18 Jan 2011)
New Revision: 23506
Modified:
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/AbstractGraphReader.java
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/GraphReader.java
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/NetworkLineParser.java
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/NetworkTableReader.java
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/ui/ImportNetworkTask.java
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/ui/ImportTextTableDialog.java
Log:
Updated
Modified:
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/AbstractGraphReader.java
===================================================================
---
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/AbstractGraphReader.java
2011-01-19 00:11:37 UTC (rev 23505)
+++
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/AbstractGraphReader.java
2011-01-19 00:12:14 UTC (rev 23506)
@@ -38,7 +38,7 @@
*
* @return DOCUMENT ME!
*/
- public int[] getNodeIndicesArray() {
+ public Long[] getNodeIndicesArray() {
return null;
}
@@ -47,7 +47,7 @@
*
* @return DOCUMENT ME!
*/
- public int[] getEdgeIndicesArray() {
+ public Long[] getEdgeIndicesArray() {
return null;
}
Modified:
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/GraphReader.java
===================================================================
---
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/GraphReader.java
2011-01-19 00:11:37 UTC (rev 23505)
+++
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/GraphReader.java
2011-01-19 00:12:14 UTC (rev 23506)
@@ -67,14 +67,14 @@
*
* @return array of node indices from the root graph.
*/
- public int[] getNodeIndicesArray();
+ public Long[] getNodeIndicesArray();
/**
* Gets an array of edges indices that participate in the newly created
graph.
*
* @return array of edges indices from the root graph.
*/
- public int[] getEdgeIndicesArray();
+ public Long[] getEdgeIndicesArray();
/**
* Execute whatever post-processing is required.
@@ -86,4 +86,7 @@
* @return network name.
*/
public String getNetworkName();
+
+
+ public void setNetwork(CyNetwork network);
}
Modified:
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/NetworkLineParser.java
===================================================================
---
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/NetworkLineParser.java
2011-01-19 00:11:37 UTC (rev 23505)
+++
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/NetworkLineParser.java
2011-01-19 00:12:14 UTC (rev 23506)
@@ -41,6 +41,7 @@
//import cytoscape.data.Semantics;
import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNode;
import java.util.ArrayList;
@@ -55,9 +56,9 @@
*/
public class NetworkLineParser {
private final NetworkTableMappingParameters nmp;
- private final List<Integer> nodeList;
- private final List<Integer> edgeList;
-
+ private final List<Long> nodeList;
+ private final List<Long> edgeList;
+ private CyNetwork network;
/**
* Creates a new NetworkLineParser object.
*
@@ -65,11 +66,12 @@
* @param edgeList DOCUMENT ME!
* @param nmp DOCUMENT ME!
*/
- public NetworkLineParser(List<Integer> nodeList, List<Integer> edgeList,
+ public NetworkLineParser(CyNetwork network, List<Long> nodeList,
List<Long> edgeList,
final NetworkTableMappingParameters nmp) {
this.nmp = nmp;
this.nodeList = nodeList;
this.edgeList = edgeList;
+ this.network = network;
}
/**
@@ -88,7 +90,7 @@
private CyEdge addNodeAndEdge(final String[] parts) {
final CyNode source = createNode(parts, nmp.getSourceIndex());
- final CyNode target = createNode(parts, nmp.getTargetIndex());
+ final CyNode target = createNode(parts, nmp.getTargetIndex());
// Single column nodes list. Just add nodes.
if(source == null || target == null)
@@ -102,21 +104,26 @@
} else
interaction = parts[nmp.getInteractionIndex()];
- final CyEdge edge = null;
//edge = Cytoscape.getCyEdge(source, target,
Semantics.INTERACTION, interaction, true, true);
- //edgeList.add(edge.getRootGraphIndex());
+ CyEdge edge = network.addEdge(source, target, true);
+ edgeList.add(edge.getSUID());
+
return edge;
}
private CyNode createNode(final String[] parts, final Integer
nodeIndex) {
- final CyNode node = null;
+
+ CyNode node = null;
+
if (nodeIndex.equals(-1) == false && (nodeIndex <=
(parts.length - 1)) && (parts[nodeIndex] != null)) {
//node = Cytoscape.getCyNode(parts[nodeIndex], true);
- //nodeList.add(node.getRootGraphIndex());
- }// else
- // node = null;
+ node = network.addNode();
+ node.getCyRow().set("name", parts[nodeIndex]);
+
+ nodeList.add(node.getSUID());
+ }
return node;
}
Modified:
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/NetworkTableReader.java
===================================================================
---
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/NetworkTableReader.java
2011-01-19 00:11:37 UTC (rev 23505)
+++
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/reader/NetworkTableReader.java
2011-01-19 00:12:14 UTC (rev 23506)
@@ -37,9 +37,9 @@
package org.cytoscape.tableimport.internal.reader;
//import cytoscape.data.readers.AbstractGraphReader;
-//import cytoscape.logger.CyLogger;
import org.cytoscape.tableimport.internal.util.URLUtil;
+import org.cytoscape.work.TaskMonitor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -54,6 +54,7 @@
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
+import org.cytoscape.model.CyNetwork;
/**
@@ -70,10 +71,11 @@
protected final NetworkTableMappingParameters nmp;
protected final URL sourceURL;
protected final NetworkLineParser parser;
- protected final List<Integer> nodeList;
- protected final List<Integer> edgeList;
+ protected final List<Long> nodeList;
+ protected final List<Long> edgeList;
protected final int startLineNumber;
protected final String commentChar;
+ private CyNetwork network;
private static final Logger logger =
LoggerFactory.getLogger(NetworkTableReader.class);
@@ -93,11 +95,11 @@
this.sourceURL = sourceURL;
this.nmp = nmp;
this.startLineNumber = startLineNumber;
- this.nodeList = new ArrayList<Integer>();
- this.edgeList = new ArrayList<Integer>();
+ this.nodeList = new ArrayList<Long>();
+ this.edgeList = new ArrayList<Long>();
this.commentChar = commentChar;
- parser = new NetworkLineParser(nodeList, edgeList, nmp);
+ parser = new NetworkLineParser(network, nodeList, edgeList,
nmp);
}
/**
@@ -174,8 +176,8 @@
* @return DOCUMENT ME!
*/
//@Override
- public int[] getNodeIndicesArray() {
- final int[] nodeArray = new int[nodeList.size()];
+ public Long[] getNodeIndicesArray() {
+ final Long[] nodeArray = new Long[nodeList.size()];
for (int i = 0; i < nodeArray.length; i++) {
nodeArray[i] = nodeList.get(i);
@@ -190,8 +192,8 @@
* @return DOCUMENT ME!
*/
//@Override
- public int[] getEdgeIndicesArray() {
- final int[] edgeArray = new int[edgeList.size()];
+ public Long[] getEdgeIndicesArray() {
+ final Long[] edgeArray = new Long[edgeList.size()];
for (int i = 0; i < edgeArray.length; i++) {
edgeArray[i] = edgeList.get(i);
@@ -210,12 +212,16 @@
readTable();
}
+
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public String getReport() {
+
+ return null;
+ /*
final StringBuffer sb = new StringBuffer();
final Set<Integer> uniqueNodes = new TreeSet<Integer>(nodeList);
final Set<Integer> uniqueEdges = new TreeSet<Integer>(edgeList);
@@ -224,5 +230,10 @@
//sb.append("New network name is " + super.getNetworkName() +
"\n\n");
return sb.toString();
+ */
}
+
+ public void setNetwork(CyNetwork network){
+ this.network = network;
+ }
}
Modified:
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/ui/ImportNetworkTask.java
===================================================================
---
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/ui/ImportNetworkTask.java
2011-01-19 00:11:37 UTC (rev 23505)
+++
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/ui/ImportNetworkTask.java
2011-01-19 00:12:14 UTC (rev 23506)
@@ -36,82 +36,177 @@
package org.cytoscape.tableimport.internal.ui;
-//import cytoscape.CyNetwork;
-
+import org.cytoscape.io.read.CyNetworkViewReader;
+import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNetworkFactory;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.tableimport.internal.reader.GraphReader;
+import org.cytoscape.tableimport.internal.util.CytoscapeServices;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.CyNetworkViewFactory;
+import org.cytoscape.view.vizmap.VisualStyle;
+import org.cytoscape.work.AbstractTask;
import org.cytoscape.work.Task;
+import org.cytoscape.work.TaskFactory;
+import org.cytoscape.work.TaskIterator;
import org.cytoscape.work.TaskMonitor;
-//import cytoscape.task.TaskMonitor;
-
-//import edu.ucsd.bioeng.coreplugin.tableImport.reader.TextTableReader;
-
import java.io.IOException;
-
import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
-
/**
*
*/
-public class ImportNetworkTask implements Task {
- //private final GraphReader reader;
- //private final URL source;
- //private TaskMonitor taskMonitor;
+public class ImportNetworkTask extends AbstractTask implements
CyNetworkViewReader {
+ protected CyNetworkView[] cyNetworkViews;
+ protected VisualStyle[] visualstyles;
+
+ private final GraphReader reader;
+ private final URL source;
+
+ final CyNetwork network =
CytoscapeServices.cyNetworkFactoryServiceRef.getInstance();
+
/**
* Creates a new ImportNetworkTask object.
*
* @param reader DOCUMENT ME!
* @param source DOCUMENT ME!
*/
-// public ImportNetworkTask(final GraphReader reader, final URL source) {
- public ImportNetworkTask() {
- //this.reader = reader;
- //this.source = source;
+ public ImportNetworkTask(String networkName, final GraphReader reader,
final URL source) {
+
+ this.reader = reader;
+ this.source = source;
+
}
- @Override
- public void run(final TaskMonitor taskMonitor) {
-
- // Give the task a title.
- taskMonitor.setTitle("Loading network and edge attributes...");
+ @Override
+ public void run(TaskMonitor tm) throws IOException {
+ try {
+ tm.setProgress(0.10);
+ this.reader.setNetwork(network);
+ this.reader.read();
+ tm.setProgress(0.80);
+
+ //readInput(tm);
+ //createNetwork(tm);
+ } finally {
+ //if (inputStream != null) {
+ // inputStream.close();
+ // inputStream = null;
+ //}
+ }
+ }
+
+ private void readInput(TaskMonitor tm) throws IOException {
+ //tm.setProgress(0.00);
/*
- taskMonitor.setStatus();
- taskMonitor.setPercentCompleted(-1);
+ String delimiter = DEF_DELIMITER;
- CyNetwork network = Cytoscape.createNetwork(reader, true, null);
- Object[] ret_val = new Object[2];
- ret_val[0] = network;
- ret_val[1] = source.toString();
- Cytoscape.firePropertyChange(Cytoscape.NETWORK_LOADED, null,
ret_val);
+ final String rawText = readUtil.getInputString(inputStream);
- taskMonitor.setPercentCompleted(100);
+ tm.setProgress(0.10);
+ if (rawText.indexOf("\t") >= 0)
+ delimiter = "\t";
- informUserOfAnnotationStats();
+ final String[] lines = rawText.split(LINE_SEP);
+
+ tm.setProgress(0.15);
+ final int size = lines.length;
+ for (int i = 0; i < size; i++) {
+ if (lines[i].length() <= 0)
+ continue;
+ interactions.add(new Interaction(lines[i], delimiter));
+ }
*/
+ //tm.setProgress(0.20);
+ }
+
+
+ private void createNetwork(TaskMonitor tm) {
- }
+ // Create network model. At this point, there are no
nodes/edges.
+ final CyNetwork network =
CytoscapeServices.cyNetworkFactoryServiceRef.getInstance();
+
+ Map<String, CyNode> nodeMap = new HashMap<String, CyNode>();
+
+ // put all node names in the Set
+ //for (Interaction interaction : interactions) {
+ // nodeMap.put(interaction.getSource(), null);
+ // for (String target : interaction.getTargets())
+ // nodeMap.put(target, null);
+ //}
+
+ tm.setProgress(0.25);
+
+ for (String nodeName : nodeMap.keySet()) {
+ if (cancelled)
+ return;
+
+ //tm.setProgress(progress);
+
+ final CyNode node = network.addNode();
+ //node.getCyRow().set(NODE_NAME_ATTR_LABEL, nodeName);
+ nodeMap.put(nodeName, node);
+ }
+
+ tm.setProgress(0.65);
+
+ // Now loop over the interactions again, this time creating
edges
+ // between
+ // all sources and each of their respective targets.
+ String srcName;
+ String interactionType;
+ CyEdge edge;
+
+ /*
+ for (Interaction interaction : interactions) {
+ if (cancelled)
+ return;
+
+ srcName = interaction.getSource();
+ interactionType = interaction.getType();
+
+ for (String tgtName : interaction.getTargets()) {
+ edge = network.addEdge(nodeMap.get(srcName),
nodeMap
+ .get(tgtName), true);
+ edge.getCyRow().set(NODE_NAME_ATTR_LABEL,
+ srcName + " (" +
interactionType + ") " + tgtName);
+ edge.getCyRow().set(INTERACTION,
interactionType);
+ }
+ }
+ */
+
+ tm.setProgress(0.90);
+
+ final CyNetworkView view =
CytoscapeServices.cyNetworkViewFactoryServiceRef.getNetworkView(network);
+
+
+ TaskFactory tf =
CytoscapeServices.cyLayoutsServiceRef.getDefaultLayout(view);
+ TaskIterator ti = tf.getTaskIterator();
+ Task task = ti.next();
+ insertTasksAfterCurrentTask(task);
+
+ // SIF always creates only one network.
+ this.cyNetworkViews = new CyNetworkView[] { view };
+
+ nodeMap.clear();
+ nodeMap = null;
+
+ tm.setProgress(1.0);
+ }
+
@Override
public void cancel(){
}
- /**
- * Inform User of Network Stats.
- */
- private void informUserOfAnnotationStats() {
- StringBuffer sb = new StringBuffer();
- // Give the user some confirmation
- //sb.append("Succesfully loaded network and edge attributes
from:\n");
- //sb.append(source.toString() + "\n");
- //sb.append(((TextTableReader) reader).getReport());
- //taskMonitor.setStatus(sb.toString());
- }
-
-
/**
* Gets the Task Title.
*
@@ -120,4 +215,12 @@
public String getTitle() {
return new String("Loading Network and Edge Attributes");
}
+
+ public CyNetworkView[] getNetworkViews() {
+ return cyNetworkViews;
+ }
+
+ public VisualStyle[] getVisualStyles() {
+ return visualstyles;
+ }
}
Modified:
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/ui/ImportTextTableDialog.java
===================================================================
---
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/ui/ImportTextTableDialog.java
2011-01-19 00:11:37 UTC (rev 23505)
+++
core3/table-import-impl/trunk/src/main/java/org/cytoscape/tableimport/internal/ui/ImportTextTableDialog.java
2011-01-19 00:12:14 UTC (rev 23506)
@@ -2048,6 +2048,9 @@
final String[] parts =
sources[i].toString().split("/");
networkName =
parts[parts.length - 1];
+
+
+
reader = new
NetworkTableReader(networkName, sources[i], nmp,
startLineNumber, commentChar);
}
@@ -3139,7 +3142,7 @@
System.out.println("\n\nEntering
ImportTextTablereader.loadNetwork()...\n\n");
// Create LoadNetwork Task
- ImportNetworkTask task = new ImportNetworkTask();
+ ImportNetworkTask task = new ImportNetworkTask(networkName,
reader, source);
ImportNetworkTaskFactory taskFactory = new
ImportNetworkTaskFactory(task);
CytoscapeServices.guiTaskManagerServiceRef.execute(taskFactory);
--
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.