package com.itmill.toolkit.demo.sampler.features.layouts;
import java.util.Iterator;
import com.itmill.toolkit.demo.sampler.ExampleUtil;
import com.itmill.toolkit.ui.Button;
import com.itmill.toolkit.ui.HorizontalLayout;
import com.itmill.toolkit.ui.Label;
import com.itmill.toolkit.ui.Panel;
import com.itmill.toolkit.ui.Table;
import com.itmill.toolkit.ui.Tree;
import com.itmill.toolkit.ui.VerticalLayout;
import com.itmill.toolkit.ui.Window;
import com.itmill.toolkit.ui.Button.ClickEvent;
import com.itmill.toolkit.ui.Window.CloseEvent;
public class ApplicationLayoutExample extends VerticalLayout {
Window win = new ApplicationLayoutWindow();
Button open = new Button("Open sample in subwindow");
public ApplicationLayoutExample() {
setMargin(true);
// We'll open this example in a separate window, configure it
win.setWidth("70%");
win.setHeight("70%");
win.center();
// Allow opening window again when closed
win.addListener(new Window.CloseListener() {
public void windowClose(CloseEvent e) {
open.setEnabled(true);
}
});
// 'open sample' button
addComponent(open);
open.addListener(new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
getWindow().addWindow(win);
open.setEnabled(false);
}
});
addComponent(new Label(
("Don't worry: the content of the window is not supposed to make sense...")));
}
class ApplicationLayoutWindow extends Window {
ApplicationLayoutWindow() {
// Our main layout is a horizontal layout
HorizontalLayout main = new HorizontalLayout();
main.setSizeFull();
setLayout(main);
// Tree to the left
Panel treePanel = new Panel(); // for scrollbars
treePanel.setStyleName(Panel.STYLE_LIGHT);
treePanel.setHeight("100%");
treePanel.setWidth(null);
treePanel.getLayout().setSizeUndefined();
addComponent(treePanel);
Tree tree = new Tree();
tree.setContainerDataSource(ExampleUtil.getHardwareContainer());
tree.setItemCaptionPropertyId(ExampleUtil.hw_PROPERTY_NAME);
for (Iterator it = tree.rootItemIds().iterator(); it.hasNext();) {
tree.expandItemsRecursively(it.next());
}
treePanel.addComponent(tree);
// vertically divide the right area
VerticalLayout left = new VerticalLayout();
left.setSizeFull();
addComponent(left);
main.setExpandRatio(left, 1.0f); // use all available space
// table on top
Table tbl = new Table();
tbl.setWidth("100%");
tbl.setContainerDataSource(ExampleUtil.getISO3166Container());
tbl.setSortDisabled(true);
tbl.setPageLength(7);
left.addComponent(tbl);
// Label on bottom
Panel textPanel = new Panel(); // for scrollbars
textPanel.setStyleName(Panel.STYLE_LIGHT);
textPanel.setSizeFull();
left.addComponent(textPanel);
left.setExpandRatio(textPanel, 1.0f); // use all available space
Label text = new Label(ExampleUtil.lorem, Label.CONTENT_XHTML);
text.setWidth("500px"); // some limit is good for text
textPanel.addComponent(text);
}
}
}
|