Author: kono
Date: 2011-10-07 17:08:57 -0700 (Fri, 07 Oct 2011)
New Revision: 27097

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/BrowserTableModel.java
Log:
fixes #423 Broken internal index had been fixed.  Now it returns correct result 
even after sorting.

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
  2011-10-07 21:37:15 UTC (rev 27096)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTable.java
  2011-10-08 00:08:57 UTC (rev 27097)
@@ -57,6 +57,7 @@
 import org.cytoscape.model.CyColumn;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyRow;
+import org.cytoscape.model.CyTableEntry;
 import org.cytoscape.util.swing.OpenBrowser;
 import org.cytoscape.view.model.CyNetworkView;
 import org.slf4j.Logger;
@@ -220,17 +221,26 @@
                final int selectedRowCount = getSelectedRowCount();
                
                //TODO: performance tuning
+               final int columnCount = this.getColumnCount();
+               int colIdx;
+               for(colIdx=0; colIdx<columnCount; colIdx++) {
+                       final String colName = this.getColumnName(colIdx);
+                       if(colName.equals(CyTableEntry.SUID))
+                               break;
+               }
+               
                final Set<CyRow> targetRows = new HashSet<CyRow>();
-               for(int i=0; i<selectedRowCount; i++)
-                       targetRows.add(btModel.getRow(rowsSelected[i]));
-               
+               for(int i=0; i<selectedRowCount; i++) {
+                       ValidatedObjectAndEditString selected = 
(ValidatedObjectAndEditString) this.getValueAt(rowsSelected[i], colIdx);
+                       
targetRows.add(btModel.getRow(selected.getValidatedObject()));
+               }
                // Clear selection
                List<CyRow> allRows = btModel.getDataTable().getAllRows();
                for(CyRow row: allRows) {
                        final Boolean val = row.get(CyNetwork.SELECTED, 
Boolean.class);
                        if(targetRows.contains(row)) {
-                               if(!val)
-                                       row.set(CyNetwork.SELECTED, true);
+//                             System.out.println("=======> selected: " + 
row.get(CyTableEntry.NAME, String.class));
+                               row.set(CyNetwork.SELECTED, true);
                                continue;
                        }
                        if(val)

Modified: 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
     2011-10-07 21:37:15 UTC (rev 27096)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
     2011-10-08 00:08:57 UTC (rev 27097)
@@ -181,7 +181,6 @@
                                        cyRow = selectedRow;
                                        break;
                                }
-
                                ++count;
                        }
 
@@ -448,8 +447,8 @@
                return cellVect;
        }
        
-       CyRow getRow(final int rowIndex) {
-               return mapRowIndexToRow(rowIndex);
+       CyRow getRow(final Object suid) {
+               return dataTable.getRow(suid);
        }
        
        @Override

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