From 17e5965630767f8aeb6af457133c06c05d43b709 Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Thu, 17 Apr 2008 14:47:36 +0000 Subject: [PATCH] Simple Reserver enhancements svn changeset:4193/svn branch:trunk --- .../demo/reservation/simple/AdminView.java | 2 +- .../demo/reservation/simple/SampleDB.java | 4 + .../reservation/simple/SimpleReserver.java | 93 +++++++++++++++---- .../demo/reservation/simple/StdView.java | 2 +- 4 files changed, 80 insertions(+), 21 deletions(-) diff --git a/src/com/itmill/toolkit/demo/reservation/simple/AdminView.java b/src/com/itmill/toolkit/demo/reservation/simple/AdminView.java index ac9319c3f6..5b674b02c7 100644 --- a/src/com/itmill/toolkit/demo/reservation/simple/AdminView.java +++ b/src/com/itmill/toolkit/demo/reservation/simple/AdminView.java @@ -23,7 +23,7 @@ public class AdminView extends OrderedLayout { protected Item editedItem; AdminView(SimpleReserver app) { - setWidth("250px"); + setWidth("280px"); application = app; diff --git a/src/com/itmill/toolkit/demo/reservation/simple/SampleDB.java b/src/com/itmill/toolkit/demo/reservation/simple/SampleDB.java index 12e4292b39..6b011e2b67 100644 --- a/src/com/itmill/toolkit/demo/reservation/simple/SampleDB.java +++ b/src/com/itmill/toolkit/demo/reservation/simple/SampleDB.java @@ -399,6 +399,10 @@ public class SampleDB { public synchronized void generateResources() { final Object[][] resources = { + + // TODO change cars to rooms, projectors and other office + // resources + // Turku { "01", "01 Ford Mondeo", "w/ company logo", "Turku", new Double(60.510857), new Double(22.275424) }, diff --git a/src/com/itmill/toolkit/demo/reservation/simple/SimpleReserver.java b/src/com/itmill/toolkit/demo/reservation/simple/SimpleReserver.java index 9f2699a8a6..d858d2a7e9 100644 --- a/src/com/itmill/toolkit/demo/reservation/simple/SimpleReserver.java +++ b/src/com/itmill/toolkit/demo/reservation/simple/SimpleReserver.java @@ -1,6 +1,15 @@ package com.itmill.toolkit.demo.reservation.simple; +import javax.portlet.ActionRequest; +import javax.portlet.ActionResponse; +import javax.portlet.PortletMode; +import javax.portlet.PortletSession; +import javax.portlet.RenderRequest; +import javax.portlet.RenderResponse; + import com.itmill.toolkit.Application; +import com.itmill.toolkit.terminal.gwt.server.PortletApplicationContext; +import com.itmill.toolkit.terminal.gwt.server.PortletApplicationContext.PortletListener; import com.itmill.toolkit.ui.Button; import com.itmill.toolkit.ui.OrderedLayout; import com.itmill.toolkit.ui.Window; @@ -24,25 +33,60 @@ public class SimpleReserver extends Application { private boolean isAdminView = false; + private boolean isPortlet; + public void init() { final Window w = new Window("Simple Reserver"); - w.setTheme("simplereserver"); + w.addStyleName("simplereserver"); + + if (getContext() instanceof PortletApplicationContext) { + isPortlet = true; + PortletApplicationContext context = (PortletApplicationContext) getContext(); + context.addPortletListener(this, new PortletListener() { + public void handleActionRequest(ActionRequest request, + ActionResponse response) { + + } + + public void handleRenderRequest(RenderRequest request, + RenderResponse response) { + // react on mode changes + if ((request.getPortletMode() == PortletMode.EDIT && !isAdminView) + || (request.getPortletMode() == PortletMode.VIEW && isAdminView)) { + toggleMode(); + } + + } + }); + w.setTheme("liferay"); + // portal will deal outer margins + w.getLayout().setMargin(false); + } else { + w.setTheme("reservr"); + } + setMainWindow(w); - w.addComponent(toggleMode); - w.addComponent(stdView); - toggleMode.addListener(new ClickListener() { - public void buttonClick(ClickEvent event) { - OrderedLayout main = (OrderedLayout) w.getLayout(); - isAdminView = !isAdminView; - if (isAdminView) { - main.replaceComponent(stdView, adminView); - } else { - main.replaceComponent(adminView, stdView); - stdView.refreshData(); + if (!isPortlet) { + // only use toggle mode button when not in portal + w.addComponent(toggleMode); + toggleMode.addListener(new ClickListener() { + public void buttonClick(ClickEvent event) { + toggleMode(); } + }); + } + w.addComponent(stdView); + } - } - }); + protected void toggleMode() { + OrderedLayout main = (OrderedLayout) getMainWindow().getLayout(); + isAdminView = !isAdminView; + if (isAdminView) { + main.replaceComponent(stdView, adminView); + } else { + main.replaceComponent(adminView, stdView); + stdView.refreshData(); + } } public SampleDB getDb() { @@ -50,13 +94,24 @@ public class SimpleReserver extends Application { } public Object getUser() { - // TODO expand for Portal support - Object user = super.getUser(); - if (user == null) { - return "Demo User"; + if (getContext() instanceof PortletApplicationContext) { + PortletApplicationContext context = (PortletApplicationContext) getContext(); + Object username = context.getPortletSession().getAttribute( + "userName", PortletSession.APPLICATION_SCOPE); + if (username == null) { + return "Guest Portaluser"; + } + return username.toString(); + } else { - return user; + Object user = super.getUser(); + if (user == null) { + return "Demo User"; + } else { + return user; + } } + } } diff --git a/src/com/itmill/toolkit/demo/reservation/simple/StdView.java b/src/com/itmill/toolkit/demo/reservation/simple/StdView.java index bbb07aa853..d1624f70ac 100644 --- a/src/com/itmill/toolkit/demo/reservation/simple/StdView.java +++ b/src/com/itmill/toolkit/demo/reservation/simple/StdView.java @@ -31,7 +31,7 @@ public class StdView extends OrderedLayout { private EditorWindow editor = new EditorWindow(); StdView(SimpleReserver app) { - setWidth("250px"); + setWidth("280px"); application = app; resources.setImmediate(true); -- 2.39.5