Pārlūkot izejas kodu

Fix Editor not saving values by pressing Enter (#8946)

Fixes #8945
tags/8.1.0.alpha4
Stephen Wellington pirms 7 gadiem
vecāks
revīzija
4c9b6745f0

+ 2
- 2
client/src/main/java/com/vaadin/client/widgets/Grid.java Parādīt failu

@@ -7467,8 +7467,8 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
if (editor.focusedColumnIndexDOM < 0) {
widget = null;
} else {
widget = editor
.getWidget(getColumn(editor.focusedColumnIndexDOM));
widget = editor.getWidget(
getVisibleColumn(editor.focusedColumnIndexDOM));
}

EditorDomEvent<T> editorEvent = new EditorDomEvent<>(

+ 22
- 0
uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridEditorBufferedTest.java Parādīt failu

@@ -63,6 +63,28 @@ public class GridEditorBufferedTest extends GridEditorTest {
getGridElement().getCell(100, 0).getText());
}

@Test
public void testKeyboardSaveWithHiddenColumn() {
selectMenuPath("Component", "Columns", "Column 0", "Hidden");
editRow(100);

WebElement textField = getEditor().getField(5);

textField.click();
// without this, the click in the middle of the field might not be after
// the old text on some browsers
new Actions(getDriver()).sendKeys(Keys.END).perform();

textField.sendKeys(" changed");

// Save from keyboard
new Actions(getDriver()).sendKeys(Keys.ENTER).perform();

assertEditorClosed();
assertEquals("100 changed",
getGridElement().getCell(100, 4).getText());
}

@Test
public void testKeyboardSaveWithInvalidEdition() {
makeInvalidEdition();

+ 22
- 0
uitest/src/test/java/com/vaadin/v7/tests/components/grid/basicfeatures/server/GridEditorBufferedTest.java Parādīt failu

@@ -63,6 +63,28 @@ public class GridEditorBufferedTest extends GridEditorTest {
getGridElement().getCell(100, 0).getText());
}

@Test
public void testKeyboardSaveWithHiddenColumn() {
selectMenuPath("Component", "Columns", "Column 0", "Hidden");
selectMenuPath(EDIT_ITEM_100);

WebElement textField = getEditorWidgets().get(1);

textField.click();
// without this, the click in the middle of the field might not be after
// the old text on some browsers
new Actions(getDriver()).sendKeys(Keys.END).perform();

textField.sendKeys(" changed");

// Save from keyboard
new Actions(getDriver()).sendKeys(Keys.ENTER).perform();

assertEditorClosed();
assertEquals("(100, 2) changed",
getGridElement().getCell(100, 1).getText());
}

@Test
public void testKeyboardSaveWithInvalidEdition() {
makeInvalidEdition();

Notiek ielāde…
Atcelt
Saglabāt