diff options
Diffstat (limited to 'uitest/src/com/vaadin/tests/LayoutDemo.java')
-rw-r--r-- | uitest/src/com/vaadin/tests/LayoutDemo.java | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/LayoutDemo.java b/uitest/src/com/vaadin/tests/LayoutDemo.java new file mode 100644 index 0000000000..a5331b94af --- /dev/null +++ b/uitest/src/com/vaadin/tests/LayoutDemo.java @@ -0,0 +1,157 @@ +/* + * 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; + +import com.vaadin.server.ClassResource; +import com.vaadin.shared.ui.label.ContentMode; +import com.vaadin.ui.Component; +import com.vaadin.ui.Embedded; +import com.vaadin.ui.GridLayout; +import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.Label; +import com.vaadin.ui.Layout; +import com.vaadin.ui.Panel; +import com.vaadin.ui.TabSheet; +import com.vaadin.ui.UI.LegacyWindow; +import com.vaadin.ui.VerticalLayout; + +/** + * This example demonstrates layouts. Layouts are populated with sample Vaadin + * UI components. + * + * @author Vaadin Ltd. + * @since 4.0.0 + * + */ +public class LayoutDemo extends com.vaadin.Application.LegacyApplication { + + /** + * Initialize Application. Demo components are added to main window. + */ + @Override + public void init() { + final LegacyWindow mainWindow = new LegacyWindow("Layout demo"); + setMainWindow(mainWindow); + + // + // Create horizontal ordered layout + // + final HorizontalLayout layoutA = new HorizontalLayout(); + // Add 4 panels + fillLayout(layoutA, 4); + + // + // Create vertical ordered layout + // + final VerticalLayout layoutB = new VerticalLayout(); + // Add 4 panels + fillLayout(layoutB, 4); + + // + // Create grid layout + // + final GridLayout layoutG = new GridLayout(4, 4); + // Add 16 panels components + fillLayout(layoutG, 16); + + // + // Create grid layout + // + final GridLayout layoutG2 = new GridLayout(4, 4); + // Add 4 panels with absolute coordinates (diagonally) + layoutG2.addComponent(getExampleComponent("x=0, y=0"), 0, 0); + layoutG2.addComponent(getExampleComponent("x=1, y=1"), 1, 1); + layoutG2.addComponent(getExampleComponent("x=2, y=2"), 2, 2); + layoutG2.addComponent(getExampleComponent("x=3, y=3"), 3, 3); + // Add 4 pictures with absolute coordinates (diagonally) + layoutG2.addComponent(getExamplePicture("x=3, y=0"), 3, 0); + layoutG2.addComponent(getExamplePicture("x=2, y=1"), 2, 1); + layoutG2.addComponent(getExamplePicture("x=1, y=2"), 1, 2); + layoutG2.addComponent(getExamplePicture("x=0, y=3"), 0, 3); + + // + // Create TabSheet + // + final TabSheet tabsheet = new TabSheet(); + tabsheet.setCaption("Tabsheet, above layouts are added to this component"); + tabsheet.addTab(layoutA, "Horizontal ordered layout", null); + tabsheet.addTab(layoutB, "Vertical ordered layout", null); + tabsheet.addTab(layoutG, "First grid layout", null); + tabsheet.addTab(layoutG2, "Second grid layout", null); + + // + // Add demo layouts to main window + // + mainWindow.addComponent(new Label( + "<h3>Horizontal ordered layout</h3>Added four components.", + ContentMode.XHTML)); + mainWindow.addComponent(layoutA); + mainWindow.addComponent(new Label( + "<br /><h3>Vertical ordered layout</h3>Added four components.", + ContentMode.XHTML)); + mainWindow.addComponent(layoutB); + mainWindow.addComponent(new Label( + "<br /><h3>Grid Layout (4 x 4)</h3>Added 16 components.", + ContentMode.XHTML)); + mainWindow.addComponent(layoutG); + mainWindow.addComponent(new Label("<br /><h3>Grid Layout (4 x 4)</h3>" + + "Added four panels and four embedded components " + + "diagonally with absolute coordinates.", ContentMode.XHTML)); + mainWindow.addComponent(layoutG2); + mainWindow.addComponent(new Label( + "<br /><h3>TabSheet</h3>Added above layouts as tabs.", + ContentMode.XHTML)); + mainWindow.addComponent(tabsheet); + + } + + private Component getExamplePicture(String caption) { + // loads image from package com.vaadin.demo + final ClassResource cr = new ClassResource("m-bullet-blue.gif"); + final Embedded em = new Embedded("Embedded " + caption, cr); + em.setWidth("170px"); + return em; + } + + private Component getExampleComponent(String caption) { + final Panel panel = new Panel(); + panel.setCaption("Panel component " + caption); + panel.addComponent(new Label( + "Panel is a container for other components, by default it draws a frame around it's " + + "extremities and may have a caption to clarify the nature of the contained components' purpose." + + " Panel contains an layout where the actual contained components are added, " + + "this layout may be switched on the fly.", + ContentMode.XHTML)); + panel.setWidth("222px"); + return panel; + } + + /** + * Add multiple demo component to given layout. + * + * @param layout + * where components are added + * @param numberOfComponents + * to add + */ + private void fillLayout(Layout layout, int numberOfComponents) { + for (int i = 1; i <= numberOfComponents; i++) { + layout.addComponent(getExampleComponent(Integer.toString(i))); + } + } + +} |