123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- /*
- * Copyright 2000-2016 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.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.LegacyWindow;
- import com.vaadin.ui.Panel;
- import com.vaadin.ui.TabSheet;
- 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.server.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.HTML));
- mainWindow.addComponent(layoutA);
- mainWindow.addComponent(new Label(
- "<br /><h3>Vertical ordered layout</h3>Added four components.",
- ContentMode.HTML));
- mainWindow.addComponent(layoutB);
- mainWindow.addComponent(new Label(
- "<br /><h3>Grid Layout (4 x 4)</h3>Added 16 components.",
- ContentMode.HTML));
- 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.HTML));
- mainWindow.addComponent(layoutG2);
- mainWindow.addComponent(
- new Label("<br /><h3>TabSheet</h3>Added above layouts as tabs.",
- ContentMode.HTML));
- 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) {
- VerticalLayout layout = new VerticalLayout();
- layout.setMargin(true);
- final Panel panel = new Panel(layout);
- panel.setCaption("Panel component " + caption);
- layout.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 a layout where the actual contained components are added, "
- + "this layout may be switched on the fly.",
- ContentMode.HTML));
- 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)));
- }
- }
-
- }
|