summaryrefslogtreecommitdiffstats
path: root/uitest/src/com/vaadin/tests/LayoutDemo.java
diff options
context:
space:
mode:
Diffstat (limited to 'uitest/src/com/vaadin/tests/LayoutDemo.java')
-rw-r--r--uitest/src/com/vaadin/tests/LayoutDemo.java157
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)));
+ }
+ }
+
+}