public class ProgrammaticCollapse extends TestBase {
@Override
protected void setup() {
VerticalLayout layout = new VerticalLayout();
final TreeTable table = new TreeTable();
table.setPageLength(10);
table.addContainerProperty("A", String.class, null);
table.addContainerProperty("B", String.class, null);
for (int i = 1; i <= 100; ++i) {
int parentid = i;
table.addItem(new Object[] { "A" + i, "B" + i }, parentid);
for (int j = 1; j < 5; ++j) {
int id = 1000 * i + j;
table.addItem(new Object[] { "A" + i + "." + j,
"B" + i + "." + j }, id);
table.setParent(id, parentid);
}
}
layout.addComponent(table);
layout.addComponent(new Button("Expand / Collapse",
new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
boolean collapsed = !table.isCollapsed(1);
Notification.show("set collapsed: " + collapsed);
table.setCollapsed(1, collapsed);
}
}));
layout.addComponent(new Button("Expand / Collapse last",
new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
boolean collapsed = !table.isCollapsed(100);
Notification.show("set collapsed: " + collapsed);
table.setCollapsed(100, collapsed);
}
}));
layout.addComponent(new Button("Expand / Collapse multiple",
new ClickListener() {
private boolean collapsed = true;
@Override
public void buttonClick(ClickEvent event) {
collapsed = !collapsed;
Notification.show("set collapsed: " + collapsed);
for (int i = 0; i < 50; ++i) {
table.setCollapsed(i * 2, collapsed);
}
}
}));
addComponent(layout);
}