]> source.dussan.org Git - vaadin-framework.git/commitdiff
#6367 - Allow keyboard navigation again after sorting a table
authorJonatan Kronqvist <jonatan.kronqvist@itmill.com>
Wed, 6 Apr 2011 12:39:38 +0000 (12:39 +0000)
committerJonatan Kronqvist <jonatan.kronqvist@itmill.com>
Wed, 6 Apr 2011 12:39:38 +0000 (12:39 +0000)
svn changeset:18130/svn branch:6.5

src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java

index a627f5d2044b274ae93280a1fe239e8c13c83bde..e14450003f5b8eebb4734492fd6512ab95bdb879 100644 (file)
@@ -1810,14 +1810,17 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
             // ensure no clipping initially (problem on column additions)
             DOM.setStyleAttribute(captionContainer, "overflow", "visible");
 
-            DOM.sinkEvents(captionContainer, Event.MOUSEEVENTS);
+            DOM.sinkEvents(captionContainer, Event.MOUSEEVENTS
+                    | Event.KEYEVENTS);
 
             DOM.appendChild(td, captionContainer);
 
-            DOM.sinkEvents(td, Event.MOUSEEVENTS);
+            DOM.sinkEvents(td, Event.MOUSEEVENTS | Event.KEYEVENTS);
 
             setElement(td);
 
+            getElement().setTabIndex(-1);
+
             setAlign(ALIGN_LEFT);
         }
 
@@ -2066,11 +2069,19 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
                     updateFloatingCopysPosition(DOM.eventGetClientX(event), -1);
                 }
                 break;
+            case Event.ONKEYDOWN:
+                focusFirstRow();
+                break;
             default:
                 break;
             }
         }
 
+        private void focusFirstRow() {
+            setRowFocus(scrollBody.getRowByRowIndex(firstRowInViewPort));
+            focusedRow.toggleSelection();
+        }
+
         private void onResizeEvent(Event event) {
             switch (DOM.eventGetType(event)) {
             case Event.ONMOUSEDOWN: