aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java b/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java
index 18efae185e..497e96c51c 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java
@@ -828,6 +828,15 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
if (!focusedRow.isAttached()) {
// focused row has orphaned, can't focus
focusedRow = null;
+ if (SELECT_MODE_SINGLE == selectMode
+ && selectedRowKeys.size() > 0) {
+ // try to focusa row currently selected and in viewport
+ String selectedRowKey = selectedRowKeys.iterator().next();
+ if (selectedRowKey != null) {
+ setRowFocus(getRenderedRowByKey(selectedRowKey));
+ }
+ }
+ // TODO what should happen in multiselect mode?
} else {
setRowFocus(getRenderedRowByKey(focusedRow.getKey()));
}