Author: ruschein
Date: 2011-03-29 16:22:34 -0700 (Tue, 29 Mar 2011)
New Revision: 24618

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/TableBrowser.java
   
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableMetadata.java
Log:
Fixed column width and order retention problem.

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-03-29 22:06:17 UTC (rev 24617)
+++ 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
  2011-03-29 23:22:34 UTC (rev 24618)
@@ -161,7 +161,7 @@
 
                return getValidatedObjectAndEditString(row, columnName);
        }
- 
+
        CyColumn getColumn(final int columnIndex)  {
                final String columnName = getColumnName(columnIndex);
                return attrs.getColumn(columnName);
@@ -308,7 +308,7 @@
                throw new IllegalStateException("We should *never* get here!");
        }
 
-       private int mapColumnNameToColumnIndex(final String columnName) {
+       int mapColumnNameToColumnIndex(final String columnName) {
                final String primaryKey = attrs.getPrimaryKey().getName();
                if (columnName.equals(primaryKey))
                        return 0;
@@ -327,7 +327,6 @@
                throw new IllegalStateException("We should *never* get here!");
        }
 
-       
        private String mapColumnIndexToColumnName(final int index) {
                final String primaryKey = attrs.getPrimaryKey().getName();
                final boolean primaryKeyIsVisible = 
attrNamesAndVisibilities.get(0).isVisible();

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-03-29 22:06:17 UTC (rev 24617)
+++ 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableBrowser.java
       2011-03-29 23:22:34 UTC (rev 24618)
@@ -58,11 +58,11 @@
        private final TableTaskFactory deleteTableTaskFactoryService;
        private final GUITaskManager guiTaskManagerServiceRef;
        private final Map<CyTable, TableMetadata> tableToMetadataMap;
-       
+
        TableBrowser(final CyTableManager tableManager, final 
CyServiceRegistrar serviceRegistrar,
                     final EquationCompiler compiler, final OpenBrowser 
openBrowser,
                     final CyNetworkManager networkManager,
-                    final CyTableRowUpdateService tableRowUpdateService, 
+                    final CyTableRowUpdateService tableRowUpdateService,
                     final TableTaskFactory deleteTableTaskFactoryService,
                     final GUITaskManager guiTaskManagerServiceRef,
                     final PopupMenuHelper popupMenuHelper)
@@ -74,10 +74,10 @@
                this.deleteTableTaskFactoryService = 
deleteTableTaskFactoryService;
                this.guiTaskManagerServiceRef = guiTaskManagerServiceRef;
                this.tableToMetadataMap = new HashMap<CyTable, TableMetadata>();
-               
+
                this.browserTable = new BrowserTable(openBrowser, compiler, 
popupMenuHelper);
                this.tableRowUpdateService = tableRowUpdateService;
-               this.attributeBrowserToolBar = new 
AttributeBrowserToolBar(serviceRegistrar, compiler, 
+               this.attributeBrowserToolBar = new 
AttributeBrowserToolBar(serviceRegistrar, compiler,
                                this.deleteTableTaskFactoryService, 
this.guiTaskManagerServiceRef);
                this.setLayout(new BorderLayout());
 
@@ -129,7 +129,7 @@
                        browserTable.setModel(new DefaultTableModel());
                        attributeBrowserToolBar.setBrowserTableModel(null);
                }
-               
+
                if (table != null && table != currentTable) {
                        if (browserTableModel != null) {
                                final TableColumnModel columnModel =
@@ -149,15 +149,20 @@
                        browserTable.setRowSorter(new 
TableRowSorter(browserTableModel));
                        
attributeBrowserToolBar.setBrowserTableModel(browserTableModel);
                        final TableMetadata tableMetadata = 
tableToMetadataMap.get(currentTable);
-                       if (tableToMetadataMap != 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 TableColumn tableColumn = 
columnModel.getColumn(desc.getColumnIndex());
-//                                     tableColumn.setModelIndex(...); 
-                                       
tableColumn.setWidth(desc.getColumnWidth());
+                       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);
                                }
                        }
                }
@@ -168,7 +173,7 @@
                final MyComboBoxModel comboBoxModel = 
(MyComboBoxModel)tableChooser.getModel();
                comboBoxModel.addAndSetSelectedItem(nodeTable);
        }
-       
+
        public void handleEvent(final TableAboutToBeDeletedEvent e) {
                final CyTable cyTable = e.getTable();
                final MyComboBoxModel comboBoxModel = 
(MyComboBoxModel)tableChooser.getModel();

Modified: 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableMetadata.java
===================================================================
--- 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableMetadata.java
      2011-03-29 22:06:17 UTC (rev 24617)
+++ 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableMetadata.java
      2011-03-29 23:22:34 UTC (rev 24618)
@@ -6,6 +6,7 @@
 import java.util.Iterator;
 import java.util.List;
 
+import javax.swing.JTable;
 import javax.swing.table.TableColumn;
 import javax.swing.table.TableColumnModel;
 import javax.swing.table.TableModel;
@@ -14,14 +15,16 @@
 class TableMetadata {
        final List<ColumnDescriptor> columnDescriptors;
 
-       TableMetadata(final TableColumnModel columnModel, final TableModel 
tableModel) {
+       TableMetadata(final TableColumnModel columnModel, final 
BrowserTableModel tableModel) {
+               final JTable table = tableModel.getTable();
                columnDescriptors = new ArrayList<ColumnDescriptor>();
                final Enumeration<TableColumn> tableColumnsEnumeration = 
columnModel.getColumns();
                while (tableColumnsEnumeration.hasMoreElements()) {
                        final TableColumn column = 
tableColumnsEnumeration.nextElement();
                        final int columnIndex = column.getModelIndex();
                        final String columnName = 
tableModel.getColumnName(columnIndex);
-                       columnDescriptors.add(new ColumnDescriptor(columnName, 
columnIndex, column.getWidth()));
+                       final int actualIndex = 
table.convertColumnIndexToView(columnIndex);
+                       columnDescriptors.add(new ColumnDescriptor(columnName, 
actualIndex, column.getWidth()));
                }
        }
 

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