summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorelmot <elmot@vaadin.com>2016-11-22 12:49:37 +0200
committerIlia Motornyi <elmot@vaadin.com>2016-11-24 12:01:59 +0000
commit4e8eb29c548128a50a000699f60259243e4695ed (patch)
treed16cbc9319785721924ad9455f99a1fb64c229a6 /uitest
parent159d413602380497b189e5cabbdd9ecf6431c725 (diff)
downloadvaadin-framework-4e8eb29c548128a50a000699f60259243e4695ed.tar.gz
vaadin-framework-4e8eb29c548128a50a000699f60259243e4695ed.zip
Grid merging header cells
Change-Id: Ia52bbef412fc8701f6b862960dfed9c08c17ff7a
Diffstat (limited to 'uitest')
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java50
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridHeaderFooterTest.java55
2 files changed, 92 insertions, 13 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 7b48acd400..f5f02bbf60 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
@@ -1,15 +1,5 @@
package com.vaadin.tests.components.grid.basics;
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Consumer;
-import java.util.stream.Stream;
-
import com.vaadin.annotations.Widgetset;
import com.vaadin.server.VaadinRequest;
import com.vaadin.shared.Registration;
@@ -36,6 +26,18 @@ import com.vaadin.ui.renderers.HtmlRenderer;
import com.vaadin.ui.renderers.NumberRenderer;
import com.vaadin.ui.renderers.ProgressBarRenderer;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.function.Consumer;
+import java.util.stream.Stream;
+
@Widgetset("com.vaadin.DefaultWidgetSet")
public class GridBasics extends AbstractTestUIWithLog {
@@ -50,9 +52,9 @@ public class GridBasics extends AbstractTestUIWithLog {
public static final String CELL_STYLE_GENERATOR_EMPTY = "Empty string";
public static final String CELL_STYLE_GENERATOR_NULL = "Null";
- public static final String[] COLUMN_CAPTIONS = { "Column 0", "Column 1",
+ public static final String[] COLUMN_CAPTIONS = {"Column 0", "Column 1",
"Column 2", "Row Number", "Date", "HTML String", "Big Random",
- "Small Random" };
+ "Small Random"};
private final Command toggleReorderListenerCommand = new Command() {
private Registration registration = null;
@@ -272,6 +274,9 @@ public class GridBasics extends AbstractTestUIWithLog {
selectedItem -> col
.setHidden(selectedItem.isChecked()))
.setCheckable(true);
+ columnMenu
+ .addItem("Remove",
+ selectedItem -> grid.removeColumn(col));
}
}
@@ -396,7 +401,7 @@ public class GridBasics extends AbstractTestUIWithLog {
}
private <T> void addGridMethodMenu(MenuItem parent, String name, T value,
- Consumer<T> method) {
+ Consumer<T> method) {
parent.addItem(name, menuItem -> method.accept(value));
}
@@ -437,6 +442,25 @@ public class GridBasics extends AbstractTestUIWithLog {
headerMenu.addItem("Set no default row", menuItem -> {
grid.setDefaultHeaderRow(null);
});
+ headerMenu.addItem("Merge Header Cells [0,0..1]", menuItem -> {
+ mergeHeaderСells(0, "0+1", 0, 1);
+ });
+ headerMenu.addItem("Merge Header Cells [1,1..3]", menuItem -> {
+ mergeHeaderСells(1, "1+2+3", 1, 2, 3);
+ });
+ headerMenu.addItem("Merge Header Cells [0,6..7]", menuItem -> {
+ mergeHeaderСells(0, "6+7", 6, 7);
+ });
+ }
+
+ private void mergeHeaderСells(int rowIndex, String jointCellText, int... columnIndexes) {
+ HeaderRow headerRow = grid.getHeaderRow(rowIndex);
+ List<Column<DataObject, ?>> columns = grid.getColumns();
+ Set<Grid.HeaderCell> toMerge = new HashSet<>();
+ for (int columnIndex : columnIndexes) {
+ toMerge.add(headerRow.getCell(columns.get(columnIndex)));
+ }
+ headerRow.join(toMerge).setText(jointCellText);
}
private void createFooterMenu(MenuItem footerMenu) {
diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridHeaderFooterTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridHeaderFooterTest.java
index bff780ee75..94f30fe279 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridHeaderFooterTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridHeaderFooterTest.java
@@ -260,6 +260,61 @@ public class GridHeaderFooterTest extends GridBasicsTest {
assertEquals("Column 1", getColumnHidingToggle(1).getText());
}
+ @Test
+ public void testHeaderMergedRemoveColumn() {
+ selectMenuPath("Component", "Header", "Append header row");
+ selectMenuPath("Component", "Header", "Merge Header Cells [0,0..1]");
+
+ GridCellElement c00 = getGridElement().getHeaderCell(0, 0);
+ assertEquals("0+1", c00.getText());
+ assertEquals("Colspan of cell [0,0]", "2", c00.getAttribute("colspan"));
+
+ selectMenuPath("Component", "Columns", "Column 1", "Remove");
+ selectMenuPath("Component", "Header", "Append header row");
+
+ c00 = getGridElement().getHeaderCell(0, 0);
+ assertEquals("Column 0", c00.getText());
+ assertEquals("Colspan of cell [0,0]", "1", c00.getAttribute("colspan"));
+
+ GridCellElement c01 = getGridElement().getHeaderCell(0, 1);
+ assertEquals("Column 2", c01.getText());
+
+ GridCellElement c10 = getGridElement().getHeaderCell(1, 0);
+ assertEquals("Header cell 0", c10.getText());
+
+ GridCellElement c11 = getGridElement().getHeaderCell(1, 1);
+ assertEquals("Header cell 2", c11.getText());
+
+ GridCellElement c20 = getGridElement().getHeaderCell(2, 0);
+ assertEquals("Header cell 0", c20.getText());
+
+ GridCellElement c21 = getGridElement().getHeaderCell(2, 1);
+ assertEquals("Header cell 1", c21.getText());
+
+
+ }
+
+ @Test
+ public void testHeaderMerge() {
+ selectMenuPath("Component", "Header", "Append header row");
+ selectMenuPath("Component", "Header", "Merge Header Cells [0,0..1]");
+ selectMenuPath("Component", "Header", "Merge Header Cells [1,1..3]");
+ selectMenuPath("Component", "Header", "Merge Header Cells [0,6..7]");
+
+ GridCellElement mergedCell1 = getGridElement().getHeaderCell(0, 0);
+ assertEquals("0+1", mergedCell1.getText());
+ assertEquals("Colspan, cell [0,0]", "2", mergedCell1.getAttribute("colspan"));
+
+ GridCellElement mergedCell2 = getGridElement().getHeaderCell(1, 1);
+ assertEquals("1+2+3", mergedCell2.getText());
+ assertEquals("Colspan of cell [1,1]", "3", mergedCell2.getAttribute("colspan"));
+
+ GridCellElement mergedCell3 = getGridElement().getHeaderCell(0, 6);
+ assertEquals("6+7", mergedCell3.getText());
+ assertEquals("Colspan of cell [0,6]", "2", mergedCell3.getAttribute("colspan"));
+
+ }
+
private void toggleColumnHidable(int index) {
selectMenuPath("Component", "Columns", "Column " + index, "Hidable");
}