summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorTeemu Suo-Anttila <teemusa@vaadin.com>2016-09-08 16:46:35 +0300
committerVaadin Code Review <review@vaadin.com>2016-09-12 07:41:18 +0000
commitc3af8b1873d77afb279453cd997ed75be4771ed8 (patch)
tree9c626ec35812209ac67dfc7b590dfc4191f45bf0 /uitest
parentddfafb7388c4f1f37034620c34e75e5d995257f7 (diff)
downloadvaadin-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.java32
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicDetailsTest.java22
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"));
+ }
+
}