diff options
author | elmot <elmot@vaadin.com> | 2016-11-22 12:49:37 +0200 |
---|---|---|
committer | Ilia Motornyi <elmot@vaadin.com> | 2016-11-24 12:01:59 +0000 |
commit | 4e8eb29c548128a50a000699f60259243e4695ed (patch) | |
tree | d16cbc9319785721924ad9455f99a1fb64c229a6 /uitest | |
parent | 159d413602380497b189e5cabbdd9ecf6431c725 (diff) | |
download | vaadin-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.java | 50 | ||||
-rw-r--r-- | uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridHeaderFooterTest.java | 55 |
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"); } |