123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 |
- /*
- * 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.server.component.grid.declarative;
-
- import org.junit.Test;
-
- import com.vaadin.shared.ui.label.ContentMode;
- import com.vaadin.ui.Grid;
- import com.vaadin.ui.Grid.Column;
- import com.vaadin.ui.Grid.FooterRow;
- import com.vaadin.ui.Grid.HeaderRow;
- import com.vaadin.ui.Label;
-
- public class GridHeaderFooterDeclarativeTest extends GridDeclarativeTestBase {
-
- @Test
- public void testSingleDefaultHeader() {
- String design = "<v-grid><table>"//
- + "<colgroup>"
- + " <col sortable='' property-id='Column1'>"
- + " <col sortable='' property-id='Column2'>"
- + " <col sortable='' property-id='Column3'>"
- + "</colgroup>" //
- + "<thead>" //
- + " <tr default=''><th plain-text=''>Column1<th plain-text=''>Column2<th plain-text=''>Column3</tr>" //
- + "</thead>" //
- + "</table></v-grid>";
- Grid grid = new Grid();
- grid.addColumn("Column1", String.class);
- grid.addColumn("Column2", String.class);
- grid.addColumn("Column3", String.class);
-
- testWrite(design, grid);
- testRead(design, grid, true);
- }
-
- @Test
- public void testSingleDefaultHTMLHeader() {
- String design = "<v-grid><table>"//
- + "<colgroup>"
- + " <col sortable='' property-id='Column1'>"
- + " <col sortable='' property-id='Column2'>"
- + " <col sortable='' property-id='Column3'>" + "</colgroup>" //
- + "<thead>" //
- + " <tr default=''><th>Column1<th>Column2<th>Column3</tr>" //
- + "</thead>" //
- + "</table></v-grid>";
- Grid grid = new Grid();
- grid.addColumn("Column1", String.class);
- grid.addColumn("Column2", String.class);
- grid.addColumn("Column3", String.class);
-
- HeaderRow row = grid.getDefaultHeaderRow();
- for (Column c : grid.getColumns()) {
- row.getCell(c.getPropertyId()).setHtml(c.getHeaderCaption());
- }
-
- testWrite(design, grid);
- testRead(design, grid, true);
- }
-
- @Test
- public void testNoHeaderRows() {
- String design = "<v-grid><table>"//
- + "<colgroup>"
- + " <col sortable='' property-id='Column1'>"
- + "</colgroup>" //
- + "<thead />" //
- + "</table></v-grid>";
-
- Grid grid = new Grid();
- grid.addColumn("Column1", String.class);
- grid.removeHeaderRow(grid.getDefaultHeaderRow());
-
- testWrite(design, grid);
- testRead(design, grid, true);
- }
-
- @Test
- public void testMultipleHeadersWithColSpans() {
- String design = "<v-grid><table>"//
- + "<colgroup>"
- + " <col sortable='' property-id='Column1'>"
- + " <col sortable='' property-id='Column2'>"
- + " <col sortable='' property-id='Column3'>"
- + "</colgroup>" //
- + "<thead>" //
- + " <tr><th colspan=3>Baz</tr>"
- + " <tr default=''><th>Column1<th>Column2<th>Column3</tr>" //
- + " <tr><th>Foo<th colspan=2>Bar</tr>" //
- + "</thead>" //
- + "</table></v-grid>";
- Grid grid = new Grid();
- grid.addColumn("Column1", String.class);
- grid.addColumn("Column2", String.class);
- grid.addColumn("Column3", String.class);
-
- HeaderRow row = grid.getDefaultHeaderRow();
- for (Column c : grid.getColumns()) {
- row.getCell(c.getPropertyId()).setHtml(c.getHeaderCaption());
- }
-
- grid.prependHeaderRow().join("Column1", "Column2", "Column3")
- .setHtml("Baz");
- row = grid.appendHeaderRow();
- row.getCell("Column1").setHtml("Foo");
- row.join("Column2", "Column3").setHtml("Bar");
-
- testWrite(design, grid);
- testRead(design, grid, true);
- }
-
- @Test
- public void testSingleDefaultFooter() {
- String design = "<v-grid><table>"//
- + "<colgroup>"
- + " <col sortable='' property-id='Column1'>"
- + " <col sortable='' property-id='Column2'>"
- + " <col sortable='' property-id='Column3'>"
- + "</colgroup>" //
- + "<thead />" // No headers read or written
- + "<tfoot>" //
- + " <tr><td plain-text=''>Column1<td plain-text=''>Column2<td plain-text=''>Column3</tr>" //
- + "</tfoot>" //
- + "</table></v-grid>";
- Grid grid = new Grid();
- grid.addColumn("Column1", String.class);
- grid.addColumn("Column2", String.class);
- grid.addColumn("Column3", String.class);
-
- FooterRow row = grid.appendFooterRow();
- for (Column c : grid.getColumns()) {
- row.getCell(c.getPropertyId()).setText(c.getHeaderCaption());
- }
-
- grid.removeHeaderRow(grid.getDefaultHeaderRow());
-
- testWrite(design, grid);
- testRead(design, grid, true);
- }
-
- @Test
- public void testSingleDefaultHTMLFooter() {
- String design = "<v-grid><table>"//
- + "<colgroup>"
- + " <col sortable='' property-id='Column1'>"
- + " <col sortable='' property-id='Column2'>"
- + " <col sortable='' property-id='Column3'>" + "</colgroup>" //
- + "<thead />" // No headers read or written
- + "<tfoot>" //
- + " <tr><td>Column1<td>Column2<td>Column3</tr>" //
- + "</tfoot>" //
- + "</table></v-grid>";
- Grid grid = new Grid();
- grid.addColumn("Column1", String.class);
- grid.addColumn("Column2", String.class);
- grid.addColumn("Column3", String.class);
-
- FooterRow row = grid.appendFooterRow();
- for (Column c : grid.getColumns()) {
- row.getCell(c.getPropertyId()).setHtml(c.getHeaderCaption());
- }
-
- grid.removeHeaderRow(grid.getDefaultHeaderRow());
-
- testWrite(design, grid);
- testRead(design, grid, true);
- }
-
- @Test
- public void testMultipleFootersWithColSpans() {
- String design = "<v-grid><table>"//
- + "<colgroup>"
- + " <col sortable='' property-id='Column1'>"
- + " <col sortable='' property-id='Column2'>"
- + " <col sortable='' property-id='Column3'>"
- + "</colgroup>" //
- + "<thead />" // No headers read or written.
- + "<tfoot>" //
- + " <tr><td colspan=3>Baz</tr>"
- + " <tr><td>Column1<td>Column2<td>Column3</tr>" //
- + " <tr><td>Foo<td colspan=2>Bar</tr>" //
- + "</tfoot>" //
- + "</table></v-grid>";
- Grid grid = new Grid();
- grid.addColumn("Column1", String.class);
- grid.addColumn("Column2", String.class);
- grid.addColumn("Column3", String.class);
-
- FooterRow row = grid.appendFooterRow();
- for (Column c : grid.getColumns()) {
- row.getCell(c.getPropertyId()).setHtml(c.getHeaderCaption());
- }
-
- grid.prependFooterRow().join("Column1", "Column2", "Column3")
- .setHtml("Baz");
- row = grid.appendFooterRow();
- row.getCell("Column1").setHtml("Foo");
- row.join("Column2", "Column3").setHtml("Bar");
-
- grid.removeHeaderRow(grid.getDefaultHeaderRow());
-
- testWrite(design, grid);
- testRead(design, grid, true);
- }
-
- @Test
- public void testComponentInGridHeader() {
- String design = "<v-grid><table>"//
- + "<colgroup>"
- + " <col sortable='' property-id='Column1'>"
- + "</colgroup>" //
- + "<thead>" //
- + "<tr default=''><th><v-label><b>Foo</b></v-label></tr>"
- + "</thead>"//
- + "</table></v-grid>";
-
- Label component = new Label("<b>Foo</b>");
- component.setContentMode(ContentMode.HTML);
-
- Grid grid = new Grid();
- grid.addColumn("Column1", String.class);
- grid.getDefaultHeaderRow().getCell("Column1").setComponent(component);
-
- testRead(design, grid, true);
- testWrite(design, grid);
- }
-
- @Test
- public void testComponentInGridFooter() {
- String design = "<v-grid><table>"//
- + "<colgroup>"
- + " <col sortable='' property-id='Column1'>"
- + "</colgroup>" //
- + "<thead />" // No headers read or written
- + "<tfoot>" //
- + "<tr><td><v-label><b>Foo</b></v-label></tr>"//
- + "</tfoot>" //
- + "</table></v-grid>";
-
- Label component = new Label("<b>Foo</b>");
- component.setContentMode(ContentMode.HTML);
-
- Grid grid = new Grid();
- grid.addColumn("Column1", String.class);
- grid.prependFooterRow().getCell("Column1").setComponent(component);
- grid.removeHeaderRow(grid.getDefaultHeaderRow());
-
- testRead(design, grid, true);
- testWrite(design, grid);
- }
- }
|