Author: clopes
Date: 2012-02-29 14:45:50 -0800 (Wed, 29 Feb 2012)
New Revision: 28405

Modified:
   
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
   
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
   
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
Log:
Fixed bug that would cycle through all networks and select each one 
indefinitely after loading a session file. 

Modified: 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
===================================================================
--- 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
 2012-02-29 22:23:04 UTC (rev 28404)
+++ 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
 2012-02-29 22:45:50 UTC (rev 28405)
@@ -132,6 +132,8 @@
 
        private final Map<Long, NetworkTreeNode> treeNodeMap;
 
+       private boolean ignoreSetCurrentNetwork = true;
+
        /**
         * Constructor for the Network Panel.
         * 
@@ -319,7 +321,7 @@
                final NetworkTreeNode parentNode = (NetworkTreeNode) 
node.getParent();
                node.removeFromParent();
 
-               if(parentNode.isLeaf()) {
+               if (parentNode.isLeaf()) {
                        // Remove from root node
                        parentNode.removeFromParent();
                }
@@ -350,7 +352,6 @@
        }
 
        // // Event handlers /////
-
        
        @Override
        public void handleEvent(final NetworkAboutToBeDestroyedEvent nde) {
@@ -358,14 +359,17 @@
                        public void run() {
                                final CyNetwork net = nde.getNetwork();
                                logger.debug("Network about to be destroyed " + 
net.getSUID());
+                               
+                               ignoreSetCurrentNetwork = true;
                                removeNetwork(net.getSUID());
+                               ignoreSetCurrentNetwork = false;
+                               
                                nameTables.remove(net.getDefaultNetworkTable());
                                
nodeEdgeTables.remove(net.getDefaultNodeTable());
                                
nodeEdgeTables.remove(net.getDefaultEdgeTable());
                        }
                });
        }
-
        
        @Override
        public void handleEvent(final NetworkAddedEvent e) {
@@ -374,7 +378,10 @@
                                final CyNetwork net = e.getNetwork();
                                logger.debug("Got NetworkAddedEvent.  Model ID 
= " + net.getSUID());
                
+                               ignoreSetCurrentNetwork = true;
                                addNetwork(net.getSUID());
+                               ignoreSetCurrentNetwork = false;
+                               
                                nameTables.put(net.getDefaultNetworkTable(), 
net);
                                
nodeEdgeTables.put(net.getDefaultNodeTable(),net);
                                
nodeEdgeTables.put(net.getDefaultEdgeTable(),net);
@@ -423,7 +430,9 @@
                                public void run() {
                                        logger.debug("Got 
SetCurrentNetworkViewEvent.  View ID = " + e.getNetworkView().getSUID());
                                        final long curr = 
e.getNetworkView().getModel().getSUID();
+                                       ignoreSetCurrentNetwork = true;
                                        focusNetworkNode(curr);
+                                       ignoreSetCurrentNetwork = false;
                                }
                        });
                }
@@ -445,7 +454,9 @@
                        SwingUtilities.invokeLater( new Runnable() {
                                public void run() {
                                        logger.debug("Set current network " + 
cnet.getSUID());
+                                       ignoreSetCurrentNetwork = true;
                                        focusNetworkNode(cnet.getSUID());
+                                       ignoreSetCurrentNetwork = false;
                                }
                        });
                }
@@ -580,10 +591,10 @@
                // This is a "network set" node.
                if (net == null)
                        return;
-
+               
                // No need to set the same network again. It should prevent 
infinite loops.
                // Also check if the network still exists (it could have been 
removed by another thread).
-               if (netmgr.networkExists(net.getSUID()) && 
!net.equals(appManager.getCurrentNetwork())) {
+               if (!ignoreSetCurrentNetwork && 
netmgr.networkExists(net.getSUID()) && 
!net.equals(appManager.getCurrentNetwork())) {
                        appManager.setCurrentNetwork(net);
                }
 

Modified: 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
  2012-02-29 22:23:04 UTC (rev 28404)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
  2012-02-29 22:45:50 UTC (rev 28405)
@@ -122,11 +122,14 @@
        public Icon getIcon() { return null; }
        
        synchronized void showSelectedTable() {
-               final BrowserTableModel currentBrowserTableModel = 
getCurrentBrowserTableModel(); 
+               final BrowserTableModel currentBrowserTableModel = 
getCurrentBrowserTableModel();
                final JScrollPane newScrollPane = 
getScrollPane(currentBrowserTableModel);
-               if ( currentScrollPane != null )
-                       remove( currentScrollPane );
-               add( newScrollPane, BorderLayout.CENTER );
+
+               if (currentScrollPane != null)
+                       remove(currentScrollPane);
+
+               add(newScrollPane, BorderLayout.CENTER);
+
                currentScrollPane = newScrollPane;
                applicationManager.setCurrentTable(currentTable);
                
attributeBrowserToolBar.setBrowserTableModel(currentBrowserTableModel);
@@ -137,17 +140,20 @@
 
        private JScrollPane getScrollPane(final BrowserTableModel 
browserTableModel) {
                JScrollPane scrollPane = scrollPanes.get(browserTableModel);
-               if ( scrollPane == null ) {
+               
+               if (scrollPane == null) {
                        final BrowserTable browserTable = 
browserTableModel.getBrowserTable(); 
                        serviceRegistrar.registerAllServices(browserTableModel, 
new Properties());
                        browserTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
                        
browserTable.getTableHeader().setBackground(Color.LIGHT_GRAY);
                        browserTable.setUpdateComparators(false);
                        browserTable.setModel(browserTableModel);
-                       final TableRowSorter rowSorter = new 
TableRowSorter(browserTableModel);
+                       
+                       final TableRowSorter<BrowserTableModel> rowSorter = new 
TableRowSorter<BrowserTableModel>(browserTableModel);
                        browserTable.setRowSorter(rowSorter);
-                       updateColumnComparators(rowSorter,browserTableModel);
+                       updateColumnComparators(rowSorter, browserTableModel);
                        browserTable.setUpdateComparators(true);
+                       
                        scrollPane = new JScrollPane(browserTable);
                        scrollPanes.put(browserTableModel,scrollPane);
                }
@@ -157,21 +163,29 @@
 
        protected BrowserTableModel getCurrentBrowserTableModel() {
                BrowserTableModel btm = browserTableModels.get(currentTable);
-               if ( btm == null ) {
+               
+               if (btm == null) {
                        final BrowserTable browserTable = new 
BrowserTable(openBrowser, compiler, 
                                                                           
popupMenuHelper, applicationManager, 
                                                                           
eventHelper);
                        btm = new BrowserTableModel(browserTable, currentTable, 
compiler);
-                       browserTableModels.put(currentTable,btm);
+                       browserTableModels.put(currentTable, btm);
                }
+               
                return btm;
        }
 
-       void updateColumnComparators(final TableRowSorter rowSorter, final 
BrowserTableModel browserTableModel) {
+       void updateColumnComparators(final TableRowSorter<BrowserTableModel> 
rowSorter,
+                       final BrowserTableModel browserTableModel) {
                for (int column = 0; column < 
browserTableModel.getColumnCount(); ++column)
                        rowSorter.setComparator(
                                column,
                                new ValidatedObjectAndEditStringComparator(
                                        
browserTableModel.getColumn(column).getType()));
        }
+
+       @Override
+       public String toString() {
+               return "AbstractTableBrowser [tabTitle=" + tabTitle + ", 
currentTable=" + currentTable + "]";
+       }
 }

Modified: 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
   2012-02-29 22:23:04 UTC (rev 28404)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
   2012-02-29 22:45:50 UTC (rev 28405)
@@ -48,7 +48,7 @@
        private final Class<? extends CyTableEntry> objType;
 
        private boolean rowSelectionMode;
-       private boolean ignoreSetCurrentNetwork;
+       private boolean ignoreSetCurrentNetwork = true;
        
 
        public DefaultTableBrowser(String tabTitle, Class<? extends 
CyTableEntry> objType, CyTableManager tableManager,
@@ -131,7 +131,9 @@
                                final CyNetwork selectedNetwork = (CyNetwork) 
networkChooser.getSelectedItem();
 
                                if ((currentNetwork == null && selectedNetwork 
!= null) || !currentNetwork.equals(selectedNetwork)) {
+                                       ignoreSetCurrentNetwork = true;
                                        
networkChooser.setSelectedItem(currentNetwork);
+                                       ignoreSetCurrentNetwork = false;
                                }
                        }
                });

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