You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2009/09/15 17:04:36 UTC

svn commit: r815356 - in /sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container: ./ internal/ internal/impl/ internal/request/

Author: cziegeler
Date: Tue Sep 15 15:04:36 2009
New Revision: 815356

URL: http://svn.apache.org/viewvc?rev=815356&view=rev
Log:
Add support for portlet window configurations

Modified:
    sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/PortletWindowManager.java
    sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/SlingPortletWindow.java
    sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/DefaultPortletWindowManager.java
    sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/PortletRenderResponseContextImpl.java
    sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/impl/PortletWindowImpl.java
    sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/PortalFilter.java

Modified: sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/PortletWindowManager.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/PortletWindowManager.java?rev=815356&r1=815355&r2=815356&view=diff
==============================================================================
--- sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/PortletWindowManager.java (original)
+++ sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/PortletWindowManager.java Tue Sep 15 15:04:36 2009
@@ -17,6 +17,7 @@
 package org.apache.sling.portal.container;
 
 import org.apache.pluto.container.PortletWindow;
+import org.apache.sling.api.resource.ValueMap;
 
 public interface PortletWindowManager {
 
@@ -24,14 +25,16 @@
      * Get the portlet window for the portlet entity and window id
      * @param id The portlet entity id.
      * @param windowId The window id - this is optional.
+     * @param config portlet window configuration
      * @return  The corresponding portlet window.
      */
-    PortletWindow getPortletWindow(PortletEntityId id, String windowId);
+    PortletWindow getPortletWindow(PortletEntityId id, String windowId, ValueMap config);
 
     /**
      * Get the portlet window for window id
      * @param windowId The complete window id.
+     * @param config portlet window configuration
      * @return  The corresponding portlet window.
      */
-    PortletWindow getPortletWindow(String windowId);
+    PortletWindow getPortletWindow(String windowId, ValueMap config);
 }

Modified: sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/SlingPortletWindow.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/SlingPortletWindow.java?rev=815356&r1=815355&r2=815356&view=diff
==============================================================================
--- sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/SlingPortletWindow.java (original)
+++ sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/SlingPortletWindow.java Tue Sep 15 15:04:36 2009
@@ -17,6 +17,7 @@
 package org.apache.sling.portal.container;
 
 import org.apache.pluto.container.PortletWindow;
+import org.apache.sling.api.resource.ValueMap;
 
 /**
  * This is an extension of the {@link PortletWindow} which
@@ -25,6 +26,8 @@
 public interface SlingPortletWindow extends PortletWindow {
 
     SlingPortletEntity getPortletEntity();
+
+    ValueMap getConfiguration();
 }
 
 

Modified: sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/DefaultPortletWindowManager.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/DefaultPortletWindowManager.java?rev=815356&r1=815355&r2=815356&view=diff
==============================================================================
--- sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/DefaultPortletWindowManager.java (original)
+++ sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/DefaultPortletWindowManager.java Tue Sep 15 15:04:36 2009
@@ -22,6 +22,7 @@
 import org.apache.pluto.container.PortletContainerException;
 import org.apache.pluto.container.PortletWindow;
 import org.apache.pluto.container.PortletWindowID;
+import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.portal.container.PortletEntityId;
 import org.apache.sling.portal.container.PortletRegistryService;
 import org.apache.sling.portal.container.PortletWindowManager;
@@ -48,22 +49,24 @@
     }
 
     /**
-     * @see org.apache.sling.portal.container.PortletWindowManager#getPortletWindow(org.apache.sling.portal.container.PortletEntityId, java.lang.String)
+     * @see org.apache.sling.portal.container.PortletWindowManager#getPortletWindow(org.apache.sling.portal.container.PortletEntityId, java.lang.String, org.apache.sling.api.resource.ValueMap)
      */
-    public PortletWindow getPortletWindow(PortletEntityId id, String window) {
+    public PortletWindow getPortletWindow(PortletEntityId id, String window, final ValueMap configuration) {
         final PortletWindowID windowId = PortletWindowIDImpl.createFromIdentifier(id, window);
-        return this.getPortletWindow(id, windowId);
+        return this.getPortletWindow(id, windowId, configuration);
     }
 
     /**
-     * @see org.apache.sling.portal.container.PortletWindowManager#getPortletWindow(java.lang.String)
+     * @see org.apache.sling.portal.container.PortletWindowManager#getPortletWindow(java.lang.String, org.apache.sling.api.resource.ValueMap)
      */
-    public PortletWindow getPortletWindow(String windowId) {
+    public PortletWindow getPortletWindow(final String windowId, final ValueMap configuration) {
         final SlingPortletWindowId window = PortletWindowIDImpl.createFromString(windowId);
-        return this.getPortletWindow(window.getPortletEntityId(), window);
+        return this.getPortletWindow(window.getPortletEntityId(), window, configuration);
     }
 
-    protected PortletWindow getPortletWindow(final PortletEntityId id, final PortletWindowID windowId) {
+    protected PortletWindow getPortletWindow(final PortletEntityId id,
+                                             final PortletWindowID windowId,
+                                             final ValueMap configuration) {
         SlingPortletEntity info = null;
         try {
             info = this.registry.getPortletEntity(id);
@@ -81,6 +84,7 @@
         return new PortletWindowImpl(info,
                 windowId,
                 portletMode == null ? PortletMode.VIEW : portletMode,
-                windowState == null ? WindowState.NORMAL : windowState);
+                windowState == null ? WindowState.NORMAL : windowState,
+                configuration);
     }
 }

Modified: sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/PortletRenderResponseContextImpl.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/PortletRenderResponseContextImpl.java?rev=815356&r1=815355&r2=815356&view=diff
==============================================================================
--- sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/PortletRenderResponseContextImpl.java (original)
+++ sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/PortletRenderResponseContextImpl.java Tue Sep 15 15:04:36 2009
@@ -52,7 +52,7 @@
     /** The next possible portlet modes set by the portlet. */
     private Collection<PortletMode> portletModes;
 
-    private boolean writeTitle = true;
+    private final boolean writeTitle;
 
     public PortletRenderResponseContextImpl(SlingPortletContainer container,
                                             HttpServletRequest containerRequest,
@@ -72,6 +72,7 @@
                 this.title = ((SlingPortletWindow)window).getPortletEntity().getPortletEntityId().getKey();
             }
         }
+        this.writeTitle = ((SlingPortletWindow)window).getConfiguration().get("showTitleBar", true);
     }
 
     private boolean written() {

Modified: sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/impl/PortletWindowImpl.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/impl/PortletWindowImpl.java?rev=815356&r1=815355&r2=815356&view=diff
==============================================================================
--- sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/impl/PortletWindowImpl.java (original)
+++ sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/impl/PortletWindowImpl.java Tue Sep 15 15:04:36 2009
@@ -21,6 +21,7 @@
 
 import org.apache.pluto.container.PortletWindowID;
 import org.apache.pluto.container.om.portlet.PortletDefinition;
+import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.portal.container.SlingPortletEntity;
 import org.apache.sling.portal.container.SlingPortletWindow;
 
@@ -33,6 +34,7 @@
     private final WindowState windowState;
     private final PortletWindowID windowId;
     private final SlingPortletEntity entity;
+    private final ValueMap configuration;
 
     /**
      * Constructs an instance.
@@ -40,11 +42,13 @@
     public PortletWindowImpl(final SlingPortletEntity portletDef,
                              final PortletWindowID windowId,
                              final PortletMode portletMode,
-                             final WindowState windowState) {
+                             final WindowState windowState,
+                             final ValueMap configuration) {
         this.portletMode = portletMode;
         this.windowState = windowState;
         this.entity = portletDef;
         this.windowId = windowId;
+        this.configuration = (configuration != null ? configuration : ValueMap.EMPTY);
     }
 
     /**
@@ -81,4 +85,8 @@
     public PortletDefinition getPortletDefinition() {
         return this.entity.getPortletConfig().getPortletDefinition();
     }
+
+    public ValueMap getConfiguration() {
+        return this.configuration;
+    }
 }
\ No newline at end of file

Modified: sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/PortalFilter.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/PortalFilter.java?rev=815356&r1=815355&r2=815356&view=diff
==============================================================================
--- sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/PortalFilter.java (original)
+++ sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/PortalFilter.java Tue Sep 15 15:04:36 2009
@@ -25,11 +25,12 @@
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.pluto.container.PortletContainerException;
 import org.apache.pluto.container.PortletWindow;
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.resource.ResourceUtil;
 import org.apache.sling.commons.osgi.OsgiUtil;
 import org.apache.sling.portal.container.SlingPortletContainer;
 import org.apache.sling.portal.container.internal.impl.DefaultPortalURLFactory;
@@ -75,7 +76,7 @@
             chain.doFilter(request, response);
             return;
         }
-        final HttpServletRequest req = (HttpServletRequest)request;
+        final SlingHttpServletRequest req = (SlingHttpServletRequest)request;
         // we just instantiate a portal request context which might be used by the
         // portal
         PortalRequestContext.init(req, this.portalUrlFactory);
@@ -113,7 +114,7 @@
     /**
      * Perform portlet action.
      */
-    private boolean doPortletAction(HttpServletRequest request, HttpServletResponse response)
+    private boolean doPortletAction(SlingHttpServletRequest request, HttpServletResponse response)
     throws IOException, ServletException {
         final PortalRequestContext portalRequestContext = PortalRequestContext.getContext();
 
@@ -122,7 +123,7 @@
 
         // the action window id shouldn't be null but we check it anyway.
         if (actionWindowId != null) {
-            final PortletWindow window = this.portletContainer.getPortletWindowManager().getPortletWindow(actionWindowId);
+            final PortletWindow window = this.portletContainer.getPortletWindowManager().getPortletWindow(actionWindowId, ResourceUtil.getValueMap(request.getResource()));
             if ( window != null ) {
                 try {
                     this.portletContainer.doAction(window, request, response);
@@ -140,7 +141,7 @@
     /**
      * Perform portlet resource.
      */
-    private boolean doPortletResource(HttpServletRequest request, HttpServletResponse response)
+    private boolean doPortletResource(SlingHttpServletRequest request, HttpServletResponse response)
     throws IOException, ServletException {
         final PortalRequestContext portalRequestContext = PortalRequestContext.getContext();
 
@@ -149,7 +150,7 @@
 
         // the resource window id shouldn't be null but we check it anyway.
         if (windowId != null) {
-            final PortletWindow window = this.portletContainer.getPortletWindowManager().getPortletWindow(windowId);
+            final PortletWindow window = this.portletContainer.getPortletWindowManager().getPortletWindow(windowId, ResourceUtil.getValueMap(request.getResource()));
             if ( window != null ) {
                 try {
                     this.portletContainer.doServeResource(window, request, response);