package com.vaadin.tests.components.orderedlayout; import com.vaadin.tests.components.TestBase; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.HorizontalLayout; public class OrderedLayoutComponentOrdering extends TestBase { int counter = 0; @Override protected void setup() { // Initially horizontal layout has a,b Button a = new Button(String.valueOf(++counter)); Button b = new Button(String.valueOf(++counter)); final HorizontalLayout hl = new HorizontalLayout(a, b); hl.setCaption("Horizontal layout"); hl.setSpacing(true); addComponent(hl); Button addFirst = new Button("add first"); addFirst.addClickListener(new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { hl.addComponent(new Button(String.valueOf(++counter)), 0); hl.addComponent(new Button(String.valueOf(++counter)), 1); } }); addComponent(addFirst); Button add = new Button("add second"); add.addClickListener(new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { hl.addComponent(new Button(String.valueOf(++counter)), 1); hl.addComponent(new Button(String.valueOf(++counter)), 2); } }); addComponent(add); Button addThird = new Button("add third"); addThird.addClickListener(new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { hl.addComponent(new Button(String.valueOf(++counter)), 2); hl.addComponent(new Button(String.valueOf(++counter)), 3); } }); addComponent(addThird); Button move = new Button("move last to first"); move.addClickListener(new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { hl.addComponentAsFirst( hl.getComponent(hl.getComponentCount() - 1)); } }); addComponent(move); Button swap = new Button("move forth to second"); swap.addClickListener(new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { hl.addComponent(hl.getComponent(3), 1); } }); addComponent(swap); } @Override protected String getDescription() { return "The order should be 1,3,4,2"; } @Override protected Integer getTicketNumber() { return 10154; } }