Author: mes
Date: 2012-02-06 17:55:35 -0800 (Mon, 06 Feb 2012)
New Revision: 28203

Added:
   
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadCyTableFromURL.java
   
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadNetworkFromURL.java
   
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadSessionFromURL.java
   
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/SessionLoader.java
Modified:
   
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/GenomeSpacePlugin.java
   
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadSessionFromGenomeSpace.java
Log:
added support for dynamic loading

Modified: 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/GenomeSpacePlugin.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/GenomeSpacePlugin.java
      2012-02-06 23:56:44 UTC (rev 28202)
+++ 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/GenomeSpacePlugin.java
      2012-02-07 01:55:35 UTC (rev 28203)
@@ -2,6 +2,7 @@
 
 import cytoscape.Cytoscape;
 import cytoscape.plugin.CytoscapePlugin;
+import org.genomespace.sws.SimpleWebServer; 
 
 
 /**
@@ -16,6 +17,12 @@
                // Properly initializes things.
                super();
 
+               SimpleWebServer sws = new SimpleWebServer(12345);
+               sws.registerListener(new LoadNetworkFromURL());
+               sws.registerListener(new 
LoadCyTableFromURL("node.cytable",Cytoscape.getNodeAttributes()));
+               sws.registerListener(new 
LoadCyTableFromURL("edge.cytable",Cytoscape.getEdgeAttributes()));
+               sws.registerListener(new LoadSessionFromURL());
+
                // This action represents the actual behavior of the plugin.
                UploadFileToGenomeSpace uploadAction = new 
UploadFileToGenomeSpace();
                Cytoscape.getDesktop().getCyMenus().addAction(uploadAction);
@@ -61,5 +68,6 @@
 
                LoginToGenomeSpace loginToGenomeSpace = new 
LoginToGenomeSpace();
                
Cytoscape.getDesktop().getCyMenus().addAction(loginToGenomeSpace);
+
        }
 }      

Added: 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadCyTableFromURL.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadCyTableFromURL.java
                             (rev 0)
+++ 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadCyTableFromURL.java
     2012-02-07 01:55:35 UTC (rev 28203)
@@ -0,0 +1,39 @@
+
+package cytoscape.genomespace;
+
+import java.util.Map;
+
+import cytoscape.cytable.CyTableReaderPlugin;
+import cytoscape.logger.CyLogger;
+import cytoscape.Cytoscape;
+import cytoscape.data.CyAttributes;
+
+import org.genomespace.sws.GSLoadEventListener;
+import org.genomespace.sws.GSLoadEvent;
+
+public class LoadCyTableFromURL implements GSLoadEventListener {
+       private static final CyLogger logger = 
CyLogger.getLogger(LoadCyTableFromURL.class);
+
+       private final CyAttributes attrs;
+       private final String key;
+
+       public LoadCyTableFromURL(String key, CyAttributes attrs) {
+               this.key = key;
+               this.attrs = attrs;
+       }
+
+       public void onLoadEvent(GSLoadEvent event) {
+               Map<String,String> params = event.getParameters();
+
+               String url = params.get(key);
+               
+               if ( url == null )
+                       return;
+
+               try {
+
+                       CyTableReaderPlugin.loadCyTable( url, attrs );
+
+               } catch ( Exception e ) { e.printStackTrace(); }
+       }
+}

Added: 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadNetworkFromURL.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadNetworkFromURL.java
                             (rev 0)
+++ 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadNetworkFromURL.java
     2012-02-07 01:55:35 UTC (rev 28203)
@@ -0,0 +1,27 @@
+package cytoscape.genomespace;
+
+import java.net.URL;
+import java.util.Map;
+
+import cytoscape.Cytoscape;
+import cytoscape.logger.CyLogger;
+
+import org.genomespace.sws.GSLoadEventListener;
+import org.genomespace.sws.GSLoadEvent;
+
+public class LoadNetworkFromURL implements GSLoadEventListener {
+       private static final CyLogger logger = 
CyLogger.getLogger(LoadNetworkFromURL.class);
+
+       public void onLoadEvent(GSLoadEvent event) {
+               Map<String,String> params = event.getParameters();
+               String netURL = params.get("network");
+               if ( netURL == null )
+                       return;
+
+               try {
+
+                       Cytoscape.createNetworkFromURL( new URL(netURL), true );
+
+               } catch ( Exception e ) { e.printStackTrace(); }
+       }
+}

Modified: 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadSessionFromGenomeSpace.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadSessionFromGenomeSpace.java
     2012-02-06 23:56:44 UTC (rev 28202)
+++ 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadSessionFromGenomeSpace.java
     2012-02-07 01:55:35 UTC (rev 28203)
@@ -47,7 +47,7 @@
 
        public void actionPerformed(ActionEvent e) {
                try {
-                       if (!destroyCurrentSession(Cytoscape.getDesktop()))
+                       if 
(!SessionLoader.destroyCurrentSession(Cytoscape.getDesktop()))
                                return;
 
                        final GsSession client = GSUtils.getSession(); 
@@ -68,25 +68,8 @@
                        final File tempFile = File.createTempFile("temp", 
"cysession");
                        dataManagerClient.downloadFile(fileMetadata, tempFile, 
true);
 
-                       // Close all networks in the workspace.
-                       Cytoscape.setSessionState(Cytoscape.SESSION_OPENED);
-                       Cytoscape.createNewSession();
-                       Cytoscape.setSessionState(Cytoscape.SESSION_NEW);
+                       
SessionLoader.loadSession(tempFile,fileMetadata.getName());
 
-                       logger.info("Opening session file: " + 
tempFile.getName());
-
-                       final Task task = new OpenSessionTask(tempFile, 
fileMetadata.getName());
-
-                       // Configure JTask Dialog Pop-Up Box
-                       final JTaskConfig jTaskConfig = new JTaskConfig();
-                       jTaskConfig.setOwner(Cytoscape.getDesktop());
-                       jTaskConfig.displayCloseButton(true);
-                       jTaskConfig.displayCancelButton(false);
-                       jTaskConfig.displayStatus(true);
-                       jTaskConfig.setAutoDispose(false);
-
-                       // Execute Task in New Thread; pop open JTask Dialog 
Box.
-                       TaskManager.executeTask(task, jTaskConfig);
                } catch (Exception ex) {
                        logger.error("GenomeSpace failed", ex);
                        JOptionPane.showMessageDialog(Cytoscape.getDesktop(),
@@ -95,109 +78,5 @@
                }
        }
 
-       private static boolean destroyCurrentSession(final Frame parent) {
-               final int currentNetworkCount = 
Cytoscape.getNetworkSet().size();
-               if (currentNetworkCount == 0)
-                       return true;
-
-               final String warning = "The current session will be lost!\nDo 
you want to continue anyway?";
-               final int result =
-                       JOptionPane.showConfirmDialog(parent, warning,
-                                                     "Caution!", 
JOptionPane.YES_NO_OPTION,
-                                                     
JOptionPane.WARNING_MESSAGE, null);
-               return result == JOptionPane.YES_OPTION;
-       }
 }
 
-
-class OpenSessionTask implements Task {
-       private final File localFile;
-       private final String origFileName;
-       private TaskMonitor taskMonitor;
-
-       OpenSessionTask(final File localFile, final String origFileName) {
-               this.localFile = localFile;
-               this.origFileName = origFileName;
-       }
-
-       /**
-        * Executes Task
-        *
-        * @throws
-        * @throws Exception
-        */
-       public void run() {
-               taskMonitor.setStatus("Opening Session File.\n\nIt may take a 
while.\nPlease wait...");
-               taskMonitor.setPercentCompleted(0);
-
-               CytoscapeSessionReader sr;
-
-               try {
-                       sr = new CytoscapeSessionReader(localFile.getPath(), 
taskMonitor);
-                       sr.read();
-               } catch (IOException e) {
-                       taskMonitor.setException(e, "Cannot open the session 
file: " + e.getMessage());
-                       LoadSessionFromGenomeSpace.logger.error("Cannot open 
the session file: "
-                                                               + 
e.getMessage(), e);
-               } catch (JAXBException e) {
-                       taskMonitor.setException(e, "Cannot unmarshall 
document: " + e.getMessage());
-                       LoadSessionFromGenomeSpace.logger.error("Cannot 
unmarshall document: "
-                                                               + 
e.getMessage(), e);
-               } catch (XGMMLException e) {
-                       taskMonitor.setException(e, "XGMML format error in 
network: "
-                                                + e.getMessage());
-                       LoadSessionFromGenomeSpace.logger.error("XGMML format 
error in network "
-                                                               + 
e.getMessage(), e);
-               } catch (Exception e) { // catch any exception: the user should 
know something went wrong
-                       taskMonitor.setException(e, "Error while loading 
session "
-                                                + e.getMessage());
-                       LoadSessionFromGenomeSpace.logger.error("Error while 
loading session: "
-                                                               + 
e.getMessage(), e);
-               } finally {
-                       sr = null;
-                       
Cytoscape.getDesktop().getVizMapperUI().initVizmapperGUI();
-                       System.gc();
-               }
-
-               taskMonitor.setPercentCompleted(100);
-               taskMonitor.setStatus("Session file " + origFileName
-                                     + " successfully loaded from 
GenomeSpace.");
-
-               Cytoscape.setCurrentSessionFileName(origFileName);
-
-               Cytoscape.getDesktop().setTitle("Cytoscape Desktop (Session: " 
+ origFileName + ")");
-
-               // Remove the temporary file:
-               localFile.delete();
-       }
-
-       /**
-        * Halts the Task: Not Currently Implemented.
-        */
-       public void halt() {
-               // Task can not currently be halted.
-               
-               LoadSessionFromGenomeSpace.logger.info("HALT called!!!");
-               taskMonitor.setPercentCompleted(100);
-               taskMonitor.setStatus("Failed!!!");
-       }
-
-       /**
-        * Sets the Task Monitor.
-        *
-        * @param taskMonitor
-        *            TaskMonitor Object.
-        */
-       public void setTaskMonitor(TaskMonitor taskMonitor) throws 
IllegalThreadStateException {
-               this.taskMonitor = taskMonitor;
-       }
-
-       /**
-        * Gets the Task Title.
-        *
-        * @return Task Title.
-        */
-       public String getTitle() {
-               return "Opening Session File";
-       }
-}

Added: 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadSessionFromURL.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadSessionFromURL.java
                             (rev 0)
+++ 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/LoadSessionFromURL.java
     2012-02-07 01:55:35 UTC (rev 28203)
@@ -0,0 +1,30 @@
+package cytoscape.genomespace;
+
+import java.io.File;
+import java.util.Map;
+
+import cytoscape.Cytoscape;
+import cytoscape.util.URLUtil;
+import cytoscape.logger.CyLogger;
+
+import org.genomespace.sws.GSLoadEventListener;
+import org.genomespace.sws.GSLoadEvent;
+
+public class LoadSessionFromURL implements GSLoadEventListener {
+       private static final CyLogger logger = 
CyLogger.getLogger(LoadNetworkFromURL.class);
+
+       public void onLoadEvent(GSLoadEvent event) {
+               Map<String,String> params = event.getParameters();
+               String sessionURL = params.get("session");
+               if ( sessionURL == null )
+                       return;
+        if (!SessionLoader.destroyCurrentSession(Cytoscape.getDesktop()))
+            return;
+
+               try {
+                       File tempFile = File.createTempFile("temp", 
"cysession");
+                       URLUtil.download(sessionURL,tempFile,null);
+                       SessionLoader.loadSession(tempFile, sessionURL );
+               } catch ( Exception e ) { e.printStackTrace(); }
+       }
+}

Added: 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/SessionLoader.java
===================================================================
--- 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/SessionLoader.java
                          (rev 0)
+++ 
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/SessionLoader.java
  2012-02-07 01:55:35 UTC (rev 28203)
@@ -0,0 +1,171 @@
+package cytoscape.genomespace;
+
+
+import cytoscape.Cytoscape;
+import cytoscape.data.CyAttributes;
+import cytoscape.data.readers.CyAttributesReader;
+import cytoscape.data.readers.CytoscapeSessionReader;
+import cytoscape.data.readers.XGMMLException;
+import cytoscape.logger.CyLogger;
+import cytoscape.task.Task;
+import cytoscape.task.TaskMonitor;
+import cytoscape.task.ui.JTaskConfig;
+import cytoscape.task.util.TaskManager;
+import cytoscape.util.CytoscapeAction;
+
+import java.awt.Frame;
+import java.awt.event.ActionEvent;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import javax.swing.ImageIcon;
+import javax.swing.JOptionPane;
+import javax.xml.bind.JAXBException;
+
+import org.genomespace.client.ui.GSFileBrowserDialog;
+import org.genomespace.client.DataManagerClient;
+import org.genomespace.client.GsSession;
+import org.genomespace.client.User;
+import org.genomespace.datamanager.core.GSFileMetadata;
+
+
+public class SessionLoader {
+       static final CyLogger logger = CyLogger.getLogger(SessionLoader.class);
+
+       public static void loadSession(File sessionFile, String sessionName) {
+               try {
+                       // Close all networks in the workspace.
+                       Cytoscape.setSessionState(Cytoscape.SESSION_OPENED);
+                       Cytoscape.createNewSession();
+                       Cytoscape.setSessionState(Cytoscape.SESSION_NEW);
+
+                       logger.info("Opening session file: " + 
sessionFile.getName());
+
+                       final Task task = new OpenSessionTask(sessionFile, 
sessionName);
+
+                       // Configure JTask Dialog Pop-Up Box
+                       final JTaskConfig jTaskConfig = new JTaskConfig();
+                       jTaskConfig.setOwner(Cytoscape.getDesktop());
+                       jTaskConfig.displayCloseButton(true);
+                       jTaskConfig.displayCancelButton(false);
+                       jTaskConfig.displayStatus(true);
+                       jTaskConfig.setAutoDispose(false);
+
+                       // Execute Task in New Thread; pop open JTask Dialog 
Box.
+                       TaskManager.executeTask(task, jTaskConfig);
+               } catch (Exception ex) {
+                       logger.error("GenomeSpace failed", ex);
+                       JOptionPane.showMessageDialog(Cytoscape.getDesktop(),
+                                                     ex.getMessage(), 
"GenomeSpace Error",
+                                                     
JOptionPane.ERROR_MESSAGE);
+               }
+       }
+
+       public static boolean destroyCurrentSession(final Frame parent) {
+               final int currentNetworkCount = 
Cytoscape.getNetworkSet().size();
+               if (currentNetworkCount == 0)
+                       return true;
+
+               final String warning = "The current session will be lost!\nDo 
you want to continue anyway?";
+               final int result =
+                       JOptionPane.showConfirmDialog(parent, warning,
+                                                     "Caution!", 
JOptionPane.YES_NO_OPTION,
+                                                     
JOptionPane.WARNING_MESSAGE, null);
+               return result == JOptionPane.YES_OPTION;
+       }
+}
+
+
+class OpenSessionTask implements Task {
+       private final File localFile;
+       private final String origFileName;
+       private TaskMonitor taskMonitor;
+
+       OpenSessionTask(final File localFile, final String origFileName) {
+               this.localFile = localFile;
+               this.origFileName = origFileName;
+       }
+
+       /**
+        * Executes Task
+        *
+        * @throws
+        * @throws Exception
+        */
+       public void run() {
+               taskMonitor.setStatus("Opening Session File.\n\nIt may take a 
while.\nPlease wait...");
+               taskMonitor.setPercentCompleted(0);
+
+               CytoscapeSessionReader sr;
+
+               try {
+                       sr = new CytoscapeSessionReader(localFile.getPath(), 
taskMonitor);
+                       sr.read();
+               } catch (IOException e) {
+                       taskMonitor.setException(e, "Cannot open the session 
file: " + e.getMessage());
+                       LoadSessionFromGenomeSpace.logger.error("Cannot open 
the session file: "
+                                                               + 
e.getMessage(), e);
+               } catch (JAXBException e) {
+                       taskMonitor.setException(e, "Cannot unmarshall 
document: " + e.getMessage());
+                       LoadSessionFromGenomeSpace.logger.error("Cannot 
unmarshall document: "
+                                                               + 
e.getMessage(), e);
+               } catch (XGMMLException e) {
+                       taskMonitor.setException(e, "XGMML format error in 
network: "
+                                                + e.getMessage());
+                       LoadSessionFromGenomeSpace.logger.error("XGMML format 
error in network "
+                                                               + 
e.getMessage(), e);
+               } catch (Exception e) { // catch any exception: the user should 
know something went wrong
+                       taskMonitor.setException(e, "Error while loading 
session "
+                                                + e.getMessage());
+                       LoadSessionFromGenomeSpace.logger.error("Error while 
loading session: "
+                                                               + 
e.getMessage(), e);
+               } finally {
+                       sr = null;
+                       
Cytoscape.getDesktop().getVizMapperUI().initVizmapperGUI();
+                       System.gc();
+               }
+
+               taskMonitor.setPercentCompleted(100);
+               taskMonitor.setStatus("Session file " + origFileName
+                                     + " successfully loaded from 
GenomeSpace.");
+
+               Cytoscape.setCurrentSessionFileName(origFileName);
+
+               Cytoscape.getDesktop().setTitle("Cytoscape Desktop (Session: " 
+ origFileName + ")");
+
+               // Remove the temporary file:
+               localFile.delete();
+       }
+
+       /**
+        * Halts the Task: Not Currently Implemented.
+        */
+       public void halt() {
+               // Task can not currently be halted.
+               
+               LoadSessionFromGenomeSpace.logger.info("HALT called!!!");
+               taskMonitor.setPercentCompleted(100);
+               taskMonitor.setStatus("Failed!!!");
+       }
+
+       /**
+        * Sets the Task Monitor.
+        *
+        * @param taskMonitor
+        *            TaskMonitor Object.
+        */
+       public void setTaskMonitor(TaskMonitor taskMonitor) throws 
IllegalThreadStateException {
+               this.taskMonitor = taskMonitor;
+       }
+
+       /**
+        * Gets the Task Title.
+        *
+        * @return Task Title.
+        */
+       public String getTitle() {
+               return "Opening Session File";
+       }
+}

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