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.