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.

Reply via email to