Author: kono
Date: 2010-02-16 14:23:52 -0800 (Tue, 16 Feb 2010)
New Revision: 19336
Added:
cytoscape/trunk/src/cytoscape/util/swing/NetworkSelectorPanel.java
Log:
Utility class to track current network titles in session and returns selected
network.
Added: cytoscape/trunk/src/cytoscape/util/swing/NetworkSelectorPanel.java
===================================================================
--- cytoscape/trunk/src/cytoscape/util/swing/NetworkSelectorPanel.java
(rev 0)
+++ cytoscape/trunk/src/cytoscape/util/swing/NetworkSelectorPanel.java
2010-02-16 22:23:52 UTC (rev 19336)
@@ -0,0 +1,75 @@
+package cytoscape.util.swing;
+
+import java.awt.BorderLayout;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import javax.swing.JComboBox;
+import javax.swing.JPanel;
+
+import cytoscape.CyNetwork;
+import cytoscape.Cytoscape;
+
+public class NetworkSelectorPanel extends JPanel implements
+ PropertyChangeListener {
+
+ private static final long serialVersionUID = 8694272457769377810L;
+
+ private final JComboBox networkComboBox;
+
+ public NetworkSelectorPanel() {
+ super();
+ this.setLayout(new BorderLayout());
+ networkComboBox = new JComboBox();
+
+ add(networkComboBox, BorderLayout.CENTER);
+ updateNetworkList();
+
+
Cytoscape.getPropertyChangeSupport().addPropertyChangeListener(this);
+ }
+
+ /**
+ * If selected, return selected network.
+ * Otherwise, return null.
+ *
+ * @return
+ */
+ public CyNetwork getSelectedNetwork() {
+ for (CyNetwork net : Cytoscape.getNetworkSet()) {
+ if
(net.getTitle().equals(networkComboBox.getSelectedItem()))
+ return net;
+ }
+
+ return null;
+ }
+
+ private void updateNetworkList() {
+ final Set<CyNetwork> networks = Cytoscape.getNetworkSet();
+ final SortedSet<String> networkNames = new TreeSet<String>();
+
+ for (CyNetwork net : networks)
+ networkNames.add(net.getTitle());
+
+ networkComboBox.removeAllItems();
+ for (String name : networkNames)
+ networkComboBox.addItem(name);
+
+ networkComboBox.setSelectedItem(Cytoscape.getCurrentNetwork()
+ .getTitle());
+ }
+
+ public void propertyChange(PropertyChangeEvent evt) {
+
+ final String propName = evt.getPropertyName();
+
+ if (propName.equals(Cytoscape.NETWORK_CREATED))
+ updateNetworkList();
+ else if (propName.equals(Cytoscape.NETWORK_DESTROYED))
+ networkComboBox.removeItem(Cytoscape.getNetwork(
+ (String) evt.getNewValue()).getTitle());
+
+ }
+}
--
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.