]> source.dussan.org Git - vaadin-framework.git/commitdiff
Better naming of classes.
authorJani Laakso <jani.laakso@itmill.com>
Wed, 4 Apr 2007 08:02:52 +0000 (08:02 +0000)
committerJani Laakso <jani.laakso@itmill.com>
Wed, 4 Apr 2007 08:02:52 +0000 (08:02 +0000)
svn changeset:1125/svn branch:trunk

src/com/itmill/toolkit/demo/KeyboardShortcut.java [new file with mode: 0644]
src/com/itmill/toolkit/demo/UpgradingSample.java [new file with mode: 0644]

diff --git a/src/com/itmill/toolkit/demo/KeyboardShortcut.java b/src/com/itmill/toolkit/demo/KeyboardShortcut.java
new file mode 100644 (file)
index 0000000..4584ec6
--- /dev/null
@@ -0,0 +1,130 @@
+package com.itmill.toolkit.demo;
+
+import com.itmill.toolkit.event.Action;
+import com.itmill.toolkit.event.ShortcutAction;
+import com.itmill.toolkit.event.Action.Handler;
+import com.itmill.toolkit.ui.*;
+
+public class KeyboardShortcut extends com.itmill.toolkit.Application implements Handler {
+       Window main;
+
+       Button a;
+
+       Button b;
+
+       Button c;
+
+       Button close;
+
+       Button d;
+
+       private AbstractField f;
+
+       public void init() {
+
+               /*
+                * - Create new window for the application - Give the window a visible
+                * title - Set the window to be the main window of the application
+                */
+               main = new Window("Hello window");
+               setMainWindow(main);
+
+               // set the application to use Corporate -theme
+               setTheme("corporate");
+
+               /*
+                * - Create a label with the classic text - Add the label to the main
+                * window
+                */
+               main
+                               .addComponent(new Label(
+                                               "This is a test program for shortcut actions<br />"
+                                                               + "<b>Note:</b> if events do not work, <b>set focus to Textfield first!</b>",
+                                               Label.CONTENT_XHTML));
+               main
+                               .addComponent(new Label(
+                                               "ESC restarts program, alt-A hits A button, ctrl-B hits B button, ctrl-shift-C hits C"));
+
+               // Restart button
+               close = new Button("restart", this, "close");
+               close.addActionHandler(this);
+               main.addComponent(close);
+
+               a = new Button("Button A", this, "buttonAHandler");
+               a.addActionHandler(this);
+
+               b = new Button("Button B", this, "buttonBHandler");
+               b.addActionHandler(this);
+
+               c = new Button("Button C", this, "buttonCHandler");
+               c.addActionHandler(this);
+
+               f = new TextField("Textfield");
+
+               main.addComponent(a);
+               main.addComponent(b);
+               main.addComponent(c);
+               main.addComponent(f);
+
+               d = new Button("Click to focus button B", this, "setFocusB");
+               main.addComponent(d);
+               d = new Button("Click to focus Textfield", this, "setFocusF");
+               main.addComponent(d);
+               f.focus();
+       }
+
+       public void setFocusB() {
+               b.focus();
+       }
+
+       public void setFocusF() {
+               f.focus();
+       }
+
+       public Action[] getActions(Object target, Object sender) {
+               Action[] actions = new Action[1];
+               if (sender == b) {
+                       actions[0] = (Action) (new ShortcutAction("Button b action",
+                                       ShortcutAction.KeyCode.B,
+                                       new int[] { ShortcutAction.ModifierKey.CTRL }));
+
+               } else if (sender == c) {
+                       actions[0] = (Action) new ShortcutAction("Button c action",
+                                       ShortcutAction.KeyCode.C, new int[] {
+                                                       ShortcutAction.ModifierKey.CTRL,
+                                                       ShortcutAction.ModifierKey.SHIFT });
+               } else if (sender == a) {
+                       actions[0] = (Action) new ShortcutAction("Button a action",
+                                       ShortcutAction.KeyCode.A,
+                                       new int[] { ShortcutAction.ModifierKey.ALT });
+               } else {
+                       // restart button
+                       actions[0] = new ShortcutAction("Restart ",
+                                       ShortcutAction.KeyCode.ESCAPE, null);
+               }
+               return actions;
+       }
+
+       public void handleAction(Action action, Object sender, Object target) {
+               if (target == a)
+                       this.buttonAHandler();
+               if (target == b)
+                       this.buttonBHandler();
+               if (target == c)
+                       this.buttonCHandler();
+               if (target == close)
+                       this.close();
+       }
+
+       public void buttonAHandler() {
+               main.addComponent(new Label("Button A handler fired"));
+       }
+
+       public void buttonBHandler() {
+               main.addComponent(new Label("Button B handler fired"));
+       }
+
+       public void buttonCHandler() {
+               main.addComponent(new Label("Button C handler fired"));
+       }
+}
diff --git a/src/com/itmill/toolkit/demo/UpgradingSample.java b/src/com/itmill/toolkit/demo/UpgradingSample.java
new file mode 100644 (file)
index 0000000..820c7d3
--- /dev/null
@@ -0,0 +1,143 @@
+package com.itmill.toolkit.demo;
+
+import com.itmill.toolkit.Application;
+import com.itmill.toolkit.data.Property;
+import com.itmill.toolkit.ui.*;
+
+/**
+ * <p>
+ * Example application demonstrating simple user login. This example is from
+ * MillStone 3.1.1 examples section. Upgrading from 3.1.1 to 4.0.0 was done by
+ * updating imports, also setTheme("corporate") call was added to application
+ * init method. 
+ * </p>
+ * 
+ * @since 3.1.1
+ * @author IT Mill Ltd.
+ */
+public class UpgradingSample extends Application implements Property.ValueChangeListener {
+
+       /* Menu for navigating inside the application. */
+       private Tree menu = new Tree();
+
+       /* Contents of the website */
+       private String[][] pages = { { "Welcome", "Welcome to our website..." },
+                       { "Products", "Public product information." },
+                       { "Contact", "Public contact information." },
+                       { "CRM", "CRM Database requiring login." },
+                       { "Intranet", "Internal information database." } };
+
+       /* Application layout */
+       private GridLayout layout = new GridLayout(2, 1);
+
+       /* Initialize the application */
+       public void init() {
+
+               // set the application to use Corporate -theme
+               setTheme("corporate");
+
+               // Create the main window of the application
+               Window main = new Window("Login example", layout);
+               setMainWindow(main);
+
+               // Add menu and loginbox to the application
+               OrderedLayout l = new OrderedLayout();
+               layout.addComponent(l, 0, 0);
+               l.addComponent(menu);
+               l.addComponent(new LoginBox());
+
+               // Setup menu
+               menu.setStyle("menu");
+               menu.addListener(this);
+               menu.setImmediate(true);
+               addToMenu(new String[] { "Welcome", "Products", "Contact" });
+       }
+
+       // Overriding usetUser method is a simple way of updating application
+       // privileges when the user is changed
+       public void setUser(Object user) {
+               super.setUser(user);
+               if (user != null)
+                       addToMenu(new String[] { "CRM", "Intranet" });
+       }
+
+       public void addToMenu(String[] items) {
+               for (int i = 0; i < items.length; i++) {
+                       menu.addItem(items[i]);
+                       menu.setChildrenAllowed(items[i], false);
+               }
+               if (menu.getValue() == null)
+                       menu.setValue(items[0]);
+       }
+
+       // Handle menu selection and update visible page
+       public void valueChange(Property.ValueChangeEvent event) {
+               layout.removeComponent(1, 0);
+               String title = (String) menu.getValue();
+               for (int i = 0; i < pages.length; i++)
+                       if (pages[i][0].equals(title)) {
+                               Panel p = new Panel(pages[i][0]);
+                               p.addComponent(new Label(pages[i][1]));
+                               p.setStyle("strong");
+                               layout.addComponent(p, 1, 0);
+                       }
+       }
+
+       // Simple loginbox component for the application
+       public class LoginBox extends CustomComponent implements
+                       Application.UserChangeListener {
+
+               // The components this loginbox is composed of
+               private TextField loginName = new TextField("Name");
+
+               private Button loginButton = new Button("Enter", this, "login");
+
+               private Panel loginPanel = new Panel("Login");
+
+               private Panel statusPanel = new Panel();
+
+               private Button logoutButton = new Button("Logout", UpgradingSample.this, "close");
+
+               private Label statusLabel = new Label();
+
+               // Initialize login component
+               public LoginBox() {
+
+                       // Initialize the component
+                       loginPanel.addComponent(loginName);
+                       loginPanel.addComponent(loginButton);
+                       loginPanel.setStyle("strong");
+                       loginName.setColumns(8);
+                       statusPanel.addComponent(statusLabel);
+                       statusPanel.addComponent(logoutButton);
+
+                       // Set the status of the loginbox and show correct components
+                       updateStatus();
+
+                       // Listen application user change events
+                       UpgradingSample.this.addListener(this);
+               }
+
+               // Login into application
+               public void login() {
+                       String name = (String) loginName.getValue();
+                       if (name != null && name.length() > 0)
+                               setUser(name);
+                       loginName.setValue("");
+               }
+
+               // Update login status on application user change events
+               public void applicationUserChanged(Application.UserChangeEvent event) {
+                       updateStatus();
+               }
+
+               // Update login status of the component by exposing correct components
+               private void updateStatus() {
+                       statusLabel.setValue("User: " + getUser());
+                       if (getUser() != null)
+                               setCompositionRoot(statusPanel);
+                       else
+                               setCompositionRoot(loginPanel);
+               }
+       }
+}