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.