Author: clopes
Date: 2012-10-10 11:03:30 -0700 (Wed, 10 Oct 2012)
New Revision: 30644

Modified:
   
core3/api/trunk/swing-application-api/src/main/java/org/cytoscape/application/swing/ActionEnableSupport.java
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
Log:
refs #1128 : Rename Network option is now disabled when multiple subnetworks 
are selected.

Modified: 
core3/api/trunk/swing-application-api/src/main/java/org/cytoscape/application/swing/ActionEnableSupport.java
===================================================================
--- 
core3/api/trunk/swing-application-api/src/main/java/org/cytoscape/application/swing/ActionEnableSupport.java
        2012-10-10 16:57:46 UTC (rev 30643)
+++ 
core3/api/trunk/swing-application-api/src/main/java/org/cytoscape/application/swing/ActionEnableSupport.java
        2012-10-10 18:03:30 UTC (rev 30644)
@@ -69,6 +69,11 @@
         * Enable when at least one network exists.
         */
        public static final String ENABLE_FOR_NETWORK = "network";
+       
+       /**
+        * Enable when only one network is selected.
+        */
+       public static final String ENABLE_FOR_SINGLE_NETWORK = "singleNetwork";
 
        /**
         * Enable when at least one network with NO view exists.
@@ -160,6 +165,8 @@
                        setEnabled(true);
                else if (enableFor.equals(ENABLE_FOR_NETWORK))
                        enableForNetwork();
+               else if (enableFor.equals(ENABLE_FOR_SINGLE_NETWORK))
+                       enableForSingleNetwork();
                else if (enableFor.equals(ENABLE_FOR_NETWORK_WITHOUT_VIEW))
                        enableForNetworkWithoutView();
                else if (enableFor.equals(ENABLE_FOR_NETWORK_AND_VIEW))
@@ -190,12 +197,19 @@
         * Enable the action if the current network exists and is not null.
         */
        private void enableForNetwork() {
-               CyNetwork n = applicationManager.getCurrentNetwork();
-
-               if (n == null)
+               final CyNetwork n = applicationManager.getCurrentNetwork();
+               setEnabled(n != null);
+       }
+       
+       private void enableForSingleNetwork() {
+               final CyNetwork n = applicationManager.getCurrentNetwork();
+               
+               if (n == null) {
                        setEnabled(false);
-               else
-                       setEnabled(true);
+               } else {
+                       final List<CyNetwork> networks = 
applicationManager.getSelectedNetworks();
+                       setEnabled(networks.size() == 1 && 
networks.contains(n));
+               }
        }
 
        /**
@@ -203,18 +217,14 @@
         * and no view is available for the network.
         */
        private void enableForNetworkWithoutView() {
-               
-               final CyNetwork network = 
applicationManager.getCurrentNetwork();
+               final CyNetwork n = applicationManager.getCurrentNetwork();
 
-               if (network == null)
+               if (n == null) {
                        setEnabled(false);
-               else {
+               } else {
                        // Network exists.
-                       final Collection<CyNetworkView> views = 
networkViewManager.getNetworkViews(network);
-                       if(views.size() == 0)
-                               setEnabled(true);
-                       else
-                               setEnabled(false);
+                       final Collection<CyNetworkView> views = 
networkViewManager.getNetworkViews(n);
+                       setEnabled(views.isEmpty());
                }
        }
 
@@ -222,12 +232,8 @@
         * Enable the action if the current network and view exist and are not 
null.
         */
        private void enableForNetworkAndView() {
-               CyNetworkView v = applicationManager.getCurrentNetworkView();
-
-               if (v == null)
-                       setEnabled(false);
-               else
-                       setEnabled(true);
+               final CyNetworkView v = 
applicationManager.getCurrentNetworkView();
+               setEnabled(v != null);
        }
 
        /**
@@ -235,17 +241,14 @@
         * perform the action.
         */
        private void enableForSelectedNodesOrEdges() {
-               final CyNetwork curNetwork = 
applicationManager.getCurrentNetwork();
+               final CyNetwork n = applicationManager.getCurrentNetwork();
 
                // Disable if there is no current network.
-               if (curNetwork == null) {
+               if (n == null)
                        setEnabled(false);
-
-                       return;
-               }
-
-               setEnabled( 
((curNetwork.getDefaultNodeTable().countMatchingRows(CyNetwork.SELECTED, true) 
> 0) ||
-                            
(curNetwork.getDefaultEdgeTable().countMatchingRows(CyNetwork.SELECTED, true) > 
0)) ); 
+               else
+                       setEnabled( 
((n.getDefaultNodeTable().countMatchingRows(CyNetwork.SELECTED, true) > 0) ||
+                                    
(n.getDefaultEdgeTable().countMatchingRows(CyNetwork.SELECTED, true) > 0)) ); 
        }
 
        /**
@@ -255,13 +258,10 @@
        private void enableForSelectedNodes() {
                CyNetwork n = applicationManager.getCurrentNetwork();
 
-               if (n == null) {
+               if (n == null)
                        setEnabled(false);
-
-                       return;
-               }
-
-               setEnabled( 
(n.getDefaultNodeTable().countMatchingRows(CyNetwork.SELECTED, true) > 0) );
+               else
+                       setEnabled( 
(n.getDefaultNodeTable().countMatchingRows(CyNetwork.SELECTED, true) > 0) );
        }
 
        /**
@@ -271,13 +271,10 @@
        private void enableForSelectedEdges() {
                CyNetwork n = applicationManager.getCurrentNetwork();
 
-               if (n == null) {
+               if (n == null)
                        setEnabled(false);
-
-                       return;
-               }
-
-               setEnabled( 
(n.getDefaultEdgeTable().countMatchingRows(CyNetwork.SELECTED, true) > 0) );
+               else
+                       setEnabled( 
(n.getDefaultEdgeTable().countMatchingRows(CyNetwork.SELECTED, true) > 0) );
        }
 
        /**
@@ -286,5 +283,4 @@
        private void enableForTable() {
                setEnabled(applicationManager.getCurrentTable() != null);
        }
-
 }

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
  2012-10-10 16:57:46 UTC (rev 30643)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
  2012-10-10 18:03:30 UTC (rev 30644)
@@ -795,7 +795,7 @@
                
registerService(bc,fitContentTaskFactory,NetworkViewTaskFactory.class, 
fitContentTaskFactoryProps);
 
                Properties editNetworkTitleTaskFactoryProps = new Properties();
-               
editNetworkTitleTaskFactoryProps.setProperty(ENABLE_FOR,"network");
+               
editNetworkTitleTaskFactoryProps.setProperty(ENABLE_FOR,"singleNetwork");
                
editNetworkTitleTaskFactoryProps.setProperty(PREFERRED_MENU,"Edit");
                
editNetworkTitleTaskFactoryProps.setProperty(MENU_GRAVITY,"5.5");
                editNetworkTitleTaskFactoryProps.setProperty(TITLE,"Rename 
Network...");

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