Author: pwang
Date: 2012-05-31 16:24:05 -0700 (Thu, 31 May 2012)
New Revision: 29414

Added:
   
csplugins/trunk/ucsd/pwang/jActiveModules-impl/src/main/java/csplugins/jActiveModules/util/swing/
   
csplugins/trunk/ucsd/pwang/jActiveModules-impl/src/main/java/csplugins/jActiveModules/util/swing/NetworkSelectorPanel.java
Log:
Copy from previous version

Added: 
csplugins/trunk/ucsd/pwang/jActiveModules-impl/src/main/java/csplugins/jActiveModules/util/swing/NetworkSelectorPanel.java
===================================================================
--- 
csplugins/trunk/ucsd/pwang/jActiveModules-impl/src/main/java/csplugins/jActiveModules/util/swing/NetworkSelectorPanel.java
                          (rev 0)
+++ 
csplugins/trunk/ucsd/pwang/jActiveModules-impl/src/main/java/csplugins/jActiveModules/util/swing/NetworkSelectorPanel.java
  2012-05-31 23:24:05 UTC (rev 29414)
@@ -0,0 +1,121 @@
+package csplugins.jActiveModules.util.swing;
+
+import java.awt.BorderLayout;
+import java.awt.event.ItemListener;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import javax.swing.JComboBox;
+import javax.swing.JPanel;
+
+import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNetworkManager;
+import org.cytoscape.model.events.NetworkAddedEvent;
+import org.cytoscape.model.events.NetworkDestroyedEvent;
+import org.cytoscape.model.events.NetworkDestroyedListener;
+import org.cytoscape.model.events.NetworkAddedListener;
+import javax.swing.DefaultComboBoxModel;
+
+/**
+ * A convenience JPanel for selecting networks.
+ * @CyAPI.Final.Class 
+ */
+public final class NetworkSelectorPanel extends JPanel implements 
NetworkAddedListener, NetworkDestroyedListener
+{
+       private static final long serialVersionUID = 8694272457769377810L;
+       
+       protected final JComboBox networkComboBox;
+       private CyNetworkManager cyNetworkManager;
+       private CyApplicationManager cyApplicationManager;
+
+       /**
+        * Constructor.
+        * @param cyApplicationManager The application manager used for 
tracking the current network.
+        * @param cyNetworkManager The network manager used for accessing all 
available networks.
+        */
+       public NetworkSelectorPanel(CyApplicationManager cyApplicationManager, 
CyNetworkManager cyNetworkManager) {
+               super();
+               this.setLayout(new BorderLayout());
+               networkComboBox = new JComboBox();
+
+               this.cyNetworkManager = cyNetworkManager;
+               this.cyApplicationManager = cyApplicationManager;
+               
+               //This should help to limit the length of combobox if the 
network name is too long
+               networkComboBox.setPreferredSize(new 
java.awt.Dimension(networkComboBox.getPreferredSize().width, 
+                               networkComboBox.getPreferredSize().height));
+
+               add(networkComboBox, BorderLayout.CENTER);
+               updateNetworkList();
+       }
+       
+       /**
+        * If selected, return selected network.
+        * Otherwise, return null.
+        * 
+        * @return The network that was selected.
+        */
+       public CyNetwork getSelectedNetwork() {
+               for (CyNetwork net : this.cyNetworkManager.getNetworkSet()) {
+                       String networkTitle = net.getRow(net).get("name", 
String.class);
+                       if 
(networkTitle.equals(networkComboBox.getSelectedItem()))
+                               return net;
+               }
+               
+               return null;
+       }
+
+       private void updateNetworkList() {
+               final Set<CyNetwork> networks = 
this.cyNetworkManager.getNetworkSet();
+               final SortedSet<String> networkNames = new TreeSet<String>();
+
+               for (CyNetwork net : networks)
+                       networkNames.add(net.getRow(net).get("name", 
String.class));
+
+               // Clear the comboBox
+               networkComboBox.setModel(new DefaultComboBoxModel());
+
+               for (String name : networkNames)
+                       networkComboBox.addItem(name);
+
+               CyNetwork currNetwork = 
this.cyApplicationManager.getCurrentNetwork();
+               if (currNetwork != null) {
+                       String networkTitle = 
currNetwork.getRow(currNetwork).get("name", String.class);
+                       networkComboBox.setSelectedItem(networkTitle);          
        
+               }
+       }
+
+       /**
+        * Updates the list based on network added events.
+        * @param e The network added event.
+        */
+       public void handleEvent(NetworkAddedEvent e){
+               updateNetworkList();
+       }
+
+       /**
+        * Updates the list based on network destroyed events.
+        * @param e The network destroyed event.
+        */
+       public void handleEvent(NetworkDestroyedEvent e){
+               updateNetworkList();
+       }
+       
+       /**
+        * Installs a new item listener for the embedded combo box.
+        * @param newListener The new item listener to be added.
+        */
+       public void addItemListener(final ItemListener newListener) {
+               networkComboBox.addItemListener(newListener);
+       }
+
+       /**
+        * Returns the network combobox.
+        * @return The network combobox.
+        */
+       public JComboBox getJCombobox(){
+               return this.networkComboBox;
+       }
+}

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