]> source.dussan.org Git - vaadin-framework.git/commitdiff
Adding css class to Editor when on selected row (#11636)
authorTatu Lund <tatu@vaadin.com>
Wed, 26 Jun 2019 10:42:10 +0000 (13:42 +0300)
committerZhe Sun <31067185+ZheSun88@users.noreply.github.com>
Wed, 26 Jun 2019 10:42:10 +0000 (13:42 +0300)
* Adding "v-grid-editor-selected" stylename in editor cell wrapper element when Grid is opened on selected row.

client/src/main/java/com/vaadin/client/widgets/Grid.java
uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectionTest.java

index 4c88879ad10cc0a9246f102e9a074738e887b0e8..6537b8642c58b0eab7ea0340f9faae1b7957b0b0 100755 (executable)
@@ -1908,6 +1908,15 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
 
             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;
index bb9ba916d883c1e233d69ec0728b5d7a22ba296b..7cdc9a43d0c3557eac4a7fee8b078399fcbc6138 100644 (file)
@@ -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();