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.

Reply via email to