From db35e488161a33097eb9876c5adc2dbb793fd59e Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Wed, 7 Nov 2012 15:16:05 +0200 Subject: [PATCH] Test for #10155 Change-Id: I63428b4ae8492aba253dc3ac1c024bd61b692818 --- .../AbsoluteLayoutHideComponent.java | 161 ++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 uitest/src/com/vaadin/tests/components/absolutelayout/AbsoluteLayoutHideComponent.java diff --git a/uitest/src/com/vaadin/tests/components/absolutelayout/AbsoluteLayoutHideComponent.java b/uitest/src/com/vaadin/tests/components/absolutelayout/AbsoluteLayoutHideComponent.java new file mode 100644 index 0000000000..b08d27eefa --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/absolutelayout/AbsoluteLayoutHideComponent.java @@ -0,0 +1,161 @@ +/* + * Copyright 2011 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.components.absolutelayout; + +import com.vaadin.server.ThemeResource; +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.AbsoluteLayout; +import com.vaadin.ui.Alignment; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.Embedded; +import com.vaadin.ui.GridLayout; +import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.Label; +import com.vaadin.ui.PasswordField; +import com.vaadin.ui.TextField; +import com.vaadin.ui.VerticalLayout; + +public class AbsoluteLayoutHideComponent extends AbstractTestUI { + + private AbsoluteLayout mainLayout; + private VerticalLayout topBar = new VerticalLayout(); + private GridLayout menu; + private TextField editEmail = new TextField(); + private PasswordField editPassword = new PasswordField(); + + @Override + protected void setup(VaadinRequest request) { + mainLayout = new AbsoluteLayout(); + mainLayout.setImmediate(true); + mainLayout.setWidth("100%"); + mainLayout.setHeight("100%"); + + topBar.setHeight("50px"); + topBar.setWidth("100%"); + + HorizontalLayout layoutLogin = new HorizontalLayout(); + layoutLogin.setSpacing(true); + layoutLogin.setHeight("100%"); + + Label label_eMail = new Label("e-Mail:"); + layoutLogin.addComponent(label_eMail); + editEmail.setWidth("200px"); + editEmail.setTabIndex(1); + layoutLogin.addComponent(editEmail); + layoutLogin.addComponent(new Label(" ")); + + layoutLogin.addComponent(new Label(" ")); + Label label_password = new Label("password:"); + layoutLogin.addComponent(label_password); + editPassword.setWidth("100px"); + editPassword.setTabIndex(2); + layoutLogin.addComponent(editPassword); + layoutLogin.addComponent(new Label(" ")); + + // btnLogin + Button btnLogin = new Button(); + btnLogin.setCaption("Login"); + btnLogin.setImmediate(false); + btnLogin.setWidth("-1px"); + btnLogin.setHeight("-1px"); + btnLogin.addClickListener(new Button.ClickListener() { + public void buttonClick(Button.ClickEvent event) { + login(); + } + }); + layoutLogin.addComponent(btnLogin); + + for (int index = 0; index < layoutLogin.getComponentCount(); index++) { + layoutLogin.setComponentAlignment(layoutLogin.getComponent(index), + Alignment.MIDDLE_CENTER); + } + + // =====> THIS CODE generates error + // WITHOUT THIS CODE works fine + + Embedded e = new Embedded("", new ThemeResource( + "../runo/icons/64/ok.png")); + // e.setMimeType("image/jpg"); + e.setWidth("100%"); + e.setHeight("100%"); + mainLayout.addComponent(e); + + // ======= + + topBar.addComponent(layoutLogin); + mainLayout.addComponent(topBar, "left:0px;top:0px;"); + + menu = buildMenu(); + menu.setVisible(false); + mainLayout.addComponent(menu, "left:20px;top:70px;"); + + setContent(mainLayout); + } + + private GridLayout buildMenu() { + GridLayout gridButtons = new GridLayout(2, 3); + + Button btn1 = new Button("Button one"); + btn1.setImmediate(true); + btn1.addClickListener(new Button.ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + } + }); + gridButtons.addComponent(btn1, 0, 0); + + Button btn2 = new Button("Button two"); + btn2.setImmediate(true); + btn2.addClickListener(new Button.ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + } + }); + gridButtons.addComponent(btn2, 0, 1); + + Button btn3 = new Button("Button three"); + btn3.setImmediate(true); + btn3.addClickListener(new Button.ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + } + }); + gridButtons.addComponent(btn3, 1, 0); + + return gridButtons; + } + + private void login() { + menu.setVisible(true); + topBar.setVisible(false); + } + + @Override + protected String getTestDescription() { + return "Clicking on the button should hide the fields and the button but leave the image"; + } + + @Override + protected Integer getTicketNumber() { + return 10155; + } + +} -- 2.39.5