package com.vaadin.v7.tests.components.grid;
import com.vaadin.annotations.Theme;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.v7.data.Item;
import com.vaadin.v7.data.util.BeanItemContainer;
import com.vaadin.v7.data.util.GeneratedPropertyContainer;
import com.vaadin.v7.data.util.PropertyValueGenerator;
import com.vaadin.v7.ui.Grid;
import com.vaadin.v7.ui.Grid.Column;
import com.vaadin.v7.ui.renderers.ButtonRenderer;
@Theme("valo")
public class HideGridColumnWhenHavingUnsuitableHeight extends AbstractTestUI {
private Grid grid;
public static class SampleBean {
private String col1;
private String col2;
public SampleBean() {
}
public String getCol1() {
return col1;
}
public void setCol1(String col1) {
this.col1 = col1;
}
public String getCol2() {
return col2;
}
public void setCol2(String col2) {
this.col2 = col2;
}
}
@SuppressWarnings("serial")
@Override
protected void setup(VaadinRequest vaadinRequest) {
grid = new Grid();
BeanItemContainer<SampleBean> container = generateData(50);
GeneratedPropertyContainer gpc = new GeneratedPropertyContainer(
container);
grid.setContainerDataSource(gpc);
gpc.addGeneratedProperty("Button1",
new PropertyValueGenerator<String>() {
@Override
public String getValue(Item item, Object itemId,
Object propertyId) {
return "Button 1";
}
@Override
public Class<String> getType() {
return String.class;
}
});
grid.getColumn("Button1").setRenderer(new ButtonRenderer());
grid.getColumn("col1").setWidth(1600);
for (Column gridCol : grid.getColumns()) {
gridCol.setHidable(true);
}
grid.setWidth("100%");
grid.setHeight("425px");
grid.setColumns("col1", "col2", "Button1");
addComponent(grid);
}
private BeanItemContainer<SampleBean> generateData(int rows) {
BeanItemContainer<SampleBean> container = new BeanItemContainer<SampleBean>(
SampleBean.class);
for (int y = 0; y < rows; ++y) {
SampleBean sampleBean = new SampleBean();
sampleBean.setCol1("Row " + y + " Column 1");
sampleBean.setCol2("Row " + y + " Column 2");
container.addBean(sampleBean);
}
return container;
}
}