header.setHeight("26px");
Label label = new Label(labelString);
label.setStyleName("caption");
header.addComponent(label);
final Layout buttonContainer;
if (useWorkaround) {
buttonContainer = header;
} else {
buttonContainer = new HorizontalLayout();
header.addComponent(buttonContainer);
}
Button edit = new Button("Edit");
edit.setStyleName("link");
buttonContainer.addComponent(edit);
Button copy = new Button("Copy");
copy.setStyleName("link");
buttonContainer.addComponent(copy);
Button move = new Button("Move");
move.setStyleName("link");
buttonContainer.addComponent(move);
Button delete = new Button("Delete");
delete.setStyleName("link");
buttonContainer.addComponent(delete);
Button bind = new Button("Bind");
bind.setStyleName("link");
buttonContainer.addComponent(bind);
Button options = new Button("Options...");
options.setStyleName("link");
buttonContainer.addComponent(options);
final Button expand = new Button("Expand");
final Button collapse = new Button("Collapse");
buttonContainer.addComponent(collapse);
collapse.setStyleName("collapse");
collapse.addClickListener(new Button.ClickListener() {
@Override
public void buttonClick(Button.ClickEvent event) {
if (useWorkaround) {
container.setVisible(false);
lastHeight = root.getHeight();
lastHeightUnit = root.getHeightUnits();
root.setHeight("26px");
buttonContainer.replaceComponent(collapse, expand);
} else {
boolean visible = container.isVisible();
container.setVisible(!visible);
if (visible) {
lastHeight = root.getHeight();
lastHeightUnit = root.getHeightUnits();
root.setHeight("26px");
} else {
root.setHeight(lastHeight, lastHeightUnit);
}
event.getButton().setCaption(
visible ? "Expand" : "Collapse");
}
}
});
if (useWorkaround) {
expand.addClickListener(new Button.ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
container.setVisible(true);
root.setHeight(lastHeight, lastHeightUnit);
buttonContainer.replaceComponent(expand, collapse);
}
});
}
}