Author: clopes
Date: 2012-05-16 14:26:43 -0700 (Wed, 16 May 2012)
New Revision: 29275

Modified:
   
core3/impl/trunk/application-impl/src/main/java/org/cytoscape/application/internal/CyApplicationManagerImpl.java
   
core3/impl/trunk/application-impl/src/test/java/org/cytoscape/application/internal/CyApplicationManagerImplTest.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
   
core3/impl/trunk/webservice-biomart-client-impl/src/main/java/org/cytoscape/io/webservice/biomart/ui/AttributeImportPanel.java
Log:
Fixes #986 : "Destroy View" option enabled for networks that have no view.
Biomart import panel: Column names combo box cleared when there is no network.
Overwrites DGraphView.toString().

Modified: 
core3/impl/trunk/application-impl/src/main/java/org/cytoscape/application/internal/CyApplicationManagerImpl.java
===================================================================
--- 
core3/impl/trunk/application-impl/src/main/java/org/cytoscape/application/internal/CyApplicationManagerImpl.java
    2012-05-16 20:12:19 UTC (rev 29274)
+++ 
core3/impl/trunk/application-impl/src/main/java/org/cytoscape/application/internal/CyApplicationManagerImpl.java
    2012-05-16 21:26:43 UTC (rev 29275)
@@ -112,82 +112,27 @@
        @Override
        public void handleEvent(final NetworkAboutToBeDestroyedEvent event) {
                final CyNetwork toBeDestroyed = event.getNetwork();
-               boolean changed = false;
 
                synchronized (this) {
-                       if (toBeDestroyed == currentNetwork) {
-                               changed = true;
-                               currentNetwork = null;
-                               currentNetworkView = null;
-
-                               final Set<CyNetworkView> networkViews = 
networkViewManager.getNetworkViewSet();
-
-                               for (final CyNetworkView view : networkViews) {
-                                       if (view.getModel() != toBeDestroyed) {
-                                               currentNetworkView = view;
-                                               currentNetwork = 
view.getModel();
-
-                                               break;
-                                       }
-                               }
-
-                               if (currentNetwork == null) {
-                                       final Set<CyNetwork> networks = 
networkManager.getNetworkSet();
-
-                                       for (final CyNetwork network : 
networks) {
-                                               if (network != toBeDestroyed) {
-                                                       currentNetwork = 
network;
-
-                                                       break;
-                                               }
-                                       }
-                               }
+                       logger.debug("NetworkAboutToBeDestroyedEvent: " + 
toBeDestroyed + ". Current: " + currentNetwork);
+                       
+                       if (toBeDestroyed.equals(currentNetwork)) {
+                               setCurrentNetwork(null);
                        }
                }
-
-               if (changed) {
-                       cyEventHelper.fireEvent(new 
SetCurrentNetworkViewEvent(this, currentNetworkView));
-               }
        }
 
        @Override
        public void handleEvent(final NetworkViewAboutToBeDestroyedEvent event) 
{
                final CyNetworkView toBeDestroyed = event.getNetworkView();
-               boolean changed = false;
 
                synchronized (this) {
-                       if (toBeDestroyed == currentNetworkView) {
-                               changed = true;
-                               currentNetworkView = null;
-
-                               final Set<CyNetworkView> networkViews = 
networkViewManager.getNetworkViewSet();
-
-                               for (final CyNetworkView view : networkViews) {
-                                       if (view != toBeDestroyed) {
-                                               currentNetworkView = view;
-                                               currentNetwork = 
view.getModel();
-
-                                               break;
-                                       }
-                               }
-
-                               if (currentNetwork == null) {
-                                       final Set<CyNetwork> networks = 
networkManager.getNetworkSet();
-
-                                       for (final CyNetwork network : 
networks) {
-                                               if (network != 
toBeDestroyed.getModel()) {
-                                                       currentNetwork = 
network;
-
-                                                       break;
-                                               }
-                                       }
-                               }
+                       logger.debug("NetworkViewAboutToBeDestroyedEvent: " + 
toBeDestroyed + ". Current: " + currentNetworkView);
+                       
+                       if (toBeDestroyed.equals(currentNetworkView)) {
+                               setCurrentNetworkView(null);
                        }
                }
-
-               if (changed) {
-                       cyEventHelper.fireEvent(new 
SetCurrentNetworkViewEvent(this, currentNetworkView));
-               }
        }
 
        @Override
@@ -197,29 +142,29 @@
 
        @Override
        public void setCurrentNetwork(final CyNetwork network) {
-               final long networkId = network.getSUID();
                boolean changed = false;
                
                synchronized (this) {
-                       if (!networkManager.networkExists(networkId))
-                               throw new IllegalArgumentException("Network is 
not registered in this ApplicationManager: ID = "
-                                                                  + networkId);
+                       if (network != null && 
!networkManager.networkExists(network.getSUID()))
+                               throw new IllegalArgumentException("Network is 
not registered in this ApplicationManager: " + network);
 
-                       changed = !network.equals(currentNetwork);
+                       logger.info("Set current network called: " + network);
+                       changed = (network == null && currentNetwork != null) 
|| (network != null && !network.equals(currentNetwork));
                        
-                       logger.info("Set current network called.  Current 
network ID = " + networkId);
                        currentNetwork = network; 
-                       final Collection<CyNetworkView> views = 
networkViewManager.getNetworkViews(network);
                        
-                       if (views.size() != 0)
-                               currentNetworkView = views.iterator().next();
-
-                       // reset selected networks
-                       selectNetworks(Arrays.asList(new CyNetwork[]{ 
currentNetwork }));
+                       if (network != null) {
+                               final Collection<CyNetworkView> views = 
networkViewManager.getNetworkViews(network);
+                               currentNetworkView = views.isEmpty() ? null : 
views.iterator().next();
+                               // reset selected networks
+                               selectNetworks(Arrays.asList(new CyNetwork[]{ 
network }));
+                       } else {
+                               currentNetworkView = null;
+                       }
                }
 
                if (changed) {
-                       logger.debug("Current network is set. Firing 
SetCurrentNetworkEvent: Network ID = " + networkId);
+                       logger.debug("Current network is set. Firing 
SetCurrentNetworkEvent: " + network);
                        cyEventHelper.fireEvent(new 
SetCurrentNetworkEvent(this, currentNetwork));
                }
        }
@@ -231,31 +176,28 @@
 
        @Override
        public void setCurrentNetworkView(final CyNetworkView view) {
-               if (view == null) {
-                       logger.warn("View was null - not setting current 
network view.");
-                       return;
-               }
-
                boolean changed = false;
                
                synchronized (this) {
-                       if 
(!networkManager.networkExists(view.getModel().getSUID()))
+                       if (view != null && 
!networkManager.networkExists(view.getModel().getSUID()))
                                throw new IllegalArgumentException("network is 
not recognized by this ApplicationManager");
 
-                       logger.debug("Set current network view called: View ID 
= " + view.getSUID());
+                       logger.debug("Set current network view called: " + 
view);
 
-                       changed = !view.equals(currentNetworkView);
-                       
+                       changed = (view == null && currentNetworkView != null) 
|| (view != null && !view.equals(currentNetworkView));
                        currentNetworkView = view;
-                       setCurrentNetwork(view.getModel());
 
                        // reset selected network views
                        selectedNetworkViews.clear();
-                       selectedNetworkViews.add(currentNetworkView);
+                       
+                       if (view != null) {
+                               selectedNetworkViews.add(currentNetworkView);
+                               setCurrentNetwork(view.getModel());
+                       }
                }
 
                if (changed) {
-                       logger.debug("Current network view is set. Firing 
SetCurrentNetworkViewEvent: View ID = " + view.getSUID());
+                       logger.debug("Current network view is set. Firing 
SetCurrentNetworkViewEvent: " + view);
                        cyEventHelper.fireEvent(new 
SetCurrentNetworkViewEvent(this, currentNetworkView));
                }
        }

Modified: 
core3/impl/trunk/application-impl/src/test/java/org/cytoscape/application/internal/CyApplicationManagerImplTest.java
===================================================================
--- 
core3/impl/trunk/application-impl/src/test/java/org/cytoscape/application/internal/CyApplicationManagerImplTest.java
        2012-05-16 20:12:19 UTC (rev 29274)
+++ 
core3/impl/trunk/application-impl/src/test/java/org/cytoscape/application/internal/CyApplicationManagerImplTest.java
        2012-05-16 21:26:43 UTC (rev 29275)
@@ -69,19 +69,20 @@
 
        @Test
        public void testSetNullCurrentNetwork() {
-               try {
-                       appMgr.setCurrentNetwork(null);
-                       fail("Should hgave thrown NullPointerException");
-               } catch (NullPointerException e) { }
+               appMgr.setCurrentNetwork(newNetwork());
+               appMgr.setCurrentNetworkView(newNetworkView());
+               appMgr.setCurrentNetwork(null);
+               assertNull(appMgr.getCurrentNetwork());
+               assertNull(appMgr.getCurrentNetworkView());
        }
        
        @Test
        public void testSetNullCurrentNetworkView() {
                final CyNetworkView view = newNetworkView();
                appMgr.setCurrentNetworkView(view);
-               assertNotNull(appMgr.getCurrentNetworkView());
                appMgr.setCurrentNetworkView(null);
-               assertEquals(view, appMgr.getCurrentNetworkView());
+               assertNull(appMgr.getCurrentNetworkView());
+               assertEquals(view.getModel(), appMgr.getCurrentNetwork());
        }
        
        @Test

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
     2012-05-16 20:12:19 UTC (rev 29274)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
     2012-05-16 21:26:43 UTC (rev 29275)
@@ -2692,4 +2692,9 @@
        public CyAnnotator getCyAnnotator() {
                return cyAnnotator;
        }
+
+       @Override
+       public String toString() {
+               return "DGraphView: suid=" + suid + ", model=" + model;
+       }
 }

Modified: 
core3/impl/trunk/webservice-biomart-client-impl/src/main/java/org/cytoscape/io/webservice/biomart/ui/AttributeImportPanel.java
===================================================================
--- 
core3/impl/trunk/webservice-biomart-client-impl/src/main/java/org/cytoscape/io/webservice/biomart/ui/AttributeImportPanel.java
      2012-05-16 20:12:19 UTC (rev 29274)
+++ 
core3/impl/trunk/webservice-biomart-client-impl/src/main/java/org/cytoscape/io/webservice/biomart/ui/AttributeImportPanel.java
      2012-05-16 21:26:43 UTC (rev 29275)
@@ -406,17 +406,20 @@
                SwingUtilities.invokeLater(new Runnable() {
                        @Override
                        public void run() {
-                               
updateColumnList(e.getNetwork().getDefaultNodeTable());
+                               updateColumnList(e.getNetwork() != null ? 
e.getNetwork().getDefaultNodeTable() : null);
                        }
                });
        }
        
        private void updateColumnList(final CyTable currentNodeTable) {
                final SortedSet<String> attrNameSet = new TreeSet<String>();
-               final Collection<CyColumn> columns = 
currentNodeTable.getColumns();
                
-               for(CyColumn col: columns)
-                       attrNameSet.add(col.getName());
+               if (currentNodeTable != null) {
+                       final Collection<CyColumn> columns = 
currentNodeTable.getColumns();
+                       
+                       for (CyColumn col: columns)
+                               attrNameSet.add(col.getName());
+               }
 
                columnNameComboBox.removeAllItems();
 

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