summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeemu Suo-Anttila <teemusa@vaadin.com>2015-03-16 11:18:25 +0200
committerVaadin Code Review <review@vaadin.com>2015-03-16 13:39:22 +0000
commitfd700f072fb72113cd559aea60819acc85b0fda5 (patch)
tree90046e131fdf7aa7e15e4e74bec0325ee422183a
parente80f04ade51456e175e9fa7d6f8019f41fa730de (diff)
downloadvaadin-framework-fd700f072fb72113cd559aea60819acc85b0fda5.tar.gz
vaadin-framework-fd700f072fb72113cd559aea60819acc85b0fda5.zip
Fix Grid CellFocusHandler position on DataSource size reset (#16607)
Change-Id: Id02ff612a3f152af5341445bec769a74cfd79cfb
-rw-r--r--client/src/com/vaadin/client/widgets/Grid.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/client/src/com/vaadin/client/widgets/Grid.java b/client/src/com/vaadin/client/widgets/Grid.java
index 8a8aa75e92..cb9e9c55d1 100644
--- a/client/src/com/vaadin/client/widgets/Grid.java
+++ b/client/src/com/vaadin/client/widgets/Grid.java
@@ -2148,10 +2148,12 @@ public class Grid<T> extends ResizeComposite implements
rowWithFocus = removed.getStart() - 1;
} else {
if (escalator.getHeader().getRowCount() > 0) {
- rowWithFocus = lastFocusedHeaderRow;
+ rowWithFocus = Math.min(lastFocusedHeaderRow, escalator
+ .getHeader().getRowCount() - 1);
containerWithFocus = escalator.getHeader();
} else if (escalator.getFooter().getRowCount() > 0) {
- rowWithFocus = lastFocusedFooterRow;
+ rowWithFocus = Math.min(lastFocusedFooterRow, escalator
+ .getFooter().getRowCount() - 1);
containerWithFocus = escalator.getFooter();
}
}
@@ -4571,8 +4573,12 @@ public class Grid<T> extends ResizeComposite implements
if (newSize > oldSize) {
body.insertRows(oldSize, newSize - oldSize);
+ cellFocusHandler.rowsAddedToBody(Range.withLength(oldSize,
+ newSize - oldSize));
} else if (newSize < oldSize) {
body.removeRows(newSize, oldSize - newSize);
+ cellFocusHandler.rowsRemovedFromBody(Range.withLength(
+ newSize, oldSize - newSize));
}
if (newSize > 0) {