package com.vaadin.tests.elements.grid;
import java.util.ArrayList;
import java.util.Collection;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.ui.Grid;
import com.vaadin.ui.Label;
import com.vaadin.ui.components.grid.HeaderRow;
public class GridUI extends AbstractTestUI {
@Override
protected void setup(VaadinRequest request) {
int rowCount = 100;
if (request.getParameter("rowCount") != null) {
rowCount = Integer.parseInt(request.getParameter("rowCount"));
}
final Grid<Item> grid = new Grid<Item>();
grid.setItems(getMockData(rowCount));
Grid.Column<Item, String> column = grid.addColumn(Item::getFoo)
.setCaption("foo");
HeaderRow row = grid.addHeaderRowAt(1);
row.getCell(column).setText("extra row");
grid.addColumn(Item::getBar).setCaption("bar");
grid.setDetailsGenerator(item -> {
return new Label(
"Foo = " + item.getFoo() + " Bar = " + item.getBar());
});
grid.addItemClickListener(event -> {
if (event.getMouseEventDetails().isDoubleClick()) {
grid.setDetailsVisible(event.getItem(),
!grid.isDetailsVisible(event.getItem()));
}
});
addComponent(grid);
}
private Collection<Item> getMockData(int rowCount) {
Collection<Item> data = new ArrayList<Item>();
for (int i = 0; i < rowCount; i++) {
Item item = new Item("foo " + i, "bar " + i);
data.add(item);
}
return data;
}
@Override
protected String getTestDescription() {
return "Test UI for Grid element API";
}
@Override
protected Integer getTicketNumber() {
return null;
}
private static class Item {
private String foo;
private String bar;
public Item(String foo, String bar) {
this.foo = foo;
this.bar = bar;
}
public String getFoo() {
return foo;
}
public String getBar() {
return bar;
}
}
}