Author: pwang
Date: 2008-09-09 12:15:37 -0700 (Tue, 09 Sep 2008)
New Revision: 14864

Modified:
   
csplugins/trunk/ucsd/pwang/SessionForWebPlugin/src/SessionForWebPlugin/SessionForWebPlugin.java
Log:
Add a new menuItem -- Session for CellCircuits web site

Modified: 
csplugins/trunk/ucsd/pwang/SessionForWebPlugin/src/SessionForWebPlugin/SessionForWebPlugin.java
===================================================================
--- 
csplugins/trunk/ucsd/pwang/SessionForWebPlugin/src/SessionForWebPlugin/SessionForWebPlugin.java
     2008-09-09 18:33:18 UTC (rev 14863)
+++ 
csplugins/trunk/ucsd/pwang/SessionForWebPlugin/src/SessionForWebPlugin/SessionForWebPlugin.java
     2008-09-09 19:15:37 UTC (rev 14864)
@@ -15,12 +15,15 @@
 import cytoscape.CyNetwork;
 import cytoscape.plugin.CytoscapePlugin;
 import ding.view.DGraphView;
+import cytoscape.data.CyAttributes;
 
+
 public class SessionForWebPlugin extends CytoscapePlugin
 {
        public SessionForWebPlugin()
        {
                JMenuItem webMenuItem = new JMenuItem("Session for Web...");
+               JMenuItem webMenuItem2 = new JMenuItem("Session for 
CellCircuits web site...");
                ActionListener webActionListener = new ActionListener()
                {
                        public void actionPerformed(ActionEvent e)
@@ -37,8 +40,29 @@
                                setupDialog();
                        }
                };
+               
+               ActionListener webActionListener2 = new ActionListener()
+               {
+                       public void actionPerformed(ActionEvent e)
+                       {
+                               // check that we have at least 1 network loaded
+                               if (Cytoscape.getNetworkSet().size() == 0)
+                               {
+                                       
JOptionPane.showMessageDialog(Cytoscape.getDesktop(),
+                                               "There needs to be at least one 
network loaded\n" +
+                                               "before the session can be 
exported.", "Session for CellCircuits web site",
+                                               JOptionPane.ERROR_MESSAGE);
+                                       return;
+                               }
+                               setupDialog2();
+                       }
+               };
+
                webMenuItem.addActionListener(webActionListener);
+               webMenuItem2.addActionListener(webActionListener2);
+               
                getExportMenu().add(webMenuItem);
+               getExportMenu().add(webMenuItem2);
        }
 
        private JMenu getExportMenu()
@@ -65,6 +89,16 @@
                dialog.setVisible(true);
        }
 
+       
+       private void setupDialog2()
+       {
+               SessionExporterDialog2 dialog2 = new 
SessionExporterDialog2(Cytoscape.getDesktop());
+               dialog2.addActionListener(new ExportListener2(dialog2));
+               dialog2.setUpdateNetworksTableListener(new 
UpdateListener2(dialog2));
+               dialog2.setVisible(true);
+       }
+
+       
        private class UpdateListener implements ActionListener
        {
                private SessionExporterDialog dialog;
@@ -77,30 +111,71 @@
                public void actionPerformed(ActionEvent e)
                {
                        Map<String,String> networkTitleToIDMap = 
networkTitleToIDMap();
+                       Map<String,String> networkTitleToSpeciesMap = 
networkTitleToSpeciesMap();
                        TreeModel model = 
Cytoscape.getDesktop().getNetworkPanel().getTreeTable().getTree().getModel();
                        SessionExporterSettings settings = dialog.getSettings();
                        System.gc();
-                       search(networkTitleToIDMap, settings, model, 
model.getRoot());
+                       search(networkTitleToIDMap, networkTitleToSpeciesMap, 
settings, model, model.getRoot());
                }
 
-               private void search(Map<String,String> networkTitleToIDMap, 
SessionExporterSettings settings, TreeModel model, Object network)
+               private void search(Map<String,String> networkTitleToIDMap, 
Map<String,String> networkTitleToSpeciesMap, SessionExporterSettings settings, 
TreeModel model, Object network)
                {
                        if (network != model.getRoot())
                        {
                                String networkTitle = network.toString();
                                String networkID = 
networkTitleToIDMap.get(networkTitle);
+                               String species = 
networkTitleToSpeciesMap.get(networkTitle);
                                DGraphView networkView = (DGraphView) 
(Cytoscape.getNetworkView(networkID));
                                Dimension imageSize = 
GraphViewToImage.getImageDimensions(networkView, settings);
                                if (imageSize == null)
                                        dialog.addNetwork(networkID, 
networkTitle, 0, 0, false);
                                else
-                                       dialog.addNetwork(networkID, 
networkTitle, (int) imageSize.getWidth(), (int) imageSize.getHeight(), true);
+                                       dialog.addNetwork(networkID, 
networkTitle,  (int) imageSize.getWidth(), (int) imageSize.getHeight(), true);
                        }
                        for (int i = 0; i < model.getChildCount(network); i++)
-                               search(networkTitleToIDMap, settings, model, 
model.getChild(network, i));
+                               search(networkTitleToIDMap, 
networkTitleToSpeciesMap, settings, model, model.getChild(network, i));
                }
        }
 
+       private class UpdateListener2 implements ActionListener
+       {
+               private SessionExporterDialog2 dialog;
+
+               public UpdateListener2(SessionExporterDialog2 dialog)
+               {
+                       this.dialog = dialog;
+               }
+
+               public void actionPerformed(ActionEvent e)
+               {
+                       Map<String,String> networkTitleToIDMap = 
networkTitleToIDMap();
+                       Map<String,String> networkTitleToSpeciesMap = 
networkTitleToSpeciesMap();
+                       TreeModel model = 
Cytoscape.getDesktop().getNetworkPanel().getTreeTable().getTree().getModel();
+                       SessionExporterSettings settings = dialog.getSettings();
+                       System.gc();
+                       search(networkTitleToIDMap, networkTitleToSpeciesMap, 
settings, model, model.getRoot());
+               }
+
+               private void search(Map<String,String> networkTitleToIDMap, 
Map<String,String> networkTitleToSpeciesMap, SessionExporterSettings settings, 
TreeModel model, Object network)
+               {
+                       if (network != model.getRoot())
+                       {
+                               String networkTitle = network.toString();
+                               String networkID = 
networkTitleToIDMap.get(networkTitle);
+                               String species = 
networkTitleToSpeciesMap.get(networkTitle);
+                               DGraphView networkView = (DGraphView) 
(Cytoscape.getNetworkView(networkID));
+                               Dimension imageSize = 
GraphViewToImage.getImageDimensions(networkView, settings);
+                               if (imageSize == null)
+                                       dialog.addNetwork(networkID, 
networkTitle, 0, 0, false);
+                               else
+                                       dialog.addNetwork(networkID, 
networkTitle,  (int) imageSize.getWidth(), (int) imageSize.getHeight(), true);
+                       }
+                       for (int i = 0; i < model.getChildCount(network); i++)
+                               search(networkTitleToIDMap, 
networkTitleToSpeciesMap, settings, model, model.getChild(network, i));
+               }
+       }
+
+       
        private class ExportListener implements ActionListener
        {
                private SessionExporterDialog dialog;
@@ -123,6 +198,29 @@
                }
        }
 
+       private class ExportListener2 implements ActionListener
+       {
+               private SessionExporterDialog2 dialog;
+
+               public ExportListener2(SessionExporterDialog2 dialog)
+               {
+                       this.dialog = dialog;
+               }
+
+               public void actionPerformed(ActionEvent e)
+               {
+                       SessionExporterSettings settings = dialog.getSettings();
+                       Bundle bundle = BundleChooser.chooseBundle(settings);
+                       if (bundle != null)
+                       {
+                               dialog.setVisible(false);
+                               HTMLSessionExporter exporter = new 
HTMLSessionExporter();
+                               exporter.export(settings, bundle);
+                       }
+               }
+       }
+
+       
        public static Map<String,String> networkTitleToIDMap()
        {
                Map<String,String> map = new HashMap<String,String>();
@@ -136,4 +234,24 @@
                }
                return map;
        }
+       
+       public static Map<String,String> networkTitleToSpeciesMap()
+       {
+               Map<String,String> map = new HashMap<String,String>();
+               CyAttributes cyNetworkAttrs = Cytoscape.getNetworkAttributes();
+               Iterator iterator = Cytoscape.getNetworkSet().iterator();
+               while (iterator.hasNext())
+               {
+                       CyNetwork network = (CyNetwork) iterator.next();
+                       String networkID = network.getIdentifier();
+                       String networkTitle = network.getTitle();
+                       String species = 
cyNetworkAttrs.getStringAttribute(networkID, "species");
+                       if (species == null) {
+                               species = "Saccharomyces cerevisiae";
+                       }
+                       map.put(networkTitle, species);
+               }
+               return map;
+       }
+       
 }


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