Author: ruschein
Date: 2011-05-25 13:54:33 -0700 (Wed, 25 May 2011)
New Revision: 25536
Modified:
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTable.java
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableBrowser.java
Log:
Fixed a bug that caused an exception when switching from the node to the edge
table.
Modified:
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTable.java
===================================================================
---
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTable.java
2011-05-25 20:04:08 UTC (rev 25535)
+++
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTable.java
2011-05-25 20:54:33 UTC (rev 25536)
@@ -79,6 +79,7 @@
private final OpenBrowser openBrowser;
private final EquationCompiler compiler;
private final PopupMenuHelper popupMenuHelper;
+ private boolean updateColumnComparators;
public BrowserTable(final OpenBrowser openBrowser, final
EquationCompiler compiler,
final PopupMenuHelper popupMenuHelper)
@@ -86,6 +87,7 @@
this.openBrowser = openBrowser;
this.compiler = compiler;
this.popupMenuHelper = popupMenuHelper;
+ this.updateColumnComparators = false;
// setColumnModel(new MyTableColumnModel());
initHeader();
@@ -96,6 +98,10 @@
setKeyStroke();
}
+ public void setUpdateComparators(final boolean updateColumnComparators)
{
+ this.updateColumnComparators = updateColumnComparators;
+ }
+
/**
* Routine which determines if we are running on mac platform
*/
@@ -617,6 +623,9 @@
public void addColumn(final TableColumn aColumn) {
super.addColumn(aColumn);
+ if (!updateColumnComparators)
+ return;
+
final TableRowSorter rowSorter = (TableRowSorter)getRowSorter();
if (rowSorter == null)
return;
Modified:
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
===================================================================
---
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
2011-05-25 20:04:08 UTC (rev 25535)
+++
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
2011-05-25 20:54:33 UTC (rev 25536)
@@ -227,7 +227,18 @@
if (raw == null)
return null;
- final Object cooked = getColumnValue(row, columnName);
+ // Optimisation hack:
+ Object cooked;
+ if (!(raw instanceof String))
+ cooked = raw;
+ else {
+ final String rawString = (String)raw;
+ if (!rawString.startsWith("="))
+ cooked = rawString;
+ else
+ cooked = getColumnValue(row, columnName);
+ }
+
if (cooked != null)
return new ValidatedObjectAndEditString(cooked,
raw.toString());
Modified:
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableBrowser.java
===================================================================
---
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableBrowser.java
2011-05-25 20:04:08 UTC (rev 25535)
+++
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableBrowser.java
2011-05-25 20:54:33 UTC (rev 25536)
@@ -121,56 +121,44 @@
public void actionPerformed(final ActionEvent e) {
final CyTable table = (CyTable)tableChooser.getSelectedItem();
+ if (table == currentTable || table == null)
+ return;
- if (table == null && table != currentTable) {
- if (browserTableModel != null) {
- browserTableModel.cleanup();
-
serviceRegistrar.unregisterAllServices(browserTableModel);
- }
- currentTable = null;
- browserTableModel = null;
- browserTable.setModel(new DefaultTableModel());
- attributeBrowserToolBar.setBrowserTableModel(null);
+ if (browserTableModel != null) {
+ browserTableModel.cleanup();
+
serviceRegistrar.unregisterAllServices(browserTableModel);
}
- if (table != null && table != currentTable) {
- if (browserTableModel != null) {
- final TableColumnModel columnModel =
-
browserTableModel.getTable().getColumnModel();
- tableToMetadataMap.put(currentTable,
- new
TableMetadata(columnModel,
-
browserTableModel));
- browserTableModel.cleanup();
-
serviceRegistrar.unregisterAllServices(browserTableModel);
+ currentTable = table;
+ browserTableModel = new BrowserTableModel(browserTable, table,
compiler,
+
tableRowUpdateService);
+ serviceRegistrar.registerAllServices(browserTableModel, new
Properties());
+ browserTable.setUpdateComparators(false);
+ browserTable.setModel(browserTableModel);
+ final TableRowSorter rowSorter = new
TableRowSorter(browserTableModel);
+ browserTable.setRowSorter(rowSorter);
+ updateColumnComparators(rowSorter);
+ browserTable.setUpdateComparators(true);
+ attributeBrowserToolBar.setBrowserTableModel(browserTableModel);
+ final TableMetadata tableMetadata =
tableToMetadataMap.get(currentTable);
+ if (tableMetadata != null) {
+ final JTable jTable = browserTableModel.getTable();
+ final TableColumnModel columnModel =
jTable.getColumnModel();
+ final Iterator<ColumnDescriptor> columnDescIter =
+ tableMetadata.getColumnDescriptors();
+ while (columnDescIter.hasNext()) {
+ final ColumnDescriptor desc =
columnDescIter.next();
+ final int savedColumnIndex =
desc.getColumnIndex();
+ final TableColumn tableColumn =
columnModel.getColumn(savedColumnIndex);
+
tableColumn.setPreferredWidth(desc.getColumnWidth());
+ final int currentColumnIndex =
+ jTable.convertColumnIndexToView(
+
browserTableModel.mapColumnNameToColumnIndex(desc.getColumnName()));
+ if (currentColumnIndex != savedColumnIndex)
+ jTable.moveColumn(currentColumnIndex,
savedColumnIndex);
}
-
- currentTable = table;
- browserTableModel = new BrowserTableModel(browserTable,
table, compiler,
-
tableRowUpdateService);
- serviceRegistrar.registerAllServices(browserTableModel,
new Properties());
- browserTable.setModel(browserTableModel);
- final TableRowSorter rowSorter = new
TableRowSorter(browserTableModel);
- browserTable.setRowSorter(rowSorter);
- updateColumnComparators(rowSorter);
-
attributeBrowserToolBar.setBrowserTableModel(browserTableModel);
- final TableMetadata tableMetadata =
tableToMetadataMap.get(currentTable);
- if (tableMetadata != null) {
- final JTable jTable =
browserTableModel.getTable();
- final TableColumnModel columnModel =
jTable.getColumnModel();
- final Iterator<ColumnDescriptor>
columnDescIter = tableMetadata.getColumnDescriptors();
- while (columnDescIter.hasNext()) {
- final ColumnDescriptor desc =
columnDescIter.next();
- final int savedColumnIndex =
desc.getColumnIndex();
- final TableColumn tableColumn =
columnModel.getColumn(savedColumnIndex);
-
tableColumn.setPreferredWidth(desc.getColumnWidth());
- final int currentColumnIndex =
- jTable.convertColumnIndexToView(
-
browserTableModel.mapColumnNameToColumnIndex(desc.getColumnName()));
- if (currentColumnIndex !=
savedColumnIndex)
-
jTable.moveColumn(currentColumnIndex, savedColumnIndex);
- }
- }
}
+
applicationManager.setCurrentTable(currentTable);
}
@@ -191,9 +179,17 @@
@Override
public void handleEvent(final TableAboutToBeDeletedEvent e) {
+ try {
final CyTable cyTable = e.getTable();
+System.err.println("**********************************************
cyTable="+cyTable);
final MyComboBoxModel comboBoxModel =
(MyComboBoxModel)tableChooser.getModel();
+System.err.println("**********************************************
comboBoxModel="+comboBoxModel);
comboBoxModel.removeItem(cyTable);
+System.err.println("********************************************** after call
to comboBoxModel.removeItem(cyTable);");
tableToMetadataMap.remove(cyTable);
+System.err.println("********************************************** after call
to tableToMetadataMap.remove(cyTable);");
+ } catch (Exception e1){
+ System.err.println("******************** exception:
"+e1);
+ }
}
}
\ No newline at end of file
--
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.