package org.vaadin.smartgwt.server.extra;
import static org.vaadin.smartgwt.server.builder.LabelBuilder.*;
import org.vaadin.smartgwt.server.Canvas;
import org.vaadin.smartgwt.server.builder.CanvasBuilder;
import org.vaadin.smartgwt.server.layout.HLayout;
public class HSplitLayout extends HLayout {
public static class Builder extends CanvasBuilder<HSplitLayout, Builder> {
Builder(HSplitLayout instance) {
super(instance);
}
public Builder setProportions(double proportion) {
instance().setProportions(proportion);
return me();
}
public Builder setLeftMember(Canvas member) {
instance().setLeftMember(member);
return me();
}
public Builder setRightMember(Canvas member) {
instance().setRightMember(member);
return me();
}
@Override
protected Builder me() {
return this;
}
}
public static Builder buildHSplitLayout() {
return new Builder(new HSplitLayout());
}
private Canvas left = null;
private Canvas right = null;
public HSplitLayout() {
//@formatter:off
setMembers(
left = buildLabel("")
.setWidth("50%")
.setHeight("100%")
.build(),
right = buildLabel("")
.setWidth("*")
.setHeight("100%")
.build()
);
// @formatter:on
}
public void setProportions(double proportion) {
left.setHeight(((int) (proportion * 100)) + "%");
}
public Canvas getLeftMember() {
return left;
}
public void setLeftMember(Canvas member) {
String width = left.getWidthAsString();
if (member == null) {
left = buildLabel("")
.setWidth("50%")
.setHeight("100%")
.build();
}
else {
left = member;
left.setWidth(width);
}
setMembers(left,right);
}
public Canvas getRightMember() {
return right;
}
public void setRightMember(Canvas member) {
String width = right.getWidthAsString();
if (member == null) {
right = buildLabel("")
.setWidth("*")
.setHeight("100%")
.build();
}
else {
right = member;
right.setWidth(width);
}
setMembers(left,right);
}
}