]> source.dussan.org Git - vaadin-framework.git/commitdiff
Simple Reserver enhancements
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Thu, 17 Apr 2008 14:47:36 +0000 (14:47 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Thu, 17 Apr 2008 14:47:36 +0000 (14:47 +0000)
svn changeset:4193/svn branch:trunk

src/com/itmill/toolkit/demo/reservation/simple/AdminView.java
src/com/itmill/toolkit/demo/reservation/simple/SampleDB.java
src/com/itmill/toolkit/demo/reservation/simple/SimpleReserver.java
src/com/itmill/toolkit/demo/reservation/simple/StdView.java

index ac9319c3f6bdec51680aeefb763e6973d6c279ce..5b674b02c765fa756857f0eb7d0c3dcdf002cc3e 100644 (file)
@@ -23,7 +23,7 @@ public class AdminView extends OrderedLayout {
     protected Item editedItem;
 
     AdminView(SimpleReserver app) {
-        setWidth("250px");
+        setWidth("280px");
 
         application = app;
 
index 12e4292b396e65ec809d35c4dc5c0304f64097f0..6b011e2b67c09ff26ef7d58bd9c0f1fec50e03bb 100644 (file)
@@ -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) },
index 9f2699a8a62ca0c2ffc165cf117f7e93e9e63e2b..d858d2a7e9d15e9607eeece3780e13b95fcb7ca9 100644 (file)
@@ -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;
+            }
         }
+
     }
 
 }
index bbb07aa853eb55e8c28c03ace92b78ce24793828..d1624f70ac4c6965897ce563595da7462a03545b 100644 (file)
@@ -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);