123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package com.vaadin.tests.components.grid;
-
- import com.vaadin.data.SelectionModel;
- import com.vaadin.server.VaadinRequest;
- import com.vaadin.tests.components.AbstractReindeerTestUI;
- import com.vaadin.tests.data.bean.Address;
- import com.vaadin.tests.data.bean.Person;
- import com.vaadin.ui.Button;
- import com.vaadin.ui.Grid;
- import com.vaadin.ui.Grid.Column;
- import com.vaadin.ui.Grid.SelectionMode;
- import com.vaadin.ui.HorizontalLayout;
- import com.vaadin.ui.components.grid.HeaderRow;
-
- public class GridHeaderFormatChange extends AbstractReindeerTestUI {
-
- private static final long serialVersionUID = -2787771187365766027L;
-
- private HeaderRow row;
-
- @Override
- protected void setup(VaadinRequest request) {
- Grid<Person> grid = new Grid<>();
- grid.setWidth("600px");
-
- grid.addColumn(Person::getFirstName).setId("firstName");
- grid.addColumn(Person::getLastName).setId("lastName");
- grid.addColumn(person -> person.getAddress().getStreetAddress())
- .setId("streetAddress");
- grid.addColumn(person -> person.getAddress().getPostalCode())
- .setId("zip");
- grid.addColumn(person -> person.getAddress().getCity()).setId("city");
- grid.setSelectionMode(SelectionMode.SINGLE);
- addComponent(grid);
-
- grid.setItems(createPerson());
-
- Button showHide = new Button("Hide firstName", event -> {
- Column<Person, ?> column = grid.getColumn("firstName");
- if (grid.getColumn("firstName") != null) {
- grid.removeColumn(column);
- event.getButton().setCaption("Show firstName");
- } else {
- grid.addColumn(Person::getFirstName).setId("firstName");
- grid.setColumnOrder(grid.getColumn("firstName"),
- grid.getColumn("lastName"),
- grid.getColumn("streetAddress"), grid.getColumn("zip"),
- grid.getColumn("city"));
-
- event.getButton().setCaption("Hide firstName");
- }
- });
- showHide.setId("show_hide");
-
- Button selectionMode = new Button("Set multiselect", event -> {
- if (grid.getSelectionModel() instanceof SelectionModel.Single) {
- grid.setSelectionMode(SelectionMode.MULTI);
- } else {
- grid.setSelectionMode(SelectionMode.SINGLE);
- }
- });
- selectionMode.setId("selection_mode");
-
- Button join = new Button("Add Join header column", event -> {
- if (row == null) {
- row = grid.prependHeaderRow();
- if (grid.getColumn("firstName") != null) {
- row.join(
- grid.getDefaultHeaderRow()
- .getCell(grid.getColumn("firstName")),
- grid.getDefaultHeaderRow()
- .getCell(grid.getColumn("lastName")))
- .setText("Full Name");
- }
- row.join(
- grid.getDefaultHeaderRow()
- .getCell(grid.getColumn("streetAddress")),
- grid.getDefaultHeaderRow()
- .getCell(grid.getColumn("zip")),
- grid.getDefaultHeaderRow()
- .getCell(grid.getColumn("city")))
- .setText("Address");
- } else {
- grid.removeHeaderRow(row);
- row = null;
- }
- });
- join.setId("join");
- addComponent(new HorizontalLayout(showHide, selectionMode, join));
- }
-
- @Override
- protected String getTestDescription() {
- return "Grid for testing header re-rendering.";
- }
-
- @Override
- protected Integer getTicketNumber() {
- return 17131;
- }
-
- private Person createPerson() {
- Person person = new Person();
- person.setFirstName("Rudolph");
- person.setLastName("Reindeer");
- person.setAddress(new Address());
-
- person.getAddress().setStreetAddress("Ruukinkatu 2-4");
- person.getAddress().setPostalCode(20540);
- person.getAddress().setCity("Turku");
- return person;
- }
- }
|