summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Signell <artur.signell@itmill.com>2009-02-17 13:27:31 +0000
committerArtur Signell <artur.signell@itmill.com>2009-02-17 13:27:31 +0000
commitd53e127348f7759db5422512f0c27786134ab313 (patch)
treeb431be54383e7c5be10367063ef28462a6bf63ee
parent421161b20fe4a53d0d4a663796927b561388a942 (diff)
downloadvaadin-framework-d53e127348f7759db5422512f0c27786134ab313.tar.gz
vaadin-framework-d53e127348f7759db5422512f0c27786134ab313.zip
Fixed build problem (missing beancontainer.jar)
Updated portlet configuration generator to include actual demos and to use sampler widgetset Re-added PortletDemo which demonstrates portal integration svn changeset:6874/svn branch:trunk
-rw-r--r--src/com/itmill/toolkit/demo/PortletDemo.java152
1 files changed, 152 insertions, 0 deletions
diff --git a/src/com/itmill/toolkit/demo/PortletDemo.java b/src/com/itmill/toolkit/demo/PortletDemo.java
new file mode 100644
index 0000000000..e4089612f3
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/PortletDemo.java
@@ -0,0 +1,152 @@
+/**
+ *
+ */
+package com.itmill.toolkit.demo;
+
+import java.util.Iterator;
+import java.util.Map;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletMode;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletURL;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.WindowState;
+
+import com.itmill.toolkit.Application;
+import com.itmill.toolkit.terminal.ExternalResource;
+import com.itmill.toolkit.terminal.gwt.server.PortletApplicationContext;
+import com.itmill.toolkit.terminal.gwt.server.PortletApplicationContext.PortletListener;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.Link;
+import com.itmill.toolkit.ui.TextField;
+import com.itmill.toolkit.ui.Window;
+import com.itmill.toolkit.ui.Window.Notification;
+
+/**
+ * @author marc
+ *
+ */
+public class PortletDemo extends Application {
+
+ Window main = new Window();
+ TextField tf = new TextField("Some value");
+ Label userInfo = new Label();
+ Link portletEdit = new Link();
+ Link portletMax = new Link();
+ Link someAction = null;
+
+ public void init() {
+ main = new Window();
+ setMainWindow(main);
+
+ userInfo.setCaption("User info");
+ userInfo.setContentMode(Label.CONTENT_PREFORMATTED);
+ main.addComponent(userInfo);
+
+ tf.setEnabled(false);
+ tf.setImmediate(true);
+ main.addComponent(tf);
+
+ portletEdit.setEnabled(false);
+ main.addComponent(portletEdit);
+ portletMax.setEnabled(false);
+ main.addComponent(portletMax);
+
+ if (getContext() instanceof PortletApplicationContext) {
+ PortletApplicationContext ctx = (PortletApplicationContext) getContext();
+ ctx.addPortletListener(this, new DemoPortletListener());
+ } else {
+ getMainWindow().showNotification("Not inited via Portal!",
+ Notification.TYPE_ERROR_MESSAGE);
+ }
+
+ }
+
+ private class DemoPortletListener implements PortletListener {
+
+ public void handleActionRequest(ActionRequest request,
+ ActionResponse response) {
+
+ main.addComponent(new Label("Action received"));
+
+ }
+
+ public void handleRenderRequest(RenderRequest request,
+ RenderResponse response) {
+ // Portlet up-and-running, enable stuff
+ portletEdit.setEnabled(true);
+ portletMax.setEnabled(true);
+
+ // Editable if we're in editmode
+ tf.setEnabled((request.getPortletMode() == PortletMode.EDIT));
+
+ // Show notification about current mode and state
+ getMainWindow().showNotification(
+ "Portlet status",
+ "Mode: " + request.getPortletMode() + " State: "
+ + request.getWindowState(),
+ Notification.TYPE_WARNING_MESSAGE);
+
+ // Display current user info
+ Map uinfo = (Map) request.getAttribute(PortletRequest.USER_INFO);
+ if (uinfo != null) {
+ String s = "";
+ for (Iterator it = uinfo.keySet().iterator(); it.hasNext();) {
+ Object key = it.next();
+ Object val = uinfo.get(key);
+ s += key + ": " + val + "\n";
+ }
+ if (request.isUserInRole("administrator")) {
+ s += "(administrator)";
+ }
+ userInfo.setValue(s);
+ } else {
+ userInfo.setValue("-");
+ }
+
+ // Create Edit/Done link (actionUrl)
+ PortletURL url = response.createActionURL();
+ try {
+ url
+ .setPortletMode((request.getPortletMode() == PortletMode.VIEW ? PortletMode.EDIT
+ : PortletMode.VIEW));
+ portletEdit.setResource(new ExternalResource(url.toString()));
+ portletEdit
+ .setCaption((request.getPortletMode() == PortletMode.VIEW ? "Edit"
+ : "Done"));
+ } catch (Exception e) {
+ portletEdit.setEnabled(false);
+ }
+ // Create Maximize/Normal link (actionUrl)
+ url = response.createActionURL();
+ try {
+ url
+ .setWindowState((request.getWindowState() == WindowState.NORMAL ? WindowState.MAXIMIZED
+ : WindowState.NORMAL));
+ portletMax.setResource(new ExternalResource(url.toString()));
+ portletMax
+ .setCaption((request.getWindowState() == WindowState.NORMAL ? "Maximize"
+ : "Back to normal"));
+ } catch (Exception e) {
+ portletMax.setEnabled(false);
+ }
+
+ if (someAction == null) {
+ url = response.createActionURL();
+ try {
+ someAction = new Link("An action", new ExternalResource(url
+ .toString()));
+ main.addComponent(someAction);
+ } catch (Exception e) {
+ // Oops
+ System.err.println("Could not create someAction: " + e);
+ }
+
+ }
+
+ }
+ }
+}