package de.forsthaus.webui.testControllers;
import java.util.List;
import org.zkoss.zk.ui.HtmlBasedComponent;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Box;
import org.zkoss.zul.Button;
import org.zkoss.zul.Hbox;
import org.zkoss.zul.Label;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Vbox;
import org.zkoss.zul.Window;
public class TestBoxLayoutingCtrl extends GenericForwardComposer {
private static final long serialVersionUID = -3639146891743901462L;
private Listbox alignValue;
private Listbox packValue;
private Listbox vflexValue;
private Listbox hflexValue;
private Vbox vbox;
private Hbox hbox;
public void onAssignLayout() {
assignValue(hbox);
assignValue(vbox);
}
@SuppressWarnings("unchecked")
public void assignValue(Box box) {
box.setAlign(String.valueOf(alignValue.getSelectedItem().getValue()));
box.setPack(String.valueOf(packValue.getSelectedItem().getValue()));
String hflexString = String.valueOf(hflexValue.getSelectedItem().getValue());
String vflexString = String.valueOf(vflexValue.getSelectedItem().getValue());
List<HtmlBasedComponent> children = box.getChildren();
for (HtmlBasedComponent child : children) {
child.setHflex(hflexString);
child.setVflex(vflexString);
}
}
private void addButtonChild(Box box) {
int nextCount = box.getChildren().size();
Button child = new Button("Button" + nextCount);
box.appendChild(child);
box.invalidate();
}
private void addBoxChild(Box box) {
int nextCount = box.getChildren().size();
Box child = new Box();
child.setStyle("border: 1px solid blue");
child.appendChild(new Label("Box-" + nextCount));
box.appendChild(child);
box.invalidate();
}
private void addLabelChild(Box box) {
int nextCount = box.getChildren().size();
Label child = new Label("Label-" + nextCount);
child.setStyle("border: 1px solid blue");
box.appendChild(child);
box.invalidate();
}
private void addTextboxChild(Box box) {
int nextCount = box.getChildren().size();
Textbox child = new Textbox("Textbox-" + nextCount);
box.appendChild(child);
box.invalidate();
}
private void addWindowChild(Box box) {
int nextCount = box.getChildren().size();
Window child = new Window();
child.setBorder("normal");
child.appendChild(new Label("Window-" + nextCount));
box.appendChild(child);
box.invalidate();
}
public void onClearChildren() {
hbox.getChildren().clear();
vbox.getChildren().clear();
}
public void onAddButtonChild() {
addButtonChild(hbox);
addButtonChild(vbox);
}
public void onAddBoxChild() {
addBoxChild(hbox);
addBoxChild(vbox);
}
public void onAddWindowChild() {
addWindowChild(hbox);
addWindowChild(vbox);
}
public void onAddLabelChild() {
addLabelChild(hbox);
addLabelChild(vbox);
}
public void onAddTextboxChild() {
addTextboxChild(hbox);
addTextboxChild(vbox);
}
@SuppressWarnings("unchecked")
private void set100PercentWidth(Box box) {
List<HtmlBasedComponent> children = box.getChildren();
for (HtmlBasedComponent child : children) {
child.setWidth("100%");
}
}
@SuppressWarnings("unchecked")
private void set100PercentHeight(Box box) {
List<HtmlBasedComponent> children = box.getChildren();
for (HtmlBasedComponent child : children) {
child.setHeight("100%");
}
}
@SuppressWarnings("unchecked")
private void resetWidthAndHeight(Box box) {
List<HtmlBasedComponent> children = box.getChildren();
for (HtmlBasedComponent child : children) {
child.setHeight("");
child.setWidth("");
}
}
public void onResetWidthAndHeight() {
resetWidthAndHeight(hbox);
resetWidthAndHeight(vbox);
}
public void onFullPercentWidth() {
set100PercentWidth(hbox);
set100PercentWidth(vbox);
}
public void onFullPercentHeight() {
set100PercentHeight(hbox);
set100PercentHeight(vbox);
}
public void onHboxRefresh() {
hbox.invalidate();
}
public void onVboxRefresh() {
vbox.invalidate();
}
}