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.