package com.vaadin.tests.components.orderedlayout; import com.vaadin.server.ThemeResource; import com.vaadin.shared.ui.ContentMode; import com.vaadin.tests.components.TestBase; 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.HorizontalLayout; import com.vaadin.ui.HorizontalSplitPanel; import com.vaadin.ui.Label; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.VerticalSplitPanel; import com.vaadin.v7.ui.Table; import com.vaadin.v7.ui.themes.Reindeer; public class LayoutResizeTest extends TestBase { @Override protected void setup() { getLayout().setSizeFull(); HorizontalSplitPanel split1 = new HorizontalSplitPanel(); split1.setSizeFull(); addComponent(split1); VerticalLayout left = new VerticalLayout(); left.setSizeFull(); split1.setFirstComponent(left); left.setSpacing(true); left.setMargin(true); left.addComponent( new Label("<h2>Layout resize test</h2>", ContentMode.HTML)); Button resize = new Button("Resize to 700x400", new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { event.getButton().getUI().getPage().getJavaScript() .execute( "setTimeout(function() {window.resizeTo(700,400)}, 500)"); } }); left.addComponent(resize); resize = new Button("Resize to 900x600", new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { event.getButton().getUI().getPage().getJavaScript().execute( "setTimeout(function() {window.resizeTo(900,600)}, 500)"); } }); left.addComponent(resize); left.addComponent(new Label( "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vel ante a orci tempus eleifend ut et magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus luctus urna sed urna ultricies.")); Table table1 = new Table(); table1.setSizeFull(); table1.addContainerProperty("Column", String.class, ""); for (int i = 1; i <= 100; i++) { table1.addItem(new Object[] { "Value " + i }, i); } left.addComponent(table1); left.setExpandRatio(table1, 1); VerticalSplitPanel split2 = new VerticalSplitPanel(); split2.setSizeFull(); split1.setSecondComponent(split2); Table table2 = new Table(); table2.setSizeFull(); table2.addContainerProperty("Column 1", String.class, ""); table2.addContainerProperty("Column 2", String.class, ""); table2.addContainerProperty("Column 3", String.class, ""); table2.addContainerProperty("Column 4", String.class, ""); for (int i = 1; i <= 100; i++) { table2.addItem(new Object[] { "Value " + i, "Value " + i, "Value " + i, "Value " + i }, i); } split2.setFirstComponent(table2); VerticalLayout rows = new VerticalLayout(); rows.setWidth("100%"); rows.setSpacing(true); rows.setMargin(true); for (int i = 1; i <= 100; i++) { rows.addComponent(getRow(i)); } split2.setSecondComponent(rows); } private HorizontalLayout getRow(int i) { HorizontalLayout row = new HorizontalLayout(); row.setWidth("100%"); row.setSpacing(true); Embedded icon = new Embedded(null, new ThemeResource("../runo/icons/32/document.png")); row.addComponent(icon); row.setComponentAlignment(icon, Alignment.MIDDLE_LEFT); Label text = new Label("Row content #" + i + ". In pellentesque faucibus vestibulum. Nulla at nulla justo, eget luctus tortor. Nulla facilisi. Duis aliquet."); row.addComponent(text); row.setExpandRatio(text, 1); Button button = new Button("Edit"); button.addStyleName(Reindeer.BUTTON_SMALL); row.addComponent(button); row.setComponentAlignment(button, Alignment.MIDDLE_LEFT); button = new Button("Delete"); button.addStyleName(Reindeer.BUTTON_SMALL); row.addComponent(button); row.setComponentAlignment(button, Alignment.MIDDLE_LEFT); return row; } @Override protected String getDescription() { // TODO Auto-generated method stub return null; } @Override protected Integer getTicketNumber() { // TODO Auto-generated method stub return null; } }