diff options
author | Jani Laakso <jani.laakso@itmill.com> | 2007-04-02 14:27:33 +0000 |
---|---|---|
committer | Jani Laakso <jani.laakso@itmill.com> | 2007-04-02 14:27:33 +0000 |
commit | 7397520086aec1cff86d6da93577c9c8d68aeb3f (patch) | |
tree | c4b26437a7584d7800c391c09a627b1326951bb9 /src/com/itmill/toolkit/demo/Parameters.java | |
parent | dc6043cba8ec3e51a75d7c0f339ad94f39e8f2c3 (diff) | |
download | vaadin-framework-7397520086aec1cff86d6da93577c9c8d68aeb3f.tar.gz vaadin-framework-7397520086aec1cff86d6da93577c9c8d68aeb3f.zip |
Added new demos.
svn changeset:1097/svn branch:trunk
Diffstat (limited to 'src/com/itmill/toolkit/demo/Parameters.java')
-rw-r--r-- | src/com/itmill/toolkit/demo/Parameters.java | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/src/com/itmill/toolkit/demo/Parameters.java b/src/com/itmill/toolkit/demo/Parameters.java new file mode 100644 index 0000000000..1c6b66457a --- /dev/null +++ b/src/com/itmill/toolkit/demo/Parameters.java @@ -0,0 +1,111 @@ +package com.itmill.toolkit.demo; + +import java.net.URL; +import java.util.Iterator; +import java.util.Map; + +import com.itmill.toolkit.terminal.DownloadStream; +import com.itmill.toolkit.terminal.ExternalResource; +import com.itmill.toolkit.terminal.ParameterHandler; +import com.itmill.toolkit.terminal.URIHandler; +import com.itmill.toolkit.ui.*; + +/** + * This is a demonstration of how URL parameters can be recieved and handled. + * Parameters and URL:s can be received trough the windows by registering + * URIHandler and ParameterHandler classes window. + * + * @since 3.1.1 + */ +public class Parameters extends com.itmill.toolkit.Application implements + URIHandler, ParameterHandler { + + private Label context = new Label(); + + private Label relative = new Label(); + + private Table params = new Table(); + + public void init() { + Window main = new Window("Table demo"); + setMainWindow(main); + + // set the application to use Corporate -theme + setTheme("corporate"); + + // This class acts both as URI handler and parameter handler + main.addURIHandler(this); + main.addParameterHandler(this); + + OrderedLayout layout = new OrderedLayout(); + Label info = new Label("To test URI and Parameter Handlers, " + + "add get parameters to URL. For example try examples below: "); + info.setCaption("Usage info"); + layout.addComponent(info); + try { + URL u1 = new URL(getURL(), "test/uri?test=1&test=2"); + URL u2 = new URL(getURL(), "foo/bar?mary=john&count=3"); + layout.addComponent(new Link(u1.toString(), + new ExternalResource(u1))); + layout.addComponent(new Label("Or this: ")); + layout.addComponent(new Link(u2.toString(), + new ExternalResource(u2))); + } catch (Exception e) { + System.out.println("Couldn't get hostname for this machine: " + + e.toString()); + e.printStackTrace(); + } + + // URI + Panel panel1 = new Panel("URI Handler"); + context.setCaption("Last URI handler context"); + panel1.addComponent(context); + relative.setCaption("Last relative URI"); + panel1.addComponent(relative); + layout.addComponent(panel1); + + // Parameters + params.addContainerProperty("Values", String.class, ""); + Panel panel2 = new Panel("Parameter Handler"); + params.setCaption("Last parameters"); + params.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_ID); + params.setRowHeaderMode(Table.ROW_HEADER_MODE_ID); + panel2.addComponent(params); + layout.addComponent(panel2); + + main.addComponent(layout); + } + + /** + * Update URI + * + * @see com.itmill.toolkit.terminal.URIHandler#handleURI(URL, String) + */ + public DownloadStream handleURI(URL context, String relativeUri) { + this.context.setValue(context.toString()); + this.relative.setValue(relativeUri); + return null; + } + + /** + * Handles GET parameters, in this demo GET parameteres are used to + * communicate with EmbeddedToolkit.jsp + */ + public void handleParameters(Map parameters) { + // disabled, see bug #550 + //params.removeAllItems(); + System.out.println("handleParameters()"); + for (Iterator i = parameters.keySet().iterator(); i.hasNext();) { + String name = (String) i.next(); + String[] values = (String[]) parameters.get(name); + String v = ""; + for (int j = 0; j < values.length; j++) { + if (v.length() > 0) + v += ", "; + v += "'" + values[j] + "'"; + } + params.addItem(new Object[] { v }, name); + System.out.println("parameter name="+name+", value="+v); + } + } +} |