Refactor selection in CellList to allow targeted overriding of selection behavior. This is the absolute smallest change possible to allow custom selection management without duplication of logic.
Review by: jlabanca@google.com
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8895 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/cellview/client/CellList.java b/user/src/com/google/gwt/user/cellview/client/CellList.java
index 7eaaa66..df4c0fb 100644
--- a/user/src/com/google/gwt/user/cellview/client/CellList.java
+++ b/user/src/com/google/gwt/user/cellview/client/CellList.java
@@ -257,6 +257,13 @@
return cell.dependsOnSelection();
}
+ protected void doSelection(Event event, T value, int indexOnPage) {
+ SelectionModel<? super T> selectionModel = getSelectionModel();
+ if (selectionModel != null) {
+ selectionModel.setSelected(value, true);
+ }
+ }
+
/**
* Fire an event to the cell.
*
@@ -349,9 +356,8 @@
return;
}
T value = getDisplayedItem(indexOnPage);
- SelectionModel<? super T> selectionModel = getSelectionModel();
- if (selectionModel != null && isMouseDown && !cell.handlesSelection()) {
- selectionModel.setSelected(value, true);
+ if (isMouseDown && !cell.handlesSelection()) {
+ doSelection(event, value, indexOnPage);
}
// Focus on the cell.