Author: jm
Date: 2012-08-10 08:09:13 -0700 (Fri, 10 Aug 2012)
New Revision: 30156
Modified:
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTable.java
Log:
Fixes #1351: Fixed an index mapping error between visible columns and full set
of columns
Modified:
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTable.java
===================================================================
---
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTable.java
2012-08-10 04:51:16 UTC (rev 30155)
+++
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTable.java
2012-08-10 15:09:13 UTC (rev 30156)
@@ -175,7 +175,7 @@
popupMenuHelper.createTableCellMenu(cyColumn, primaryKeyValue, table, e.getX(),
e.getY());
} else if (SwingUtilities.isLeftMouseButton(e)
&& (getSelectedRows().length != 0)) {
// Display List menu.
- showListContents(e);
+ showListContents(row, column, e);
}
}
@@ -322,16 +322,13 @@
return false;
}
- public void showListContents(MouseEvent e) {
-
- final int column = this.getSelectedColumn();
- final int row = this.getSelectedRow();
-
+ public void showListContents(int row, int visibleColumnIndex,
MouseEvent e) {
final BrowserTableModel model = (BrowserTableModel) getModel();
- final Class<?> columnType = model.getColumn(column).getType();
+ final Class<?> columnType =
model.getColumn(visibleColumnIndex).getType();
if (columnType == List.class) {
- final ValidatedObjectAndEditString value =
(ValidatedObjectAndEditString) model.getValueAt(row, column);
+ int modelColumn =
getModelColumnIndex(visibleColumnIndex);
+ final ValidatedObjectAndEditString value =
(ValidatedObjectAndEditString) model.getValueAt(row, modelColumn);
if (value != null) {
final List<?> list = (List<?>)
value.getValidatedObject();
@@ -343,6 +340,21 @@
}
}
+ private int getModelColumnIndex(int visibleColumnIndex) {
+ final BrowserTableModel model = (BrowserTableModel) getModel();
+ int visibleIndex = -1;
+ for (int i = 0; i < model.getColumnCount(); i++) {
+ String name = model.getColumnName(i);
+ if (model.isColumnVisible(name)) {
+ visibleIndex++;
+ }
+ if (visibleIndex == visibleColumnIndex) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
private void getCellContentView(final Class<?> type, final List<?>
listItems, final String borderTitle,
final MouseEvent e) {
--
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.