diff options
author | Teemu Suo-Anttila <teemusa@vaadin.com> | 2016-09-08 16:46:35 +0300 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2016-09-12 07:41:18 +0000 |
commit | c3af8b1873d77afb279453cd997ed75be4771ed8 (patch) | |
tree | 9c626ec35812209ac67dfc7b590dfc4191f45bf0 /uitest | |
parent | ddfafb7388c4f1f37034620c34e75e5d995257f7 (diff) | |
download | vaadin-framework-c3af8b1873d77afb279453cd997ed75be4771ed8.tar.gz vaadin-framework-c3af8b1873d77afb279453cd997ed75be4771ed8.zip |
Add ItemClick events to Grid
Change-Id: I9d761245e99cde62d0e56b89e5cbb0398fd4c363
Diffstat (limited to 'uitest')
-rw-r--r-- | uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java | 32 | ||||
-rw-r--r-- | uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicDetailsTest.java | 22 |
2 files changed, 52 insertions, 2 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java b/uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java index 8c4aa4eec0..c82a434e23 100644 --- a/uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java +++ b/uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java @@ -11,16 +11,17 @@ import java.util.stream.Stream; import com.vaadin.annotations.Widgetset; import com.vaadin.data.selection.SingleSelection; import com.vaadin.server.VaadinRequest; +import com.vaadin.shared.Registration; import com.vaadin.shared.ui.grid.HeightMode; import com.vaadin.tests.components.AbstractTestUIWithLog; import com.vaadin.ui.Button; import com.vaadin.ui.Component; -import com.vaadin.ui.CssLayout; import com.vaadin.ui.Grid; import com.vaadin.ui.Grid.DetailsGenerator; import com.vaadin.ui.Grid.StyleGenerator; import com.vaadin.ui.Label; import com.vaadin.ui.MenuBar; +import com.vaadin.ui.MenuBar.Command; import com.vaadin.ui.MenuBar.MenuItem; import com.vaadin.ui.Notification; import com.vaadin.ui.Panel; @@ -49,7 +50,7 @@ public class GridBasics extends AbstractTestUIWithLog { @Override public Component apply(DataObject dataObj) { - CssLayout cssLayout = new CssLayout(); + VerticalLayout cssLayout = new VerticalLayout(); cssLayout.setHeight("200px"); cssLayout.setWidth("100%"); @@ -201,6 +202,33 @@ public class GridBasics extends AbstractTestUIWithLog { + t.getRowNumber() + ", Column 0" : null))) .setCheckable(true); + stateMenu.addItem("Item click listener", new Command() { + + private Registration registration = null; + + @Override + public void menuSelected(MenuItem selectedItem) { + removeRegistration(); + if (selectedItem.isChecked()) { + registration = grid.addItemClickListener(e -> { + grid.setDetailsVisible(e.getItem(), + !grid.isDetailsVisible(e.getItem())); + log("Item click on row " + e.getItem().getRowNumber() + + ", Column '" + e.getColumn().getCaption() + + "'"); + }); + log("Registered an item click listener."); + } + } + + private void removeRegistration() { + if (registration != null) { + registration.remove(); + registration = null; + log("Removed an item click listener."); + } + } + }).setCheckable(true); } private void createRowStyleMenu(MenuItem rowStyleMenu) { diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicDetailsTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicDetailsTest.java index a0f36703da..c1f28e27cf 100644 --- a/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicDetailsTest.java +++ b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicDetailsTest.java @@ -298,4 +298,26 @@ public class GridBasicDetailsTest extends GridBasicsTest { assertFalse(logContainsText("AssertionError")); } + @Test + public void testOpenDetailsWithItemClickHandler() { + selectMenuPath(DETAILS_GENERATOR_PERSISTING); + selectMenuPath("Component", "State", "Item click listener"); + assertTrue("No item click listener registered", + logContainsText("Registered an item click listener.")); + getGridElement().getCell(0, 1).click(); + assertTrue("Details should open on click", + getGridElement().getDetails(0).getText().contains("One")); + assertTrue("Item click listener should log itself", + logContainsText("Item click on row 0, Column 'Column 1'")); + + selectMenuPath("Component", "State", "Item click listener"); + assertTrue("No removal of item click listener logged", + logContainsText("Removed an item click listener.")); + + getGridElement().getCell(0, 1).click(); + assertTrue( + "Details should remain open, no item click listener to hide it", + getGridElement().getDetails(0).getText().contains("One")); + } + } |