123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- 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.AbstractReindeerTestUI;
- 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.VerticalLayout;
- import com.vaadin.v7.ui.Table;
- import com.vaadin.v7.ui.TextArea;
- import com.vaadin.v7.ui.TextField;
-
- public class VerticalLayoutWithEmptyLabel extends AbstractReindeerTestUI {
-
- 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() {
- VerticalLayout layout = new VerticalLayout();
- layout.setMargin(true);
- Panel panel = new Panel(layout);
- 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");
-
- // 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;
- }
- }
|