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.