package com.vaadin.tests.layouts;

import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;

@SuppressWarnings("serial")
public class MovingInvisibleField extends TestBase {

    @Override
    protected void setup() {
        final VerticalLayout layout1 = new VerticalLayout();
        final VerticalLayout layout2 = new VerticalLayout();

        final TextField tfHidden = new TextField("Hidden text field caption",
                "A hidden text field");
        final TextField tfVisible = new TextField("Visible text field caption",
                "A visible text field");
        tfHidden.setVisible(false);
        Button b = new Button("Move hidden textfield to other layout");
        b.addListener(new ClickListener() {

            public void buttonClick(ClickEvent event) {
                if (layout1.getComponentIndex(tfHidden) != -1) {
                    layout2.addComponent(tfVisible);
                    layout2.addComponent(tfHidden);
                } else {
                    layout1.addComponent(tfVisible);
                    layout1.addComponent(tfHidden);
                }

            }

        });

        layout1.addComponent(tfVisible);
        layout1.addComponent(tfHidden);

        addComponent(layout1);
        addComponent(b);
        addComponent(layout2);
    }

    @Override
    protected String getDescription() {
        return "Above and below the button is a VerticalLayout. Initially the first one contains two components: a visiable and an invisible TextField. Click the button to move the TextFields to the second layout, both should be moved but only the visible rendered.";
    }

    @Override
    protected Integer getTicketNumber() {
        return 5278;
    }
}
