Update:
We've used the code here as the basis for our LiveGrid implementation.
Building on the onKeyUp() and onKeyDown() methods in the LiveGridSelectionModel of the linked source and the onKeyPress() method in GridSelectionModel, I've created the following in the LiveGridSelectionModel:
Code:
public void pageUp() {
if (!hasPrevious()) {
int visibleRowCount = gridView.getVisibleRowCount();
gridView.scrollUpBy(visibleRowCount);
}
select(0, false);
gridView.focusRow(0);
}
public void pageDown() {
if (!hasNext()) {
int visibleRowCount = gridView.getVisibleRowCount();
gridView.scrollDownBy(visibleRowCount);
}
int idx = listStore.indexOf(listStore.getAt(listStore.getCount() - 1));
select(idx, false);
gridView.focusRow(idx);
}
While this works, it does not update the vertical scroll bar on the grid, which gets out of sync pretty quickly when navigating the result set. For what it's worth, we observe the same issue when just using the up and down arrows.
Any ideas?