aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/itmill/toolkit/demo/WindowedDemos.java
diff options
context:
space:
mode:
authorMarc Englund <marc.englund@itmill.com>2007-11-12 08:58:09 +0000
committerMarc Englund <marc.englund@itmill.com>2007-11-12 08:58:09 +0000
commit0ca539b64cc7f74c7a60d8398e6bbb88a2cbb406 (patch)
tree9901bf9fad61eb5f556d9a30cd893d296a6d2221 /src/com/itmill/toolkit/demo/WindowedDemos.java
parent0b1700e2d214af52753aefdc1a22dc4763cf17d9 (diff)
downloadvaadin-framework-0ca539b64cc7f74c7a60d8398e6bbb88a2cbb406.tar.gz
vaadin-framework-0ca539b64cc7f74c7a60d8398e6bbb88a2cbb406.zip
Added "WindowedDemos" demo
svn changeset:2790/svn branch:trunk
Diffstat (limited to 'src/com/itmill/toolkit/demo/WindowedDemos.java')
-rw-r--r--src/com/itmill/toolkit/demo/WindowedDemos.java86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/com/itmill/toolkit/demo/WindowedDemos.java b/src/com/itmill/toolkit/demo/WindowedDemos.java
new file mode 100644
index 0000000000..04e67bbf3b
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/WindowedDemos.java
@@ -0,0 +1,86 @@
+package com.itmill.toolkit.demo;
+
+import java.util.HashMap;
+import java.util.Iterator;
+
+import com.itmill.toolkit.terminal.ExternalResource;
+import com.itmill.toolkit.ui.Button;
+import com.itmill.toolkit.ui.Window;
+import com.itmill.toolkit.ui.Button.ClickEvent;
+
+/**
+ * Embeds other demos in windows using an ExternalResource ("application in
+ * application").
+ *
+ * @author IT Mill Ltd.
+ * @see com.itmill.toolkit.ui.Window
+ */
+public class WindowedDemos extends com.itmill.toolkit.Application {
+
+ // keeps track of created windows
+ private final HashMap windows = new HashMap();
+
+ // mapping demo name to URL
+ private static final HashMap servlets = new HashMap();
+ static {
+ servlets.put("Caching demo", "CachingDemo/");
+ servlets.put("Calculator", "Calc/");
+ servlets.put("Calendar demo", "CalendarDemo/");
+ servlets.put("Select demo", "SelectDemo/");
+ servlets.put("Table demo", "TableDemo/");
+ servlets.put("Browser demo", "BrowserDemo/");
+ servlets.put("Notification demo", "NotificationDemo/");
+ }
+
+ public void init() {
+
+ // Create new window for the application and give the window a visible.
+ Window main = new Window("IT Mill Toolkit 5 Windowed Demos");
+ // set as main window
+ setMainWindow(main);
+
+ // Create menu window.
+ Window menu = new Window("Select demo");
+ menu.setWidth(200);
+ menu.setHeight(400);
+ main.addWindow(menu); // add to layout
+
+ // Create a menu button for each demo
+ for (Iterator it = servlets.keySet().iterator(); it.hasNext();) {
+ String name = (String) it.next();
+ Button b = new Button(name, new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ show(event.getButton().getCaption());
+ }
+
+ });
+ b.setStyleName("link");
+ menu.addComponent(b);
+ }
+
+ }
+
+ /**
+ * Shows the specified demo in a separate window. Creates a new window if
+ * the demo has not been shown already, re-uses old window otherwise.
+ *
+ * @param demoName
+ * the name of the demo to be shown
+ */
+ private void show(String demoName) {
+ Window w = (Window) windows.get(demoName);
+ if (w == null) {
+ w = new Window(demoName);
+ w.setWidth(520);
+ w.setHeight(500);
+ w.setPositionX(202);
+ windows.put(demoName, w);
+ getMainWindow().addWindow(w);
+ } else {
+ w.setVisible(true);
+ }
+ w.open(new ExternalResource((String) servlets.get(demoName)));
+
+ }
+
+}