]> source.dussan.org Git - vaadin-framework.git/commitdiff
Test for #10098 23/223/1
authorArtur Signell <artur@vaadin.com>
Wed, 7 Nov 2012 10:15:27 +0000 (12:15 +0200)
committerArtur Signell <artur@vaadin.com>
Wed, 7 Nov 2012 10:15:39 +0000 (12:15 +0200)
Change-Id: I50fd7fc998ca394bfd1139b26a19bd5bb48cc354

uitest/src/com/vaadin/tests/components/orderedlayout/VerticalLayoutWithEmptyLabel.java [new file with mode: 0644]

diff --git a/uitest/src/com/vaadin/tests/components/orderedlayout/VerticalLayoutWithEmptyLabel.java b/uitest/src/com/vaadin/tests/components/orderedlayout/VerticalLayoutWithEmptyLabel.java
new file mode 100644 (file)
index 0000000..6f094dc
--- /dev/null
@@ -0,0 +1,214 @@
+package com.vaadin.tests.components.orderedlayout;
+
+import com.vaadin.server.Sizeable;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.shared.ui.MarginInfo;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Alignment;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.CheckBox;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Panel;
+import com.vaadin.ui.Table;
+import com.vaadin.ui.TextArea;
+import com.vaadin.ui.TextField;
+import com.vaadin.ui.VerticalLayout;
+
+public class VerticalLayoutWithEmptyLabel extends AbstractTestUI {
+
+    private static final float UPPER_BAR_HEIGHT = 42;
+
+    private final VerticalLayout rootLayout = new VerticalLayout();
+    private final Label subtitleLabel = new Label();
+    private final String rootTitle;
+
+    private Component lowerPanel;
+
+    public VerticalLayoutWithEmptyLabel() {
+        rootTitle = "Vaadin Layout Bug";
+        getPage().setTitle(rootTitle);
+    }
+
+    @Override
+    public void setup(VaadinRequest request) {
+        buildRootLayout();
+        setContent(rootLayout);
+    }
+
+    @Override
+    public void attach() {
+        super.attach();
+        rebuildLowerPanel();
+    }
+
+    protected void rebuildLowerPanel() {
+        updateLowerPanel(null);
+    }
+
+    private void updateLowerPanel(Object user) {
+
+        // Remove previous content
+        if (lowerPanel != null) {
+            rootLayout.removeComponent(lowerPanel);
+        }
+
+        // If not logged in, present login form, otherwise check user's rights
+        // and build lower panel
+        lowerPanel = new MyPanel();
+
+        // Update layout
+        rootLayout.addComponent(lowerPanel);
+        rootLayout.setExpandRatio(lowerPanel, 1.0f);
+        rootLayout.setComponentAlignment(lowerPanel, Alignment.MIDDLE_CENTER);
+    }
+
+    protected Component getRootLowerPanel() {
+        return lowerPanel;
+    }
+
+    protected void buildRootLayout() {
+        rootLayout.setSpacing(true);
+        rootLayout.setSizeFull();
+        rootLayout.setMargin(new MarginInfo(false, true, true, true));
+        rootLayout.addComponent(buildRootUpperBar());
+        rootLayout.addComponent(buildRootSeparator());
+        rebuildLowerPanel();
+    }
+
+    protected Component buildRootUpperBar() {
+
+        // Title
+        Label titleLabel = new Label(rootTitle);
+        titleLabel.addStyleName("pexp-application-title");
+        titleLabel.setSizeUndefined();
+        titleLabel.setHeight(18, Sizeable.Unit.PIXELS);
+        subtitleLabel.setSizeUndefined();
+        VerticalLayout titleLayout = new VerticalLayout();
+        titleLayout.setSizeUndefined();
+        titleLayout.addComponent(titleLabel);
+        titleLayout.setComponentAlignment(titleLabel, Alignment.BOTTOM_CENTER);
+        titleLayout.addComponent(subtitleLabel);
+        titleLayout.setComponentAlignment(subtitleLabel,
+                Alignment.BOTTOM_CENTER);
+
+        // Sequence parts
+        HorizontalLayout layout = new HorizontalLayout();
+        layout.addStyleName("pexp-main-upper-bar");
+        layout.setSpacing(true);
+        layout.setWidth("100%");
+        layout.setHeight(UPPER_BAR_HEIGHT, Sizeable.Unit.PIXELS);
+        layout.addComponent(titleLayout);
+        layout.setExpandRatio(titleLayout, 1.0f);
+        layout.setComponentAlignment(titleLayout, Alignment.BOTTOM_CENTER);
+        return layout;
+    }
+
+    protected Component buildRootSeparator() {
+        Panel panel = new Panel();
+        panel.addStyleName("pexp-separator");
+        panel.setWidth("100%");
+        panel.setHeight(3.0f, Sizeable.Unit.PIXELS);
+        return panel;
+    }
+
+    class MyPanel extends VerticalLayout {
+
+        private final Table table;
+        private final Label myLabel = new Label("");
+        private final TextField filterPhoneField = new TextField(
+                "Foobar Number");
+        private final TextField filterFoobarField = new TextField("Foobar ID");
+        private final CheckBox incomingOnlyField = new CheckBox(
+                "Incoming foobar only");
+
+        public MyPanel() {
+
+            // Setup layout
+            this.setMargin(true);
+            setSpacing(true);
+            this.setHeight("100%");
+
+            // Setup top layout with controls and fields
+            HorizontalLayout topLayout = new HorizontalLayout();
+            topLayout.setSpacing(true);
+
+            // Foobar Content
+            final TextArea smsContent = new TextArea("Foobar Content");
+            topLayout.addComponent(smsContent);
+            topLayout.setExpandRatio(smsContent, 1);
+            smsContent.setRows(3);
+            smsContent.setColumns(40);
+            // topLayout.setWidth("100%");
+            this.addComponent(topLayout);
+
+            // Foobar phone #
+            final TextField smsNumber = new TextField("Foobar Phone #");
+            smsNumber.setSizeUndefined();
+            smsNumber.setColumns(12);
+            smsNumber.setMaxLength(16);
+            // smsNumber.setStyleName("pexp-fixed-width");
+
+            // Phone number and button layout
+            VerticalLayout buttonNumberLayout = new VerticalLayout();
+            buttonNumberLayout.setSizeUndefined();
+            buttonNumberLayout.setHeight("100%");
+            buttonNumberLayout.addComponent(smsNumber);
+            buttonNumberLayout.addComponent(myLabel);
+            Button button = new Button("Receive Foobar");
+            buttonNumberLayout.addComponent(button);
+            buttonNumberLayout.setExpandRatio(button, 1);
+            buttonNumberLayout.setComponentAlignment(button,
+                    Alignment.BOTTOM_LEFT);
+            topLayout.addComponent(buttonNumberLayout);
+
+            // Add message table
+            table = new Table();
+            table.setWidth("100%");
+            table.setHeight("100%");
+            this.addComponent(table);
+            setExpandRatio(table, 1);
+
+            // Message table controls
+            VerticalLayout tableControlsLayout = new VerticalLayout();
+            tableControlsLayout.setSizeUndefined();
+            tableControlsLayout.setSpacing(true);
+
+            // Configure filter for phone #
+            filterPhoneField.setSizeUndefined();
+            filterPhoneField.setImmediate(true);
+            filterPhoneField.setColumns(12);
+            filterPhoneField.setMaxLength(16);
+            // this.filterPhoneField.setStyleName("pexp-fixed-width");
+
+            // Configure filter for foobar ID
+            filterFoobarField.setSizeUndefined();
+            filterFoobarField.setImmediate(true);
+            filterFoobarField.setColumns(16);
+            filterFoobarField.setMaxLength(16);
+            // this.filterFoobarField.setStyleName("pexp-fixed-width");
+
+            // Configure incoming checkbox
+            incomingOnlyField.setImmediate(true);
+
+            // Add filter inputs for phone # and foobar ID
+            tableControlsLayout.addComponent(filterPhoneField);
+            tableControlsLayout.addComponent(filterFoobarField);
+            topLayout.addComponent(tableControlsLayout);
+            topLayout.addComponent(incomingOnlyField);
+            topLayout.setComponentAlignment(incomingOnlyField,
+                    Alignment.BOTTOM_LEFT);
+        }
+    }
+
+    @Override
+    protected String getTestDescription() {
+        return "foobar";
+    }
+
+    @Override
+    protected Integer getTicketNumber() {
+        return 10098;
+    }
+}