Author: rozagh
Date: 2012-03-14 11:51:10 -0700 (Wed, 14 Mar 2012)
New Revision: 28534

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:
Selecting node from table did not update the selected and unselected nodes 
correctly. Added the RemoveRowSelectionInterval to handle event (bulkupdate) 
for SetRowEvent. 

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-03-14 18:04:26 UTC (rev 28533)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTable.java
  2012-03-14 18:51:10 UTC (rev 28534)
@@ -142,7 +142,7 @@
 
                // Event handler. Define actions when mouse is clicked.
                addMouseListener(new MouseAdapter() {
-                               public void mouseClicked(MouseEvent e) {
+                               public void mouseClicked(MouseEvent e) {        
                                
                                        final int column = 
getColumnModel().getColumnIndexAtX(e.getX());
                                        final int row = e.getY() / 
getRowHeight();
 
@@ -192,7 +192,9 @@
                                                        if (url != null)
                                                                
openBrowser.openURL(url.toString());
                                                }
+
                                        }
+                                       
                                } // mouseClicked
 
                                @Override
@@ -209,6 +211,7 @@
        
        
        private void selectFromTable() {
+
                final TableModel model = this.getModel();
                if(model instanceof BrowserTableModel == false)
                        return;
@@ -242,12 +245,10 @@
                for(CyRow row: allRows) {
                        final Boolean val = row.get(CyNetwork.SELECTED, 
Boolean.class);
                        if(targetRows.contains(row)) {
-                               System.out.println("=======> selected: " + 
row.get(CyTableEntry.NAME, String.class));
                                row.set(CyNetwork.SELECTED, true);
                                continue;
                        }
                        if(val) {
-                               System.out.println("=======> UNSELECTED: " + 
row.get(CyTableEntry.NAME, String.class));
                                row.set(CyNetwork.SELECTED, false);
                        }
                }
@@ -346,6 +347,7 @@
         *  Display elements in the list objects.
         */
        public void showListContents(MouseEvent e) {
+               
                final int column = this.getSelectedColumn();
                final int row = this.getSelectedRow();
 

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
     2012-03-14 18:04:26 UTC (rev 28533)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
     2012-03-14 18:51:10 UTC (rev 28534)
@@ -374,10 +374,18 @@
                        }
                }
                
-               final Map<Long, Boolean> suidMap = new HashMap<Long, Boolean>();
+               final Map<Long, Boolean> suidMapSelected = new HashMap<Long, 
Boolean>();
+               final Map<Long, Boolean> suidMapUnselected = new HashMap<Long, 
Boolean>();
+
                for(RowSetRecord rowSetRecord : rows) {
-                       if(rowSetRecord.getColumn().equals(CyNetwork.SELECTED) 
&& ((Boolean)rowSetRecord.getValue()) == true)
-                               
suidMap.put(rowSetRecord.getRow().get(CyTableEntry.SUID, Long.class), (Boolean) 
rowSetRecord.getValue());
+                       if(rowSetRecord.getColumn().equals(CyNetwork.SELECTED)){
+                               if(((Boolean)rowSetRecord.getValue()) == true){
+                                       
suidMapSelected.put(rowSetRecord.getRow().get(CyTableEntry.SUID, Long.class), 
(Boolean) rowSetRecord.getValue());
+                               }
+                               else{
+                                       
suidMapUnselected.put(rowSetRecord.getRow().get(CyTableEntry.SUID, Long.class), 
(Boolean) rowSetRecord.getValue());
+                               }
+                       }
                }
                
                final int rowCount = table.getRowCount();
@@ -390,9 +398,14 @@
                        } catch (NumberFormatException nfe) {
                                System.out.println("Error parsing long from 
table " + table.getName() + ": " + nfe.getMessage());
                        }
-                       if(pk != null && suidMap.keySet().contains(pk)) {
-                               table.addRowSelectionInterval(i, i);
-                               table.addColumnSelectionInterval(0, 
table.getColumnCount() - 1);
+                       if(pk != null) {
+                               if (suidMapSelected.keySet().contains(pk)){
+                                       table.addRowSelectionInterval(i, i);
+                                       table.addColumnSelectionInterval(0, 
table.getColumnCount() - 1);
+                               }else if 
(suidMapUnselected.keySet().contains(pk)){
+                                       table.removeRowSelectionInterval(i, i);
+                               }
+                               
                        }
                }
        }
@@ -400,6 +413,8 @@
        private void handleRowValueUpdate(final CyRow row, final String 
columnName, final Object newValue,
                        final Object newRawValue) {
                if (regularViewMode && columnName.equals(CyNetwork.SELECTED)) {
+                       System.out.println("in handle row value updated for 
selected");
+
                        fireTableDataChanged();
                } 
        }

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