summaryrefslogtreecommitdiffstats
path: root/uitest/src/com/vaadin/tests/layouts/OrderedLayoutBasics.java
diff options
context:
space:
mode:
Diffstat (limited to 'uitest/src/com/vaadin/tests/layouts/OrderedLayoutBasics.java')
-rw-r--r--uitest/src/com/vaadin/tests/layouts/OrderedLayoutBasics.java1210
1 files changed, 1210 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/layouts/OrderedLayoutBasics.java b/uitest/src/com/vaadin/tests/layouts/OrderedLayoutBasics.java
new file mode 100644
index 0000000000..9e0380a1f6
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/layouts/OrderedLayoutBasics.java
@@ -0,0 +1,1210 @@
+package com.vaadin.tests.layouts;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
+import com.vaadin.server.ThemeResource;
+import com.vaadin.server.UserError;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.AbstractOrderedLayout;
+import com.vaadin.ui.Alignment;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Layout;
+import com.vaadin.ui.ListSelect;
+import com.vaadin.ui.Panel;
+import com.vaadin.ui.TextArea;
+import com.vaadin.ui.TextField;
+import com.vaadin.ui.VerticalLayout;
+
+public class OrderedLayoutBasics extends TestBase {
+
+ String valignName[] = new String[] { "top", "middle", "bottom" };
+
+ Set<AbstractOrderedLayout> layouts = new HashSet<AbstractOrderedLayout>();
+ private AbstractOrderedLayout layoutContainer;
+ private int suffix = 0;
+
+ @Override
+ protected String getDescription() {
+ return "Various layout tests for VerticalLayout and HorizontalLayout";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return null;
+ }
+
+ @Override
+ public void setup() {
+ getMainWindow().getContent().setHeight(null);
+
+ layoutContainer = new VerticalLayout();
+ createUI(layoutContainer);
+ addComponent(layoutContainer);
+ }
+
+ private void createUI(Layout layout) {
+ layout.addComponent(wrapLayout(layout_field_100pct_button_field(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_field_100pct_button_field(new VerticalLayout())));
+ layout.addComponent(wrapLayout(layout_overfilled(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_overfilled(new VerticalLayout())));
+ layout.addComponent(wrapLayout(layout_overfilled_dynamic_height(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_overfilled_dynamic_height(new VerticalLayout())));
+ layout.addComponent(wrapLayout(layout_symmetric_fields(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_symmetric_fields(new VerticalLayout())));
+ layout.addComponent(wrapLayout(layout_leftAndRight(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_leftAndRight(new VerticalLayout())));
+ layout.addComponent(wrapLayout(layout_fixed_filled(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_fixed_filled(new VerticalLayout())));
+ layout.addComponent(wrapLayout(layout_dynamic(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_dynamic(new VerticalLayout())));
+ layout.addComponent(wrapLayout(layout_labels(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_labels(new VerticalLayout())));
+ layout.addComponent(wrapLayout(layout_captions(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_captions(new VerticalLayout())));
+ layout.addComponent(wrapLayout(layout_captions_fixed_size(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_captions_fixed_size(new VerticalLayout())));
+ layout.addComponent(wrapLayout(layout_captions_fixed_size_and_relative_size(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_captions_fixed_size_and_relative_size(new VerticalLayout())));
+ layout.addComponent(wrapLayout(layout_captions_fixed_size_and_fixed_size(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_captions_fixed_size_and_fixed_size(new VerticalLayout())));
+ layout.addComponent(wrapLayout(layout_add_remove_components(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_add_remove_components(new VerticalLayout())));
+ layout.addComponent(wrapLayout(layout_pctFilled(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_pctFilled(new VerticalLayout())));
+ layout.addComponent(wrapLayout(layout_underFilled(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_underFilled(new VerticalLayout())));
+ layout.addComponent(wrapLayout(layout_basic_test(new HorizontalLayout())));
+ layout.addComponent(wrapLayout(layout_basic_test(new VerticalLayout())));
+ }
+
+ private Layout wrapLayout(Layout ol) {
+ Panel p = new Panel(ol);
+ p.setSizeUndefined();
+ p.setCaption(ol.getCaption());
+ ol.setCaption(null);
+
+ VerticalLayout l = new VerticalLayout();
+ l.setSizeUndefined();
+ l.addComponent(p);
+ // p.setWidth("600px");
+
+ if (ol instanceof AbstractOrderedLayout) {
+ layouts.add((AbstractOrderedLayout) ol);
+ }
+ return l;
+ }
+
+ /* LAYOUTS */
+
+ @SuppressWarnings({ "unused", "deprecation" })
+ private Layout layout1() {
+ HorizontalLayout ol = new HorizontalLayout();
+ ol.setHeight("200px");
+ ol.setWidth("");
+ ol.setCaption("Fixed height (200px) and dynamic width");
+
+ TextField tf = new TextField("100px high TextField, valign: bottom");
+ tf.setHeight("100px");
+ tf.setWidth("");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_LEFT);
+
+ ListSelect s = new ListSelect("100% high select");
+ s.setMultiSelect(true);
+ s.setHeight("100%");
+ s.setWidth("");
+ ol.addComponent(s);
+
+ s = new ListSelect("200 px high select");
+ s.setMultiSelect(true);
+ s.setHeight("200px");
+ s.setWidth("");
+ ol.addComponent(s);
+
+ // tf = new TextField("100% high TextField, right/bottom");
+ // tf.setHeight("100%");
+ // tf.setWidth("");
+ // ol.addComponent(tf);
+ // ol.setComponentAlignment(tf, AlignmentHandler.ALIGNMENT_RIGHT,
+ // AlignmentHandler.ALIGNMENT_BOTTOM);
+
+ // tf = new TextField("100% high, 200px wide TextField");
+ // tf.setHeight("100%");
+ // tf.setWidth("200px");
+ // ol.addComponent(tf);
+
+ return ol;
+
+ }
+
+ @SuppressWarnings({ "unused", "deprecation" })
+ private Layout layout2() {
+ HorizontalLayout ol = new HorizontalLayout();
+ ol.setHeight("70px");
+ ol.setWidth("");
+ ol.setCaption("Fixed height (50px) and dynamic width");
+
+ TextField tf = new TextField(
+ "100px high TextField, valign: bottom, should be partly outside");
+ tf.setHeight("100px");
+ tf.setWidth("");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_LEFT);
+
+ tf = new TextField(
+ "100% high, 50px wide TextField, valign: bottom, should fill full height");
+ tf.setHeight("100%");
+ tf.setWidth("50px");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_LEFT);
+
+ Label l = new Label(
+ "100% high, 50px wide Label, valign: bottom, does not fill full height, only needed space");
+ tf.setHeight("100%");
+ tf.setWidth("50px");
+ ol.addComponent(l);
+ ol.setComponentAlignment(l, Alignment.BOTTOM_LEFT);
+
+ ListSelect s = new ListSelect(
+ "100% high select, should fit into layout");
+ s.setMultiSelect(true);
+ s.setHeight("100%");
+ s.setWidth("");
+ for (int i = 0; i < 10; i++) {
+ s.addItem(new Object());
+ }
+
+ ol.addComponent(s);
+
+ s = new ListSelect("200 px high select, should be partly outside");
+ s.setMultiSelect(true);
+ s.setHeight("200px");
+ s.setWidth("");
+ ol.addComponent(s);
+
+ return ol;
+ }
+
+ @SuppressWarnings({ "unused", "deprecation" })
+ private Layout layout3() {
+ HorizontalLayout ol = new HorizontalLayout();
+ ol.setHeight("");
+ ol.setWidth("500px");
+ ol.setCaption("Fixed width (500px) and dynamic height");
+ TextField tf;
+
+ tf = new TextField("100px high TextField, valign: bottom");
+ tf.setHeight("100px");
+ tf.setWidth("100%");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_LEFT);
+
+ tf = new TextField("100px high TextField, valign: top");
+ tf.setHeight("100px");
+ tf.setWidth("100%");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.TOP_LEFT);
+
+ tf = new TextField("100% high, 50px wide TextField, valign: bottom");
+ tf.setHeight("100%");
+ tf.setWidth("50px");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_LEFT);
+
+ Label l = new Label(
+ "100% high, 50px wide Label, valign: bottom, does not fill full height, only needed space");
+ tf.setHeight("100%");
+ tf.setWidth("50px");
+ ol.addComponent(l);
+ ol.setComponentAlignment(l, Alignment.BOTTOM_LEFT);
+
+ ListSelect s = new ListSelect(
+ "100% high select, should fit into layout");
+ s.setMultiSelect(true);
+ s.setHeight("100%");
+ s.setWidth("100%");
+ for (int i = 0; i < 10; i++) {
+ s.addItem(new Object());
+ }
+
+ ol.addComponent(s);
+
+ s = new ListSelect(
+ "200 px high select, should make the layout 200px high");
+ s.setMultiSelect(true);
+ s.setHeight("200px");
+ s.setWidth("100%");
+ ol.addComponent(s);
+
+ return ol;
+ }
+
+ @SuppressWarnings({ "unused", "deprecation" })
+ private Layout layout3New() {
+ HorizontalLayout ol = new HorizontalLayout();
+ ol.setHeight("300px");
+ // ol.setWidth("500px");
+ ol.setWidth("");
+ ol.setCaption("Dynamic width and fixed height(300px)");
+ TextField tf;
+
+ tf = new TextField("100px high TextField, valign: bottom");
+ tf.setHeight("100px");
+ tf.setWidth("100%");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_LEFT);
+
+ tf = new TextField("100px high TextField, valign: top");
+ tf.setHeight("100px");
+ tf.setWidth("100%");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.TOP_LEFT);
+
+ tf = new TextField("100% high, 50px wide TextField, valign: bottom");
+ tf.setHeight("100%");
+ tf.setWidth("50px");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_LEFT);
+
+ Label l = new Label(
+ "100% high, 50px wide Label, valign: bottom, does not fill full height, only needed space");
+ tf.setHeight("100%");
+ tf.setWidth("50px");
+ ol.addComponent(l);
+ ol.setComponentAlignment(l, Alignment.BOTTOM_LEFT);
+
+ ListSelect s = new ListSelect(
+ "100% high select, should fit into layout");
+ s.setMultiSelect(true);
+ s.setHeight("100%");
+ s.setWidth("100%");
+ for (int i = 0; i < 10; i++) {
+ s.addItem(new Object());
+ }
+
+ ol.addComponent(s);
+
+ s = new ListSelect(
+ "200 px high select, should make the layout 200px high");
+ s.setMultiSelect(true);
+ s.setHeight("200px");
+ s.setWidth("100%");
+ ol.addComponent(s);
+
+ return ol;
+ }
+
+ @SuppressWarnings("unused")
+ private Layout layout4(AbstractOrderedLayout ol) {
+ // ol.setHeight("300px");
+ // ol.setWidth("500px");
+ ol.setMargin(true);
+ ol.setSpacing(true);
+ ol.setWidth("");
+ ol.setCaption("Dynamic width and dynamic height");
+ TextArea tf;
+
+ tf = new TextArea("100% high TextField");
+ tf.setCaption(null);
+ tf.setRequired(true);
+ tf.setValue("100% high Field");
+ tf.setHeight("100%");
+ tf.setWidth("100px");
+ tf.setRows(2);
+ ol.addComponent(tf);
+
+ tf = new TextArea("100% high TextField");
+ tf.setCaption("100% high TextField");
+ tf.setRequired(true);
+ tf.setValue("100% high Field");
+ tf.setHeight("100%");
+ tf.setWidth("100px");
+ tf.setRows(2);
+ ol.addComponent(tf);
+
+ for (int i = 1; i < 4; i++) {
+ int w = i * 100;
+ tf = new TextArea("Field " + i);
+ tf.setRows(2);
+ tf.setValue(w + "px high, " + w + "px wide TextField, valign: "
+ + valignName[i % 3]);
+ tf.setWidth(w + "px");
+ tf.setHeight(w + "px");
+ ol.addComponent(tf);
+ if (i % 3 == 0) {
+ ol.setComponentAlignment(tf, Alignment.TOP_LEFT);
+ } else if (i % 3 == 1) {
+ ol.setComponentAlignment(tf, Alignment.MIDDLE_LEFT);
+ } else {
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_LEFT);
+ }
+
+ }
+
+ tf = new TextArea("100% high TextField");
+ tf.setValue("100% high 100px wide");
+ tf.setRows(2);
+ tf.setHeight("100%");
+ tf.setWidth("100px");
+ ol.addComponent(tf);
+ return ol;
+ }
+
+ private Layout layout_field_100pct_button_field(AbstractOrderedLayout ol) {
+ ol.setHeight("500px");
+ ol.setWidth("916px");
+ ol.setMargin(false);
+ ol.setSpacing(true);
+
+ // ol.setWidth("");
+ ol.setCaption("Fixed width (" + ol.getWidth()
+ + "px) and fixed height (" + ol.getHeight()
+ + "px) / layout_field_100pct_button_field");
+ TextArea tf;
+
+ tf = new TextArea("300px x 300px Field");
+ // tf.setIcon(new ThemeResource("icons/16/document-add.png"));
+ tf.setValue("300x300 field");
+ tf.setRows(2);
+ // tf.setSizeFull();
+ tf.setHeight("300px");
+ tf.setWidth("300px");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.TOP_LEFT);
+
+ Button b;
+ b = new Button("This is a 100%x50% valign middle button");
+ b.setSizeFull();
+ b.setHeight("50%");
+ ol.addComponent(b);
+ ol.setExpandRatio(b, 1.0f);
+ ol.setComponentAlignment(b, Alignment.MIDDLE_RIGHT);
+
+ tf = new TextArea("300px x 300px Field");
+ // tf.setIcon(new ThemeResource("icons/16/document-add.png"));
+ tf.setValue("300x300 field");
+ tf.setRows(2);
+ // tf.setSizeFull();
+ tf.setHeight("300px");
+ tf.setWidth("300px");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_RIGHT);
+ return ol;
+ }
+
+ private Layout layout_basic_test(AbstractOrderedLayout ol) {
+ ol.setHeight("700px");
+ ol.setWidth("900px");
+ ol.setMargin(true);
+ ol.setSpacing(true);
+
+ // ol.setWidth("");
+ ol.setCaption("Fixed width (" + ol.getWidth()
+ + "px) and fixed height (" + ol.getHeight()
+ + "px) / layout_basic_test");
+ TextArea tf;
+
+ tf = new TextArea("300px x 300px Field");
+ // tf.setIcon(new ThemeResource("icons/16/document-add.png"));
+ tf.setValue("300x300 field");
+ tf.setRows(2);
+ // tf.setSizeFull();
+ tf.setHeight("300px");
+ tf.setWidth("300px");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.TOP_LEFT);
+
+ // Button b;
+ // b = new Button("This is a 100%x50% valign middle button");
+ // b.setSizeFull();
+ // b.setHeight("50%");
+ // ol.addComponent(b, 1.0f);
+ // ol.setComponentAlignment(b, AlignmentHandler.ALIGNMENT_RIGHT,
+ // AlignmentHandler.ALIGNMENT_VERTICAL_CENTER);
+
+ tf = new TextArea("300px x 300px Field");
+ // tf.setIcon(new ThemeResource("icons/16/document-add.png"));
+ tf.setValue("300x300 field");
+ tf.setRows(2);
+ // tf.setSizeFull();
+ tf.setHeight("300px");
+ tf.setWidth("300px");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_RIGHT);
+ return ol;
+ }
+
+ private Layout layout_symmetric_fields(AbstractOrderedLayout ol) {
+ ol.setHeight("900px");
+ ol.setWidth("900px");
+ ol.setMargin(false);
+ ol.setSpacing(false);
+
+ // ol.setWidth("");
+ ol.setCaption("Fixed width (" + ol.getWidth()
+ + "px) and fixed height (" + ol.getHeight()
+ + "px) / layout_symmetric_fields");
+ TextArea tf;
+
+ tf = new TextArea("300px x 300px Field");
+ tf.setValue("300x300 field");
+ tf.setRows(2);
+ tf.setHeight("300px");
+ tf.setWidth("300px");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.TOP_LEFT);
+
+ tf = new TextArea("300px x 300px Field");
+ tf.setValue("300x300 field");
+ tf.setRows(2);
+ tf.setHeight("300px");
+ tf.setWidth("300px");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.MIDDLE_CENTER);
+
+ tf = new TextArea("300px x 300px Field");
+ tf.setValue("300x300 field");
+ tf.setRows(2);
+ tf.setHeight("300px");
+ tf.setWidth("300px");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_RIGHT);
+
+ return ol;
+ }
+
+ private Layout layout_leftAndRight(AbstractOrderedLayout ol) {
+ ol.setHeight("700px");
+ ol.setWidth("700px");
+ ol.setMargin(true);
+ ol.setSpacing(true);
+
+ // ol.setWidth("");
+ ol.setCaption("Fixed width (" + ol.getWidth()
+ + "px) and fixed height (" + ol.getHeight()
+ + "px) / layout_leftAndRight");
+ TextArea tf;
+
+ // tf = new TextField("100%x100% Field");
+ // tf.setCaption(null);
+ // tf.setValue("100% x 100% TextField");
+ // tf.setSizeFull();
+ // tf.setRequired(true);
+ // // tf.setComponentError(new UserError("It's broken!"));
+ //
+ // // tf.setHeight("100%");
+ // // tf.setWidth("100px");
+ // tf.setRows(2);
+ // ol.addComponent(tf);
+ //
+ // for (int i = 1; i < 5; i++) {
+ // int w = i * 100;
+ // tf = new TextField("Caption field " + i);
+ // tf.setRows(2);
+ // tf.setValue(w + "px high, " + w + "px wide TextField, valign: "
+ // + valignName[i % 3]);
+ // tf.setWidth(w + "px");
+ // tf.setHeight(w + "px");
+ // ol.addComponent(tf);
+ // ol.setComponentAlignment(tf,
+ // AlignmentHandler.ALIGNMENT_HORIZONTAL_CENTER, valign[i % 3]);
+ // }
+ //
+ // tf.setValue(tf.getValue().toString() + " (100% wide)");
+ // tf.setWidth("100%");
+
+ // tf = new TextField("100%x70px Field");
+ // tf.setCaption(null);
+ // tf.setRequired(true);
+ // // tf.setIcon(new ThemeResource("icons/16/document-add.png"));
+ // tf.setComponentError(new UserError("abc"));
+ // tf.setValue("100% high 70px wide TextField");
+ // tf.setRows(2);
+ // // tf.setSizeFull();
+ // tf.setHeight("100%");
+ // tf.setWidth("70px");
+ // ol.setComponentAlignment(tf, AlignmentHandler.ALIGNMENT_RIGHT,
+ // AlignmentHandler.ALIGNMENT_TOP);
+ // ol.addComponent(tf);
+
+ tf = new TextArea("300px x 300px Field");
+ // tf.setIcon(new ThemeResource("icons/16/document-add.png"));
+ tf.setValue("300x300 field");
+ tf.setRows(2);
+ // tf.setSizeFull();
+ tf.setHeight("300px");
+ tf.setWidth("300px");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.TOP_LEFT);
+
+ tf = new TextArea("300px x 300px Field");
+ // tf.setIcon(new ThemeResource("icons/16/document-add.png"));
+ tf.setValue("300x300 field");
+ tf.setRows(2);
+ // tf.setSizeFull();
+ tf.setHeight("300px");
+ tf.setWidth("300px");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_RIGHT);
+ return ol;
+ }
+
+ private Layout layout_fixed_filled(AbstractOrderedLayout ol) {
+ ol.setHeight("700px");
+ ol.setWidth("700px");
+ ol.setMargin(true);
+ ol.setSpacing(true);
+
+ // ol.setWidth("");
+ ol.setCaption("Filled with fixed width (" + ol.getWidth()
+ + "px) and fixed height (" + ol.getHeight() + "px)");
+ TextArea tf;
+
+ tf = new TextArea("60%x100% Field");
+ tf.setCaption("This one has a caption");
+ tf.setValue("60% x 100% TextField");
+ tf.setWidth("100%");
+ tf.setHeight("100%");
+ tf.setRequired(true);
+ // tf.setComponentError(new UserError("It's broken!"));
+
+ // tf.setHeight("100%");
+ // tf.setWidth("100px");
+ tf.setRows(2);
+ ol.addComponent(tf);
+ ol.setExpandRatio(tf, 1f);
+ //
+
+ tf = new TextArea("60%x60% Field");
+ tf.setCaption(null);
+ tf.setValue("60% x 60% TextField");
+ tf.setWidth("100%");
+ tf.setHeight("60%");
+ tf.setRequired(true);
+ ol.addComponent(tf);
+ ol.setExpandRatio(tf, 1f);
+ ol.setComponentAlignment(tf, Alignment.MIDDLE_LEFT);
+ // tf.setComponentError(new UserError("It's broken!"));
+
+ // tf.setHeight("100%");
+ // tf.setWidth("100px");
+ tf.setRows(2);
+ //
+ // for (int i = 1; i < 5; i++) {
+ // int w = i * 100;
+ // tf = new TextField("Caption field " + i);
+ // tf.setRows(2);
+ // tf.setValue(w + "px high, " + w + "px wide TextField, valign: "
+ // + valignName[i % 3]);
+ // tf.setWidth(w + "px");
+ // tf.setHeight(w + "px");
+ // ol.addComponent(tf);
+ // ol.setComponentAlignment(tf,
+ // AlignmentHandler.ALIGNMENT_HORIZONTAL_CENTER, valign[i % 3]);
+ // }
+ //
+ // tf.setValue(tf.getValue().toString() + " (100% wide)");
+ // tf.setWidth("100%");
+
+ // tf = new TextField("100%x70px Field");
+ // tf.setCaption(null);
+ // tf.setRequired(true);
+ // // tf.setIcon(new ThemeResource("icons/16/document-add.png"));
+ // tf.setComponentError(new UserError("abc"));
+ // tf.setValue("100% high 70px wide TextField");
+ // tf.setRows(2);
+ // // tf.setSizeFull();
+ // tf.setHeight("100%");
+ // tf.setWidth("70px");
+ // ol.setComponentAlignment(tf, AlignmentHandler.ALIGNMENT_RIGHT,
+ // AlignmentHandler.ALIGNMENT_TOP);
+ // ol.addComponent(tf);
+
+ tf = new TextArea("200px x 200px Field");
+ // tf.setIcon(new ThemeResource("icons/16/document-add.png"));
+ tf.setValue("200x200 field");
+ tf.setRows(2);
+ // tf.setSizeFull();
+ tf.setHeight("200px");
+ tf.setWidth("200px");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.TOP_LEFT);
+
+ tf = new TextArea("200px x 200px Field");
+ // tf.setIcon(new ThemeResource("icons/16/document-add.png"));
+ tf.setValue("200x200 field");
+ tf.setRows(2);
+ // tf.setSizeFull();
+ tf.setHeight("200px");
+ tf.setWidth("200px");
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_RIGHT);
+ return ol;
+ }
+
+ private Layout layout_overfilled(AbstractOrderedLayout ol) {
+ ol.setHeight("300px");
+ ol.setWidth("700px");
+ ol.setMargin(true);
+ ol.setSpacing(true);
+
+ // ol.setWidth("");
+ ol.setCaption("OverFilled with fixed width (" + ol.getWidth()
+ + "px) and fixed height (" + ol.getHeight() + "px)");
+ TextArea tf;
+
+ for (int i = 0; i < 5; i++) {
+ tf = new TextArea("200x200px Field");
+ tf.setCaption("This one has a caption");
+ tf.setValue("200x200 TextField");
+ tf.setWidth("200px");
+ tf.setHeight("200px");
+ tf.setRequired(true);
+ // tf.setComponentError(new UserError("It's broken!"));
+
+ // tf.setHeight("100%");
+ // tf.setWidth("100px");
+ tf.setRows(2);
+ ol.addComponent(tf);
+ }
+
+ return ol;
+ }
+
+ private Layout layout_overfilled_dynamic_height(AbstractOrderedLayout ol) {
+ ol.setHeight(null);
+ ol.setWidth("700px");
+ ol.setMargin(true);
+ ol.setSpacing(true);
+
+ // ol.setWidth("");
+ ol.setCaption("OverFilled with fixed width (" + ol.getWidth()
+ + "px) and dynamic height");
+ TextArea tf;
+
+ for (int i = 0; i < 10; i++) {
+ tf = new TextArea("200x200px Field");
+ tf.setCaption("This one has a caption");
+ tf.setWidth("200px");
+ tf.setHeight(((i + 1) * 50) + "px");
+ tf.setValue(tf.getWidth() + "x" + tf.getHeight() + " TextField");
+ tf.setRequired(true);
+ // tf.setComponentError(new UserError("It's broken!"));
+
+ // tf.setHeight("100%");
+ // tf.setWidth("100px");
+ tf.setRows(2);
+ ol.addComponent(tf);
+ }
+
+ return ol;
+ }
+
+ // private Layout layout_add_components(AbstractOrderedLayout ol) {
+ // ol.setHeight("600px");
+ // ol.setWidth("600px");
+ // ol.setMargin(true);
+ // ol.setSpacing(true);
+ //
+ // // ol.setWidth("");
+ // ol.setCaption("Fixed width (" + ol.getWidth()
+ // + "px) and fixed height (" + ol.getHeight() + "px)");
+ //
+ // for (int i = 0; i < 3; i++) {
+ // Button b = createAddButton(ol);
+ // ol.addComponent(b);
+ // }
+ //
+ // return ol;
+ //
+ // }
+
+ private Layout layout_add_remove_components(AbstractOrderedLayout ol) {
+ ol.setHeight("600px");
+ ol.setWidth("600px");
+ ol.setMargin(true);
+ ol.setSpacing(true);
+
+ // ol.setWidth("");
+ ol.setCaption("Fixed width (" + ol.getWidth()
+ + "px) and fixed height (" + ol.getHeight()
+ + "px) / layout_add_remove_components");
+
+ for (int i = 0; i < 2; i++) {
+ AbstractOrderedLayout inner = createAddRemove(ol, "", "");
+ ol.addComponent(inner);
+ ol.setComponentAlignment(inner, Alignment.BOTTOM_RIGHT);
+ }
+
+ return ol;
+
+ }
+
+ private Layout layout_dynamic(AbstractOrderedLayout ol) {
+ ol.setMargin(true);
+ ol.setSpacing(true);
+
+ // ol.setWidth("");
+ ol.setCaption("Dynamic width, dynamic height");
+
+ for (int i = 0; i < 3; i++) {
+ Button b = new Button("Button " + i);
+ if (i == 2) {
+ b.setHeight("200px");
+ } else {
+ b.setHeight("100%");
+ }
+ ol.addComponent(b);
+ }
+
+ return ol;
+
+ }
+
+ private Layout layout_captions(AbstractOrderedLayout ol) {
+ ol.setMargin(true);
+ ol.setSpacing(true);
+
+ // ol.setWidth("");
+ ol.setCaption("Caption test with dynamic width");
+
+ TextField tf;
+ tf = new TextField("Short caption");
+ ol.addComponent(tf);
+
+ tf = new TextField(
+ "A very long caption which is probably much longer than the field");
+ ol.addComponent(tf);
+
+ tf = new TextField(
+ "A very long caption which is probably much longer than the field and includes indicators");
+ tf.setRequired(true);
+ tf.setComponentError(new UserError("abc123"));
+ ol.addComponent(tf);
+
+ // for (int i = 0; i < 3; i++) {
+ // Button b = new Button("Button " + i);
+ // if (i == 2) {
+ // b.setHeight("200px");
+ // } else {
+ // b.setHeight("100%");
+ // }
+ // ol.addComponent(b);
+ // }
+
+ return ol;
+
+ }
+
+ private Layout layout_captions_fixed_size(AbstractOrderedLayout ol) {
+ ol.setWidth("700px");
+ ol.setHeight("250px");
+
+ ol.setMargin(false);
+ ol.setSpacing(false);
+
+ // ol.setWidth("");
+ ol.setCaption("Caption test with fixed size");
+
+ TextField tf;
+ tf = new TextField("Short caption");
+ tf.setValue("Undefined width");
+ tf.setComponentError(new UserError("123"));
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_RIGHT);
+
+ tf = new TextField(
+ "A long caption which is probably much longer than the field");
+ tf.setValue("Undefined width");
+ tf.setRequired(true);
+ tf.setComponentError(new UserError("123"));
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_RIGHT);
+
+ tf = new TextField(
+ "A very long caption which is probably much longer than the field and includes indicators");
+ tf.setValue("Undefined width");
+ tf.setIcon(new ThemeResource("icons/16/document-add.png"));
+ tf.setRequired(true);
+ tf.setComponentError(new UserError("abc123"));
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_RIGHT);
+
+ // for (int i = 0; i < 3; i++) {
+ // Button b = new Button("Button " + i);
+ // if (i == 2) {
+ // b.setHeight("200px");
+ // } else {
+ // b.setHeight("100%");
+ // }
+ // ol.addComponent(b);
+ // }
+
+ return ol;
+
+ }
+
+ private Layout layout_captions_fixed_size_and_relative_size(
+ AbstractOrderedLayout ol) {
+ ol.setWidth("700px");
+ ol.setHeight("250px");
+
+ ol.setMargin(false);
+ ol.setSpacing(false);
+
+ // ol.setWidth("");
+ ol.setCaption("Caption test with fixed width (700x250)");
+
+ TextField tf;
+ tf = new TextField("Short caption");
+ tf.setSizeFull();
+ tf.setValue("100% wide field, ratio 1");
+
+ tf.setComponentError(new UserError("123"));
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_RIGHT);
+ ol.setExpandRatio(tf, 1);
+
+ tf = new TextField(
+ "A long caption which is probably much longer than the field");
+ tf.setValue("100% wide field, ratio 2");
+ tf.setSizeFull();
+ tf.setRequired(true);
+ tf.setComponentError(new UserError("123"));
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_RIGHT);
+ ol.setExpandRatio(tf, 2);
+
+ tf = new TextField(
+ "A very long caption which is probably much longer than the field and includes indicators");
+ tf.setValue("100% wide field, ratio 3");
+ tf.setSizeFull();
+ tf.setIcon(new ThemeResource("icons/16/document-add.png"));
+ tf.setRequired(true);
+ tf.setComponentError(new UserError("abc123"));
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_RIGHT);
+ ol.setExpandRatio(tf, 3);
+
+ // for (int i = 0; i < 3; i++) {
+ // Button b = new Button("Button " + i);
+ // if (i == 2) {
+ // b.setHeight("200px");
+ // } else {
+ // b.setHeight("100%");
+ // }
+ // ol.addComponent(b);
+ // }
+
+ return ol;
+
+ }
+
+ private Layout layout_captions_fixed_size_and_fixed_size(
+ AbstractOrderedLayout ol) {
+ ol.setWidth("700px");
+ ol.setHeight("250px");
+
+ ol.setMargin(false);
+ ol.setSpacing(false);
+
+ // ol.setWidth("");
+ ol.setCaption("Caption test with fixed width");
+
+ TextField tf;
+ tf = new TextField("Short caption");
+ tf.setValue("250px wide field");
+ tf.setWidth("250px");
+ tf.setComponentError(new UserError("123"));
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_RIGHT);
+
+ tf = new TextField(
+ "A long caption which is probably much longer than the field");
+ tf.setWidth("250px");
+ tf.setValue("250px wide field");
+ tf.setRequired(true);
+ tf.setComponentError(new UserError("123"));
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_RIGHT);
+
+ tf = new TextField(
+ "A very long caption which is probably much longer than the field and includes indicators");
+ tf.setValue("200px wide field");
+ tf.setWidth("200px");
+ tf.setIcon(new ThemeResource("icons/16/document-add.png"));
+ tf.setRequired(true);
+ tf.setComponentError(new UserError("abc123"));
+ ol.addComponent(tf);
+ ol.setComponentAlignment(tf, Alignment.BOTTOM_RIGHT);
+
+ // for (int i = 0; i < 3; i++) {
+ // Button b = new Button("Button " + i);
+ // if (i == 2) {
+ // b.setHeight("200px");
+ // } else {
+ // b.setHeight("100%");
+ // }
+ // ol.addComponent(b);
+ // }
+
+ return ol;
+
+ }
+
+ private Layout layout_labels(AbstractOrderedLayout ol) {
+ // ol.setWidth("700px");
+ // ol.setHeight("200px");
+
+ ol.setMargin(true);
+ ol.setSpacing(true);
+
+ // ol.setWidth("");
+ ol.setCaption("Caption test with fixed width");
+
+ Label l;
+ l = new Label(
+ "This is a long text and should remain on one line as there is nothing forcing line breaks");
+ ol.addComponent(l);
+ // ol.setComponentAlignment(l, AlignmentHandler.ALIGNMENT_RIGHT,
+ // AlignmentHandler.ALIGNMENT_BOTTOM);
+
+ l = new Label("WTF OMG LOL");
+ ol.addComponent(l);
+ // ol.setComponentAlignment(l, AlignmentHandler.ALIGNMENT_RIGHT,
+ // AlignmentHandler.ALIGNMENT_BOTTOM);
+
+ return ol;
+
+ }
+
+ private AbstractOrderedLayout createAddRemove(AbstractOrderedLayout ol,
+ String width, String buttonSuffix) {
+ Button b = createAddButton(ol);
+ Button wb = createWideAddButton(ol);
+ Button r = createRemoveButton(ol, buttonSuffix);
+ VerticalLayout inner = new VerticalLayout();
+ inner.setCaption("Width: " + width);
+ inner.setWidth(width);
+
+ inner.addComponent(b);
+ inner.addComponent(wb);
+ inner.addComponent(r);
+
+ // inner.setHeight("132px");
+ return inner;
+ }
+
+ private Button createAddButton(AbstractOrderedLayout ol) {
+ Button b = new Button("Add before", new ClickListener() {
+
+ @Override
+ public void buttonClick(ClickEvent event) {
+ addBefore((AbstractOrderedLayout) event.getButton().getData(),
+ event.getButton().getParent(), "");
+ }
+
+ });
+ b.setData(ol);
+
+ return b;
+ }
+
+ private Button createWideAddButton(AbstractOrderedLayout ol) {
+ Button b = new Button("Add 100% before", new ClickListener() {
+
+ @Override
+ public void buttonClick(ClickEvent event) {
+ addBefore((AbstractOrderedLayout) event.getButton().getData(),
+ event.getButton().getParent(), "100%");
+ }
+
+ });
+ b.setData(ol);
+
+ return b;
+ }
+
+ private Button createRemoveButton(AbstractOrderedLayout ol, String suffix) {
+ Button b = new Button("Remove this " + suffix, new ClickListener() {
+
+ @Override
+ public void buttonClick(ClickEvent event) {
+ remove((AbstractOrderedLayout) event.getButton().getData(),
+ event.getButton().getParent());
+ }
+
+ });
+ b.setWidth("100%");
+ b.setData(ol);
+
+ return b;
+ }
+
+ protected void remove(AbstractOrderedLayout ol, Component c) {
+ ol.removeComponent(c);
+
+ }
+
+ protected void addBefore(AbstractOrderedLayout ol, Component c, String width) {
+ int index = 0;
+ Iterator<Component> iter = ol.getComponentIterator();
+ while (iter.hasNext()) {
+ if (iter.next() == c) {
+ break;
+ }
+ index++;
+ }
+ AbstractOrderedLayout inner = createAddRemove(ol, width,
+ String.valueOf(suffix++));
+ ol.addComponent(inner, index);
+ if (width.contains("%")) {
+ ol.setExpandRatio(inner, 1.0f);
+ }
+
+ ol.setComponentAlignment(inner, Alignment.BOTTOM_RIGHT);
+
+ }
+
+ private Layout layout_pctFilled(AbstractOrderedLayout ol) {
+ ol.setHeight("600px");
+ ol.setWidth("600px");
+ ol.setMargin(true);
+ ol.setSpacing(true);
+
+ // ol.setWidth("");
+ ol.setCaption("100 % filled with fixed width (" + ol.getWidth()
+ + "px) and fixed height (" + ol.getHeight() + "px)");
+ TextArea ta;
+
+ ta = new TextArea();
+ ta.setCaption("This one has a caption");
+ ta.setValue("60% expand TextField");
+ ta.setWidth("100%");
+ ta.setHeight("100%");
+ // ta.setRequired(true);
+ // ta.setComponentError(new UserError("It's broken!"));
+
+ // ta.setHeight("100%");
+ // ta.setWidth("100px");
+ ta.setRows(2);
+ ol.addComponent(ta);
+ ol.setExpandRatio(ta, 60);
+
+ ta = new TextArea();
+ ta.setValue("100px 100px TextField");
+ ta.setWidth("100px");
+ ta.setHeight("100px");
+ ta.setRows(2);
+ ol.addComponent(ta);
+ ol.setComponentAlignment(ta, Alignment.MIDDLE_CENTER);
+
+ //
+
+ ta = new TextArea("40%x40% Field");
+ // ta.setCaption(null);
+ ta.setValue("40% expand (40% height) TextField");
+ ta.setWidth("100%");
+ ta.setHeight("40%");
+ ol.addComponent(ta);
+ ol.setExpandRatio(ta, 40);
+ // ta.setRequired(true);
+ ol.setComponentAlignment(ta, Alignment.BOTTOM_RIGHT);
+
+ ta.setRows(2);
+
+ return ol;
+ }
+
+ @SuppressWarnings("unused")
+ private Layout layout_pctFilled2(AbstractOrderedLayout ol) {
+ ol.setHeight("600px");
+ ol.setWidth("600px");
+ ol.setMargin(true);
+ ol.setSpacing(false);
+
+ // ol.setWidth("");
+ ol.setCaption("100 % filled with fixed width (" + ol.getWidth()
+ + "px) and fixed height (" + ol.getHeight() + "px)");
+ TextArea ta;
+
+ ta = new TextArea();
+ // ta.setCaption("This one has a caption");
+ ta.setValue("80% x 20% TextField");
+ ta.setWidth("80%");
+ ta.setHeight("20%");
+ // ta.setRequired(true);
+ // ta.setComponentError(new UserError("It's broken!"));
+
+ // ta.setHeight("100%");
+ // ta.setWidth("100px");
+ ta.setRows(2);
+ ol.addComponent(ta);
+ //
+
+ ta = new TextArea("20%x60% Field");
+ ta.setCaption(null);
+ ta.setValue("20% x 60% TextField");
+ ta.setWidth("20%");
+ ta.setHeight("60%");
+ // ta.setRequired(true);
+ ol.setComponentAlignment(ta, Alignment.BOTTOM_RIGHT);
+
+ ta.setRows(2);
+ ol.addComponent(ta);
+
+ return ol;
+ }
+
+ private Layout layout_underFilled(AbstractOrderedLayout ol) {
+ ol.setHeight("700px");
+ ol.setWidth("700px");
+ ol.setMargin(true);
+ ol.setSpacing(true);
+
+ // ol.setWidth("");
+ ol.setCaption("Underfilled with fixed width (" + ol.getWidth()
+ + "px) and fixed height (" + ol.getHeight() + "px)");
+ TextArea ta;
+
+ ta = new TextArea("60%x100% Field");
+ ta.setCaption("Short capt");
+ ta.setValue("60% x 100% TextField");
+ ta.setWidth("60%");
+ ta.setHeight("100%");
+ ta.setRequired(true);
+ ta.setRows(2);
+
+ ol.addComponent(ta);
+ ol.setComponentAlignment(ta, Alignment.MIDDLE_CENTER);
+
+ ta = new TextArea("200px x 200px Field");
+ // ta.setIcon(new ThemeResource("icons/16/document-add.png"));
+ ta.setValue("200x200 field");
+ ta.setRows(2);
+ // ta.setSizeFull();
+ ta.setHeight("200px");
+ ta.setWidth("200px");
+ ol.addComponent(ta);
+ ol.setComponentAlignment(ta, Alignment.TOP_LEFT);
+
+ ta = new TextArea("200px x 200px Field");
+ // ta.setIcon(new ThemeResource("icons/16/document-add.png"));
+ ta.setValue("200x200 field");
+ ta.setRows(2);
+ // ta.setSizeFull();
+ ta.setHeight("200px");
+ ta.setWidth("200px");
+ ol.addComponent(ta);
+ ol.setComponentAlignment(ta, Alignment.BOTTOM_RIGHT);
+ return ol;
+ }
+
+} \ No newline at end of file