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.