Fixes #10146 Fixes #10543tags/8.4.0.alpha1
} | } | ||||
} | } | ||||
@Override | |||||
public void setVisible(boolean visible) { | |||||
if (getEditor().isOpen() && !visible) { | |||||
getEditor().cancel(); | |||||
} | |||||
super.setVisible(visible); | |||||
} | |||||
@Override | |||||
public void detach() { | |||||
if (getEditor().isOpen()) { | |||||
getEditor().cancel(); | |||||
} | |||||
super.detach(); | |||||
} | |||||
} | } |
import java.util.HashMap; | import java.util.HashMap; | ||||
import java.util.Iterator; | import java.util.Iterator; | ||||
import java.util.Map; | import java.util.Map; | ||||
import java.util.Objects; | |||||
import org.jsoup.nodes.Attributes; | import org.jsoup.nodes.Attributes; | ||||
import org.jsoup.nodes.Element; | import org.jsoup.nodes.Element; | ||||
*/ | */ | ||||
private void setSelected(Component component) { | private void setSelected(Component component) { | ||||
Tab tab = tabs.get(selected); | Tab tab = tabs.get(selected); | ||||
if (tab != null && !Objects.equals(tab.getComponent(), component) && tab.getComponent() != null && tab.getComponent().isAttached()) { | |||||
tab.getComponent().detach(); | |||||
tab.getComponent().attach(); // ugly hack | |||||
} | |||||
selected = component; | selected = component; | ||||
// Repaint of the selected component is needed as only the selected | // Repaint of the selected component is needed as only the selected |
editorMenu.addItem("Save", i -> grid.getEditor().save()); | editorMenu.addItem("Save", i -> grid.getEditor().save()); | ||||
editorMenu.addItem("Cancel edit", i -> grid.getEditor().cancel()); | editorMenu.addItem("Cancel edit", i -> grid.getEditor().cancel()); | ||||
editorMenu.addItem("Hide grid", i -> grid.setVisible(false)); | |||||
editorMenu.addItem("Show grid", i -> grid.setVisible(true)); | |||||
Stream.of(0, 5, 100).forEach(i -> editorMenu.addItem("Edit row " + i, | Stream.of(0, 5, 100).forEach(i -> editorMenu.addItem("Edit row " + i, | ||||
menuItem -> grid.getEditor().editRow(i))); | menuItem -> grid.getEditor().editRow(i))); |
*/ | */ | ||||
package com.vaadin.tests.components.grid.basics; | package com.vaadin.tests.components.grid.basics; | ||||
import static org.junit.Assert.assertEquals; | |||||
import static org.junit.Assert.assertFalse; | |||||
import static org.junit.Assert.assertTrue; | |||||
import org.junit.Assert; | import org.junit.Assert; | ||||
import org.junit.Before; | import org.junit.Before; | ||||
import org.junit.Ignore; | import org.junit.Ignore; | ||||
import com.vaadin.testbench.elements.GridElement.GridCellElement; | import com.vaadin.testbench.elements.GridElement.GridCellElement; | ||||
import com.vaadin.testbench.elements.GridElement.GridEditorElement; | import com.vaadin.testbench.elements.GridElement.GridEditorElement; | ||||
import static org.junit.Assert.*; | |||||
public abstract class GridEditorTest extends GridBasicsTest { | public abstract class GridEditorTest extends GridBasicsTest { | ||||
protected static final org.openqa.selenium.By BY_EDITOR_CANCEL = By | protected static final org.openqa.selenium.By BY_EDITOR_CANCEL = By | ||||
assertEditorClosed(); | assertEditorClosed(); | ||||
} | } | ||||
public void testEditorReopenAfterHide() { | |||||
editRow(5); | |||||
assertEditorOpen(); | |||||
selectMenuPath("Component", "Editor", "Hide grid"); | |||||
selectMenuPath("Component", "Editor", "Show grid"); | |||||
assertEditorClosed(); | |||||
editRow(5); | |||||
assertEditorOpen(); | |||||
} | |||||
@Test | @Test | ||||
public void testKeyboardOpeningClosing() { | public void testKeyboardOpeningClosing() { | ||||