summaryrefslogtreecommitdiffstats
path: root/uitest/src/com
diff options
context:
space:
mode:
authorPekka Hyvönen <pekka@vaadin.com>2015-03-13 12:20:30 +0200
committerPekka Hyvönen <pekka@vaadin.com>2015-03-13 12:59:42 +0000
commit54d6480a3cbd6d721dc119a7f6c5c029b7dcefea (patch)
tree1fcce0d7cf05b4131a1104b8b5b48fa2fbf30757 /uitest/src/com
parentf091f9ff68e1d3b1c06c8e78b33cd07ccf480f9f (diff)
downloadvaadin-framework-54d6480a3cbd6d721dc119a7f6c5c029b7dcefea.tar.gz
vaadin-framework-54d6480a3cbd6d721dc119a7f6c5c029b7dcefea.zip
Client side event for grid's columns visibility change (#17023)
Change-Id: I1965ca6c298366d89b1940a992788d042cf7a4aa
Diffstat (limited to 'uitest/src/com')
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridColumnHidingTest.java46
-rw-r--r--uitest/src/com/vaadin/tests/widgetset/client/grid/GridBasicClientFeaturesWidget.java42
2 files changed, 88 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridColumnHidingTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridColumnHidingTest.java
index b4593dac28..6d38c25fb6 100644
--- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridColumnHidingTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridColumnHidingTest.java
@@ -15,8 +15,13 @@
*/
package com.vaadin.tests.components.grid.basicfeatures;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
import org.junit.Before;
import org.junit.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebElement;
import com.vaadin.testbench.parallel.TestCategory;
@@ -81,6 +86,47 @@ public class GridColumnHidingTest extends GridBasicClientFeaturesTest {
assertColumnHeaderOrder(0, 1, 2, 3, 4, 5, 6);
}
+ @Test
+ public void testColumnHiding_onVisibilityChange_triggersClientSideEvent() {
+ assertColumnHeaderOrder(0, 1, 2, 3, 4);
+ selectMenuPath("Component", "Internals", "Listeners",
+ "Add Column Visibility Change listener");
+
+ toggleHideColumn(2);
+ assertColumnHeaderOrder(0, 1, 3, 4);
+
+ WebElement webElement = findElement(By.id("columnvisibility"));
+ int counter = Integer.parseInt(webElement.getAttribute("counter"));
+ int columnIndex = Integer.parseInt(webElement
+ .getAttribute("columnindex"));
+ boolean userOriginated = Boolean.parseBoolean(webElement
+ .getAttribute("useroriginated"));
+ boolean hidden = Boolean.parseBoolean(webElement
+ .getAttribute("ishidden"));
+
+ assertNotNull("no event fired", webElement);
+ assertEquals(1, counter);
+ assertEquals(2, columnIndex);
+ assertEquals(false, userOriginated);
+ assertEquals(true, hidden);
+
+ toggleHideColumn(2);
+ assertColumnHeaderOrder(0, 1, 2, 3, 4);
+
+ webElement = findElement(By.id("columnvisibility"));
+ counter = Integer.parseInt(webElement.getAttribute("counter"));
+ columnIndex = Integer.parseInt(webElement.getAttribute("columnIndex"));
+ userOriginated = Boolean.parseBoolean(webElement
+ .getAttribute("userOriginated"));
+ hidden = Boolean.parseBoolean(webElement.getAttribute("ishidden"));
+
+ assertNotNull("no event fired", webElement);
+ assertEquals(2, counter);
+ assertEquals(2, columnIndex);
+ assertEquals(false, userOriginated);
+ assertEquals(false, hidden);
+ }
+
private void toggleHideColumn(int columnIndex) {
selectMenuPath("Component", "Columns", "Column " + columnIndex,
"Hidden");
diff --git a/uitest/src/com/vaadin/tests/widgetset/client/grid/GridBasicClientFeaturesWidget.java b/uitest/src/com/vaadin/tests/widgetset/client/grid/GridBasicClientFeaturesWidget.java
index 5ec8058ae9..9131a2bdbe 100644
--- a/uitest/src/com/vaadin/tests/widgetset/client/grid/GridBasicClientFeaturesWidget.java
+++ b/uitest/src/com/vaadin/tests/widgetset/client/grid/GridBasicClientFeaturesWidget.java
@@ -57,6 +57,8 @@ import com.vaadin.client.widget.grid.events.BodyKeyPressHandler;
import com.vaadin.client.widget.grid.events.BodyKeyUpHandler;
import com.vaadin.client.widget.grid.events.ColumnReorderEvent;
import com.vaadin.client.widget.grid.events.ColumnReorderHandler;
+import com.vaadin.client.widget.grid.events.ColumnVisibilityChangeEvent;
+import com.vaadin.client.widget.grid.events.ColumnVisibilityChangeHandler;
import com.vaadin.client.widget.grid.events.FooterKeyDownHandler;
import com.vaadin.client.widget.grid.events.FooterKeyPressHandler;
import com.vaadin.client.widget.grid.events.FooterKeyUpHandler;
@@ -471,6 +473,46 @@ public class GridBasicClientFeaturesWidget extends
});
}
}, listenersPath);
+ addMenuCommand("Add Column Visibility Change listener",
+ new ScheduledCommand() {
+ private HandlerRegistration columnVisibilityHandler = null;
+
+ @Override
+ public void execute() {
+ if (columnVisibilityHandler != null) {
+ return;
+ }
+ final Label columnOrderLabel = new Label();
+ columnOrderLabel.getElement().setId("columnvisibility");
+ addLineEnd(columnOrderLabel, 250);
+ ColumnVisibilityChangeHandler handler = new ColumnVisibilityChangeHandler<List<Data>>() {
+
+ private int eventIndex = 0;
+
+ @Override
+ public void onVisibilityChange(
+ ColumnVisibilityChangeEvent<List<Data>> event) {
+ columnOrderLabel.getElement().setAttribute(
+ "counter", "" + (++eventIndex));
+ columnOrderLabel.getElement().setAttribute(
+ "useroriginated",
+ (Boolean.toString(event
+ .isUserOriginated())));
+ columnOrderLabel.getElement().setAttribute(
+ "ishidden",
+ (Boolean.toString(event.isHidden())));
+ columnOrderLabel.getElement().setAttribute(
+ "columnindex",
+ ""
+ + grid.getColumns().indexOf(
+ event.getColumn()));
+ }
+ };
+
+ columnVisibilityHandler = grid
+ .addColumnVisibilityChangeHandler(handler);
+ }
+ }, listenersPath);
}
private void createStateMenu() {