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.