Revision: 9454
Author: jlaba...@google.com
Date: Thu Dec 16 07:24:08 2010
Log: Cherry picking r9453 into release branch.
http://code.google.com/p/google-web-toolkit/source/detail?r=9454
Modified:
/releases/2.1/user/src/com/google/gwt/user/cellview/client/CellList.java
/releases/2.1/user/src/com/google/gwt/user/cellview/client/CellTable.java
/releases/2.1/user/test/com/google/gwt/user/cellview/client/AbstractHasDataTestBase.java
=======================================
---
/releases/2.1/user/src/com/google/gwt/user/cellview/client/CellList.java
Wed Dec 1 07:51:56 2010
+++
/releases/2.1/user/src/com/google/gwt/user/cellview/client/CellList.java
Thu Dec 16 07:24:08 2010
@@ -340,7 +340,7 @@
protected Element getKeyboardSelectedElement() {
// Do not use getRowElement() because that will flush the presenter.
int rowIndex = getKeyboardSelectedRow();
- if (childContainer.getChildCount() > rowIndex) {
+ if (rowIndex >= 0 && childContainer.getChildCount() > rowIndex) {
return childContainer.getChild(rowIndex).cast();
}
return null;
=======================================
---
/releases/2.1/user/src/com/google/gwt/user/cellview/client/CellTable.java
Wed Dec 1 07:51:56 2010
+++
/releases/2.1/user/src/com/google/gwt/user/cellview/client/CellTable.java
Thu Dec 16 07:24:08 2010
@@ -869,7 +869,7 @@
// Do not use getRowElement() because that will flush the presenter.
int rowIndex = getKeyboardSelectedRow();
NodeList<TableRowElement> rows = tbody.getRows();
- if (rowIndex < rows.getLength() && columns.size() > 0) {
+ if (rowIndex >= 0 && rowIndex < rows.getLength() && columns.size() >
0) {
TableRowElement tr = rows.getItem(rowIndex);
TableCellElement td = tr.getCells().getItem(keyboardSelectedColumn);
return getCellParent(td);
=======================================
---
/releases/2.1/user/test/com/google/gwt/user/cellview/client/AbstractHasDataTestBase.java
Wed Dec 1 07:51:56 2010
+++
/releases/2.1/user/test/com/google/gwt/user/cellview/client/AbstractHasDataTestBase.java
Thu Dec 16 07:24:08 2010
@@ -25,6 +25,7 @@
import com.google.gwt.regexp.shared.MatchResult;
import com.google.gwt.regexp.shared.RegExp;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
+import
com.google.gwt.user.cellview.client.HasKeyboardSelectionPolicy.KeyboardSelectionPolicy;
import com.google.gwt.user.client.Window;
import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.Range;
@@ -144,6 +145,21 @@
assertEquals("test 11", items.get(1));
assertEquals("test 12", items.get(2));
}
+
+ /**
+ * Test that we don't get any errors when keyboard selection is disabled.
+ */
+ public void testKeyboardSelectionPolicyDisabled() {
+ AbstractHasData<String> display = createAbstractHasData(new
TextCell());
+ display.setRowData(createData(0, 10));
+ display.getPresenter().flush();
+ display.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
+
+ assertNull(display.getKeyboardSelectedElement());
+ display.resetFocusOnCell();
+ display.setAccessKey('a');
+ display.setTabIndex(1);
+ }
public void testResetFocus() {
IndexCell<String> cell = new IndexCell<String>();
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors