From a562635f09cbb9d7a7d550a7429de754609bc384 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 18 May 2015 23:40:25 +0300 Subject: [PATCH] Only sort when enter is pressed on default header (#16732) Change-Id: I3bae7c341064f26c6be3c9b66b33239716043fec --- .../src/com/vaadin/client/widgets/Grid.java | 9 ++++--- .../basicfeatures/server/GridSortingTest.java | 27 +++++++++++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/client/src/com/vaadin/client/widgets/Grid.java b/client/src/com/vaadin/client/widgets/Grid.java index 07074eeddf..53e0566e8d 100644 --- a/client/src/com/vaadin/client/widgets/Grid.java +++ b/client/src/com/vaadin/client/widgets/Grid.java @@ -5056,9 +5056,12 @@ public class Grid extends ResizeComposite implements if (event.getNativeKeyCode() != KeyCodes.KEY_ENTER) { return; } - - sorter.sort(event.getFocusedCell().getColumn(), - event.isShiftKeyDown()); + if (getHeader().getRow(event.getFocusedCell().getRowIndex()) + .isDefault()) { + // Only sort for enter on the default header + sorter.sort(event.getFocusedCell().getColumn(), + event.isShiftKeyDown()); + } } }); diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridSortingTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridSortingTest.java index b06644f0c8..cff8ade054 100644 --- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridSortingTest.java +++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridSortingTest.java @@ -212,6 +212,33 @@ public class GridSortingTest extends GridBasicFeaturesTest { new Actions(getDriver()).keyUp(key).perform(); } + @Test + public void testKeyboardSortingMultipleHeaders() { + openTestURL(); + selectMenuPath("Component", "Header", "Append row"); + + // Sort according to first column by clicking + getGridElement().getHeaderCell(0, 0).click(); + assertColumnIsSorted(0); + + // Try to sort according to second column by pressing enter on the new + // header + sendKey(Keys.ARROW_RIGHT); + sendKey(Keys.ARROW_DOWN); + sendKey(Keys.ENTER); + + // Should not have sorted + assertColumnIsSorted(0); + + // Sort using default header + sendKey(Keys.ARROW_UP); + sendKey(Keys.ENTER); + + // Should have sorted + assertColumnIsSorted(1); + + } + @Test public void testKeyboardSorting() { openTestURL(); -- 2.39.5