Author: mkirby
Date: 2012-07-20 16:18:11 -0700 (Fri, 20 Jul 2012)
New Revision: 29951

Added:
   
csplugins/trunk/soc/mkirby/CytoBridge/src/main/java/org/cytoscape/cytobridge/json/
   
csplugins/trunk/soc/mkirby/CytoBridge/src/main/java/org/cytoscape/cytobridge/json/Helper.java
   
csplugins/trunk/soc/mkirby/CytoBridge/src/main/java/org/cytoscape/cytobridge/json/MyJSON.java
   csplugins/trunk/soc/mkirby/CytoBridge/src/main/resources/images/bridge2.png
Modified:
   
csplugins/trunk/soc/mkirby/CytoBridge/src/main/java/org/cytoscape/cytobridge/CytoBridgeAction.java
Log:
mkirby: JSON + Socket communication network sending.

Modified: 
csplugins/trunk/soc/mkirby/CytoBridge/src/main/java/org/cytoscape/cytobridge/CytoBridgeAction.java
===================================================================
--- 
csplugins/trunk/soc/mkirby/CytoBridge/src/main/java/org/cytoscape/cytobridge/CytoBridgeAction.java
  2012-07-20 22:43:52 UTC (rev 29950)
+++ 
csplugins/trunk/soc/mkirby/CytoBridge/src/main/java/org/cytoscape/cytobridge/CytoBridgeAction.java
  2012-07-20 23:18:11 UTC (rev 29951)
@@ -8,6 +8,7 @@
 import org.apache.xmlrpc.XmlRpcException;
 import org.cytoscape.application.swing.AbstractCyAction;
 import org.cytoscape.application.swing.CySwingApplication;
+import org.cytoscape.cytobridge.json.MyJSON;
 import org.cytoscape.cytobridge.rpc.CytoscapeRPCServer;
 
 public class CytoBridgeAction extends AbstractCyAction {
@@ -15,8 +16,12 @@
        CytoscapeRPCServer xmlrpcServer = null;
        private CySwingApplication desktopApp;
        
+       private boolean started = false;
+       
        private NetworkManager myManager;
        
+       private Thread serverThread;
+       
        public CytoBridgeAction(CySwingApplication desktopApp, NetworkManager 
myManager){
                // Add a menu item -- Plugins->sample03
                super("CytoBridge");
@@ -24,7 +29,7 @@
 
                ImageIcon icon = new 
ImageIcon(getClass().getResource("/images/bridge.png"));
                ImageIcon smallIcon = new 
ImageIcon(getClass().getResource("/images/bridge_small.png"));
-
+               
                // Add image icons on tool-bar and menu item
                putValue(LARGE_ICON_KEY, icon);
                putValue(SMALL_ICON, smallIcon);
@@ -40,12 +45,30 @@
         */
        public void actionPerformed(ActionEvent e) {
 
-               System.out.println("Loading CytoscapeRPCPlugin");
+               if (!started) {
+                       ImageIcon icon = new 
ImageIcon(getClass().getResource("/images/bridge2.png"));
+       
+                       // Add image icons on tool-bar and menu item
+                       putValue(LARGE_ICON_KEY, icon);
+                       
+                       /*System.out.println("Loading CytoscapeRPCPlugin");
+       
+               startXmlRpcService(9000, true);
+               System.out.println("Started CytoscapeRPC "
+                       + "XML-RPC service on port " + 9000 + '.');
+                       */
+                       if (serverThread == null) {
+                               startJSONService();
+                       }
+                       started = true;
+               } else {
+                       ImageIcon icon = new 
ImageIcon(getClass().getResource("/images/bridge.png"));
+                       
+                       // Add image icons on tool-bar and menu item
+                       putValue(LARGE_ICON_KEY, icon);
+                       started = false;
+               }
 
-        startXmlRpcService(9000, true);
-        System.out.println("Started CytoscapeRPC "
-                + "XML-RPC service on port " + 9000 + '.');
-
        }
        
        
@@ -87,4 +110,14 @@
             e.printStackTrace();
         }
     }
+    
+    public final void startJSONService() {
+        MyJSON jsonServer = new MyJSON(myManager);
+        serverThread = new Thread(jsonServer);
+        serverThread.start();
+    }
+    
+    public final void stopJSONService() {
+       serverThread.stop();
+    }
 }

Added: 
csplugins/trunk/soc/mkirby/CytoBridge/src/main/java/org/cytoscape/cytobridge/json/Helper.java
===================================================================
--- 
csplugins/trunk/soc/mkirby/CytoBridge/src/main/java/org/cytoscape/cytobridge/json/Helper.java
                               (rev 0)
+++ 
csplugins/trunk/soc/mkirby/CytoBridge/src/main/java/org/cytoscape/cytobridge/json/Helper.java
       2012-07-20 23:18:11 UTC (rev 29951)
@@ -0,0 +1,13 @@
+package org.cytoscape.cytobridge.json;
+import java.util.Vector;
+
+
+public class Helper {
+       
+       public String network_name;
+       public Vector<Integer> node_cytobridge_ids;
+       public Vector<Integer> edge_cytobridge_ids;
+       public Vector<Integer> edge_source_cytobridge_ids;
+       public Vector<Integer> edge_target_cytobridge_ids;
+
+}

Added: 
csplugins/trunk/soc/mkirby/CytoBridge/src/main/java/org/cytoscape/cytobridge/json/MyJSON.java
===================================================================
--- 
csplugins/trunk/soc/mkirby/CytoBridge/src/main/java/org/cytoscape/cytobridge/json/MyJSON.java
                               (rev 0)
+++ 
csplugins/trunk/soc/mkirby/CytoBridge/src/main/java/org/cytoscape/cytobridge/json/MyJSON.java
       2012-07-20 23:18:11 UTC (rev 29951)
@@ -0,0 +1,74 @@
+package org.cytoscape.cytobridge.json;
+import java.net.*;
+import java.util.StringTokenizer;
+import java.util.Vector;
+import java.io.*;
+
+import org.cytoscape.cytobridge.NetworkManager;
+
+import com.google.gson.Gson;
+       
+public class MyJSON implements Runnable{
+
+               private NetworkManager myManager;
+       
+               public MyJSON(NetworkManager myManager) {
+                       this.myManager = myManager;
+               }
+               
+               public void run() {
+                       try {
+                       /** True while this PostListener should listen. */
+                       boolean run = true;
+
+                       // Try to connect to the port.
+                       ServerSocket serverSocket = null;
+                       try {
+                               serverSocket = new ServerSocket(4444);
+                       } catch (IOException e) {
+                               System.err.println("Could not listen on port: 
4444.");
+                               System.exit(1);
+                       }
+
+                       Socket clientSocket = null;
+                       BufferedReader in = null;
+
+                       // Listen for Clients.
+                       while(run) {
+                               try {
+                                       clientSocket = serverSocket.accept();
+                               } catch (IOException e) {
+                                       System.err.println("Accept failed.");
+                                       System.exit(1);
+                               }
+
+                               System.out.println("waiting");
+                               in = new BufferedReader(
+                                               new InputStreamReader(
+                                                               
clientSocket.getInputStream()));
+                               System.out.println("waiting2");
+                               String line;
+                               Gson gson = new Gson();
+                               while ((line = in.readLine()) != null) {
+                                       System.out.println("waiting3");
+                                       if (line.equals("die")) {
+                                               System.out.println("Got kill 
signal!");
+                                               run = false;
+                                               break;
+                                       }
+                                       
+                                       Helper test = 
gson.fromJson(line,Helper.class);
+                                       
myManager.pushNetwork(test.network_name, test.node_cytobridge_ids, 
test.edge_cytobridge_ids, test.edge_source_cytobridge_ids, 
test.edge_target_cytobridge_ids);
+                               }
+                       }
+
+                       // Clean up
+                       System.out.println("Terminating Server...");
+                       in.close();
+                       clientSocket.close();
+                       serverSocket.close();
+                       } catch (Exception e) {
+                               System.out.println(e.getMessage());
+                       }
+               }
+}

Added: 
csplugins/trunk/soc/mkirby/CytoBridge/src/main/resources/images/bridge2.png
===================================================================
(Binary files differ)


Property changes on: 
csplugins/trunk/soc/mkirby/CytoBridge/src/main/resources/images/bridge2.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

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