package com.vaadin.v7.tests.components.grid;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUIWithLog;
import com.vaadin.tests.data.bean.Person;
import com.vaadin.tests.data.bean.Sex;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.v7.data.util.BeanItemContainer;
import com.vaadin.v7.ui.Grid;
import com.vaadin.v7.ui.Grid.Column;
public class RemoveHiddenColumn extends AbstractTestUIWithLog {
private final Grid testGrid = new Grid();
private final Button testBtn = new Button("updateGrid");
private final Button testBtn2 = new Button("show/hide Grid");
private final HorizontalLayout buttonBar = new HorizontalLayout(testBtn,
testBtn2);
private final VerticalLayout mainLayout = new VerticalLayout(testGrid,
buttonBar);
@Override
protected void setup(final VaadinRequest request) {
final Grid grid = new Grid();
final BeanItemContainer<Person> bic = new BeanItemContainer<Person>(
Person.class);
grid.setContainerDataSource(bic);
grid.setColumns("firstName", "lastName", "email", "age");
grid.getColumn("firstName").setHidden(true);
grid.getColumn("email").setHidden(true);
Button addRow = new Button("Add data row", new ClickListener() {
@Override
public void buttonClick(ClickEvent e) {
bic.addBean(new Person("first", "last", "email", 42, Sex.FEMALE,
null));
}
});
addRow.setId("add");
Button removeColumn = new Button("Remove first column",
new ClickListener() {
@Override
public void buttonClick(ClickEvent e) {
Column column = grid.getColumns().get(0);
log("Removed column '" + column.getHeaderCaption() + "'"
+ (column.isHidden() ? " (hidden)" : ""));
grid.removeColumn(column.getPropertyId());
}
});
removeColumn.setId("remove");
addComponents(grid, addRow, removeColumn);
}
}