From 487e450c61dd2eeaa32da3ec048dd0efb8fc7aa2 Mon Sep 17 00:00:00 2001 From: Tatu Lund Date: Wed, 26 Jun 2019 13:42:10 +0300 Subject: Adding css class to Editor when on selected row (#11636) * Adding "v-grid-editor-selected" stylename in editor cell wrapper element when Grid is opened on selected row. --- .../main/java/com/vaadin/client/widgets/Grid.java | 9 ++++++++ .../tests/components/grid/GridSelectionTest.java | 24 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/client/src/main/java/com/vaadin/client/widgets/Grid.java b/client/src/main/java/com/vaadin/client/widgets/Grid.java index 4c88879ad1..6537b8642c 100755 --- a/client/src/main/java/com/vaadin/client/widgets/Grid.java +++ b/client/src/main/java/com/vaadin/client/widgets/Grid.java @@ -1908,6 +1908,15 @@ public class Grid extends ResizeComposite implements HasSelectionHandlers, updateBufferedStyleName(); + // Add class name with selected modifier if the editor is being + // opened on selected row, see #11634 + String selectedStylename = styleName + "-selected"; + if (grid.isSelected(grid.getDataSource().getRow(getRow()))) { + cellWrapper.addClassName(selectedStylename); + } else { + cellWrapper.removeClassName(selectedStylename); + } + int frozenColumns = grid.getVisibleFrozenColumnCount(); double frozenColumnsWidth = 0; double cellHeight = 0; diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectionTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectionTest.java index bb9ba916d8..7cdc9a43d0 100644 --- a/uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectionTest.java +++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectionTest.java @@ -38,6 +38,30 @@ public class GridSelectionTest extends GridBasicsTest { assertFalse("row shouldn't remain selected", getRow(0).isSelected()); } + @Test + public void testEditorSelectOnOff() throws Exception { + openTestURL(); + + selectMenuPath("Component", "Editor", "Enabled"); + + selectMenuPath("Component", "Editor", "Edit row 0"); + waitForElementVisible(By.className("v-grid-editor")); + assertFalse("editor should not be selected", editorIsSelected()); + getGridElement().getEditor().cancel(); + + toggleFirstRowSelection(); + selectMenuPath("Component", "Editor", "Edit row 0"); + waitForElementVisible(By.className("v-grid-editor")); + assertTrue("editor should become selected", editorIsSelected()); + getGridElement().getEditor().cancel(); + } + + private boolean editorIsSelected() { + WebElement cellWrapperElement = findElements( + By.className("v-grid-editor-cells")).get(1); + return cellWrapperElement.getAttribute("class").contains("-selected"); + } + @Test public void testSelectOnScrollOffScroll() throws Exception { openTestURL(); -- cgit v1.2.3