Author: ruschein
Date: 2011-04-11 12:38:25 -0700 (Mon, 11 Apr 2011)
New Revision: 24739
Modified:
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
Log:
Untested optimisation hack.
Modified:
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
===================================================================
---
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
2011-04-11 18:56:27 UTC (rev 24738)
+++
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
2011-04-11 19:38:25 UTC (rev 24739)
@@ -287,11 +287,53 @@
@Override
public void handleRowSets(final CyTable table, final List<RowSet>
rowSets) {
+ // The following is an optimisation hack to prevent excessive
calls to
+ // fireTableDataChanged() in the case of multiple selection
events:
+ if (tableHasBooleanSelected) {
+ boolean foundANonSelectedColumnName = false;
+ for (final RowSet rowSet : rowSets) {
+ if
(!rowSet.getColumn().equals(CyNetwork.SELECTED)) {
+ foundANonSelectedColumnName = true;
+ break;
+ }
+ }
+
+ if (!foundANonSelectedColumnName) {
+ fireTableDataChanged();
+ return;
+ }
+ }
+
for (final RowSet rowSet : rowSets)
handleRowValueUpdate(rowSet.getRow(),
rowSet.getColumn(), rowSet.getValue(),
rowSet.getRawValue());
}
+ private void handleRowValueUpdate(final CyRow row, final String
columnName, final Object newValue,
+ final Object newRawValue)
+ {
+ if (tableHasBooleanSelected &&
columnName.equals(CyNetwork.SELECTED)) {
+/*
+ final boolean selected = (Boolean)newValue;
+ final int rowIndex = mapRowToRowIndex(row);
+ if (!selected && rowIndex == -1)
+ return;
+*/
+ fireTableDataChanged();
+ } else {
+ final int rowIndex = mapRowToRowIndex(row);
+ if (rowIndex == -1)
+ return;
+
+ final int columnIndex =
mapColumnNameToColumnIndex(columnName);
+ if (columnIndex == -1)
+ return;
+
+ final TableModelEvent event = new TableModelEvent(this,
rowIndex, rowIndex, columnIndex);
+ fireTableChanged(event);
+ }
+ }
+
@Override
public String getColumnName(final int column) {
return mapColumnIndexToColumnName(column);
@@ -347,31 +389,6 @@
throw new IllegalStateException("We should *never* get here!
(index="+index+", i="+i);
}
- void handleRowValueUpdate(final CyRow row, final String columnName,
final Object newValue,
- final Object newRawValue)
- {
- if (tableHasBooleanSelected &&
columnName.equals(CyNetwork.SELECTED)) {
-/*
- final boolean selected = (Boolean)newValue;
- final int rowIndex = mapRowToRowIndex(row);
- if (!selected && rowIndex == -1)
- return;
-*/
- fireTableDataChanged();
- } else {
- final int rowIndex = mapRowToRowIndex(row);
- if (rowIndex == -1)
- return;
-
- final int columnIndex =
mapColumnNameToColumnIndex(columnName);
- if (columnIndex == -1)
- return;
-
- final TableModelEvent event = new TableModelEvent(this,
rowIndex, rowIndex, columnIndex);
- fireTableChanged(event);
- }
- }
-
@Override
public void setValueAt(final Object value, final int rowIndex, final
int columnIndex) {
final String text = (String)value;
--
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.