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.

Reply via email to