aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src
diff options
context:
space:
mode:
authorTeemu Suo-Anttila <teemusa@vaadin.com>2015-05-26 11:47:39 +0300
committerVaadin Code Review <review@vaadin.com>2015-05-26 12:26:55 +0000
commit90b6f7dcab2758b1f026af60a58982bc0cfaff22 (patch)
treec8339ebe8e405f7ea43d9e463eeedd49d57effc9 /uitest/src
parentac92875a94262e0801052a35b964213f5ee37148 (diff)
downloadvaadin-framework-90b6f7dcab2758b1f026af60a58982bc0cfaff22.tar.gz
vaadin-framework-90b6f7dcab2758b1f026af60a58982bc0cfaff22.zip
Split AbstractGridExtension from AbstractRenderer (#18003)
Change-Id: Ibe5766cde606091ce2bd58055472fa7cf3f21374
Diffstat (limited to 'uitest/src')
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridExtensionCommunication.java69
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridExtensionCommunicationTest.java45
-rw-r--r--uitest/src/com/vaadin/tests/widgetset/client/grid/GridClickExtensionConnector.java67
3 files changed, 181 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridExtensionCommunication.java b/uitest/src/com/vaadin/tests/components/grid/GridExtensionCommunication.java
new file mode 100644
index 0000000000..181c9cae8d
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/grid/GridExtensionCommunication.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2000-2014 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.components.grid;
+
+import com.vaadin.annotations.Widgetset;
+import com.vaadin.data.Item;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.tests.components.AbstractTestUIWithLog;
+import com.vaadin.tests.widgetset.TestingWidgetSet;
+import com.vaadin.tests.widgetset.client.grid.GridClickExtensionConnector.GridClickServerRpc;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.Grid.AbstractGridExtension;
+import com.vaadin.ui.Grid.Column;
+import com.vaadin.ui.Grid.SelectionMode;
+
+@Widgetset(TestingWidgetSet.NAME)
+public class GridExtensionCommunication extends AbstractTestUIWithLog {
+
+ public class GridClickExtension extends AbstractGridExtension {
+
+ public GridClickExtension(Grid grid) {
+ super(grid);
+ registerRpc(new GridClickServerRpc() {
+
+ @Override
+ public void click(String row, String column,
+ MouseEventDetails click) {
+ Object itemId = getItemId(row);
+ Column col = getColumn(column);
+
+ Item person = getParentGrid().getContainerDataSource()
+ .getItem(itemId);
+
+ log("Click on Person "
+ + person.getItemProperty("firstName").getValue()
+ + " "
+ + person.getItemProperty("lastName").getValue()
+ + " on column " + col.toString());
+ log("MouseEventDetails: " + click.getButtonName() + " ("
+ + click.getClientX() + ", " + click.getClientY()
+ + ")");
+ }
+ });
+ }
+ }
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ Grid grid = new PersonTestGrid(50);
+ grid.setSelectionMode(SelectionMode.NONE);
+ new GridClickExtension(grid);
+ addComponent(grid);
+ }
+
+}
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridExtensionCommunicationTest.java b/uitest/src/com/vaadin/tests/components/grid/GridExtensionCommunicationTest.java
new file mode 100644
index 0000000000..9fd35fe3e9
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/grid/GridExtensionCommunicationTest.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2000-2014 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.components.grid;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+import com.vaadin.testbench.elements.GridElement;
+import com.vaadin.testbench.elements.GridElement.GridCellElement;
+import com.vaadin.tests.tb3.SingleBrowserTest;
+
+public class GridExtensionCommunicationTest extends SingleBrowserTest {
+
+ @Test
+ public void testMouseClickIsSentToExtension() {
+ openTestURL();
+
+ GridCellElement cell = $(GridElement.class).first().getCell(0, 4);
+ cell.click(5, 5);
+
+ int expectedX = cell.getLocation().getX() + 5;
+ int expectedY = cell.getLocation().getY() + 5;
+
+ assertEquals(
+ "1. Click on Person Nina Brown on column Column[propertyId:gender]",
+ getLogRow(1));
+ assertEquals("2. MouseEventDetails: left (" + expectedX + ", "
+ + expectedY + ")", getLogRow(0));
+
+ }
+}
diff --git a/uitest/src/com/vaadin/tests/widgetset/client/grid/GridClickExtensionConnector.java b/uitest/src/com/vaadin/tests/widgetset/client/grid/GridClickExtensionConnector.java
new file mode 100644
index 0000000000..64020683f6
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/widgetset/client/grid/GridClickExtensionConnector.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2000-2014 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.widgetset.client.grid;
+
+import com.vaadin.client.MouseEventDetailsBuilder;
+import com.vaadin.client.ServerConnector;
+import com.vaadin.client.connectors.GridConnector;
+import com.vaadin.client.extensions.AbstractExtensionConnector;
+import com.vaadin.client.widget.grid.CellReference;
+import com.vaadin.client.widget.grid.events.BodyClickHandler;
+import com.vaadin.client.widget.grid.events.GridClickEvent;
+import com.vaadin.client.widgets.Grid;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.communication.ServerRpc;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.tests.components.grid.GridExtensionCommunication.GridClickExtension;
+
+import elemental.json.JsonObject;
+
+@Connect(GridClickExtension.class)
+public class GridClickExtensionConnector extends AbstractExtensionConnector {
+ public interface GridClickServerRpc extends ServerRpc {
+
+ public void click(String row, String column, MouseEventDetails click);
+ }
+
+ @Override
+ protected void extend(ServerConnector target) {
+ Grid<JsonObject> grid = getParent().getWidget();
+ grid.addBodyClickHandler(new BodyClickHandler() {
+
+ @Override
+ public void onClick(GridClickEvent event) {
+ CellReference<?> cellRef = event.getTargetCell();
+
+ // Gather needed information.
+ String rowKey = getParent().getRowKey(
+ (JsonObject) cellRef.getRow());
+ String columnId = getParent().getColumnId(cellRef.getColumn());
+ MouseEventDetails clickDetails = MouseEventDetailsBuilder
+ .buildMouseEventDetails(event.getNativeEvent());
+
+ getRpcProxy(GridClickServerRpc.class).click(rowKey, columnId,
+ clickDetails);
+ }
+ });
+ }
+
+ @Override
+ public GridConnector getParent() {
+ return (GridConnector) super.getParent();
+ }
+
+}