Author: woonsan
Date: Fri Dec 11 16:53:45 2009
New Revision: 889695

URL: http://svn.apache.org/viewvc?rev=889695&view=rev
Log:
JS2-1084: Adds window state parameter to porlet pipeline.
In portlet pipeline, the cache retrieval should check the window state is the 
same one.

Modified:
    
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java
    
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletContentImpl.java
    
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
    
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/PortalReservedParameters.java
    
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/PortletContent.java

Modified: 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java?rev=889695&r1=889694&r2=889695&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java
 Fri Dec 11 16:53:45 2009
@@ -23,8 +23,10 @@
 import java.util.Map;
 
 import javax.portlet.PortletMode;
+import javax.portlet.WindowState;
 
 import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang.StringUtils;
 import org.apache.jetspeed.JetspeedActions;
 import org.apache.jetspeed.PortalReservedParameters;
 import org.apache.jetspeed.aggregator.PortletAggregator;
@@ -51,6 +53,7 @@
     private PortletRenderer renderer;
     private boolean titleInHeader;
     private Map<String, PortletMode> availablePortletModesMap;
+    private Map<String, WindowState> availableWindowStatesMap;
 
     public PortletAggregatorImpl(PortletRenderer renderer) 
     {
@@ -102,15 +105,23 @@
         }
         
         PortletMode requetedPortletMode = getRequestedPortletMode(context);
+        WindowState requetedWindowState = getRequestedWindowState(context);
+        
         NavigationalState navState = 
context.getPortalURL().getNavigationalState();
         
-        if (!requetedPortletMode.equals(navState.getMode(window)))
+        if (navState instanceof MutableNavigationalState)
         {
-            if (navState instanceof MutableNavigationalState)
+            MutableNavigationalState mutableNavState = 
(MutableNavigationalState) navState;
+            
+            if (!requetedPortletMode.equals(navState.getMode(window)))
             {
-                MutableNavigationalState mutableNavState = 
(MutableNavigationalState) navState;
                 mutableNavState.setMode(window, requetedPortletMode);
             }
+            
+            if (!requetedWindowState.equals(navState.getState(window)))
+            {
+                mutableNavState.setState(window, requetedWindowState);
+            }
         }
         
         ContentFragment contentFragment = window.getFragment();
@@ -156,7 +167,7 @@
     {
         String portletModeName = 
context.getRequestParameter(PortalReservedParameters.PORTLET_MODE);
         
-        if (portletModeName == null || "".equals(portletModeName))
+        if (StringUtils.isBlank(portletModeName))
         {
             return PortletMode.VIEW;
         }
@@ -181,4 +192,34 @@
         PortletMode portletMode = 
availablePortletModesMap.get(portletModeName);
         return (portletMode != null ? portletMode : PortletMode.VIEW);
     }
+    
+    private WindowState getRequestedWindowState(final RequestContext context)
+    {
+        String windowStateName = 
context.getRequestParameter(PortalReservedParameters.WINDOW_STATE);
+        
+        if (StringUtils.isBlank(windowStateName))
+        {
+            return WindowState.NORMAL;
+        }
+        
+        if (availableWindowStatesMap == null)
+        {
+            Map<String, WindowState> windowStatesMap = new HashMap<String, 
WindowState>();
+            
+            for (WindowState windowState : 
JetspeedActions.getStandardWindowStates())
+            {
+                windowStatesMap.put(windowState.toString(), windowState);
+            }
+            
+            for (WindowState windowState : 
JetspeedActions.getExtendedWindowStates())
+            {
+                windowStatesMap.put(windowState.toString(), windowState);
+            }
+            
+            availableWindowStatesMap = windowStatesMap;
+        }
+        
+        WindowState windowState = 
availableWindowStatesMap.get(windowStateName);
+        return (windowState != null ? windowState : WindowState.NORMAL);
+    }
 }

Modified: 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletContentImpl.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletContentImpl.java?rev=889695&r1=889694&r2=889695&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletContentImpl.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletContentImpl.java
 Fri Dec 11 16:53:45 2009
@@ -22,6 +22,7 @@
 import java.util.List;
 
 import javax.portlet.PortletMode;
+import javax.portlet.WindowState;
 
 import org.apache.commons.collections.list.TreeList;
 import org.apache.jetspeed.aggregator.PortletContent;
@@ -47,6 +48,7 @@
     private String title;
     private String contentType;
     private PortletMode portletMode;
+    private WindowState windowState;
     
     /**
      * The list container for all contributed head elements from this portlet 
content.
@@ -60,13 +62,14 @@
         writer = new PrintWriter(cw);
     }
     
-    PortletContentImpl(ContentCacheKey cacheKey, int expiration, String title, 
PortletMode portletMode)
+    PortletContentImpl(ContentCacheKey cacheKey, int expiration, String title, 
PortletMode portletMode, WindowState windowState)
     {
         this();
         this.cacheKey = cacheKey;
         this.expiration = expiration;
         this.title = title;
         this.portletMode = portletMode;
+        this.windowState = windowState;
     }
 
     public PrintWriter getWriter()
@@ -166,6 +169,11 @@
         return (portletMode != null ? portletMode : PortletMode.VIEW);
     }
     
+    public WindowState getWindowState()
+    {
+        return (windowState != null ? windowState : WindowState.NORMAL);
+    }
+    
     public void reset()
     {
         if (!complete)

Modified: 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java?rev=889695&r1=889694&r2=889695&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
 Fri Dec 11 16:53:45 2009
@@ -20,11 +20,11 @@
 import java.util.Collection;
 import java.util.List;
 
+import javax.portlet.PortletMode;
+import javax.portlet.WindowState;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.jetspeed.JetspeedActions;
 import org.apache.jetspeed.PortalReservedParameters;
 import org.apache.jetspeed.aggregator.PortletAccessDeniedException;
@@ -36,6 +36,7 @@
 import org.apache.jetspeed.cache.CacheElement;
 import org.apache.jetspeed.cache.ContentCacheKey;
 import org.apache.jetspeed.cache.JetspeedCache;
+import org.apache.jetspeed.container.PortletWindow;
 import org.apache.jetspeed.om.page.ContentFragment;
 import org.apache.jetspeed.om.page.Fragment;
 import org.apache.jetspeed.om.portlet.LocalizedField;
@@ -44,7 +45,8 @@
 import org.apache.jetspeed.security.SecurityAccessController;
 import org.apache.jetspeed.statistics.PortalStatistics;
 import org.apache.pluto.container.PortletContainer;
-import org.apache.jetspeed.container.PortletWindow;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <h4>PortletRendererService <br />
@@ -304,7 +306,10 @@
         {
             PortletContent portletContent = (PortletContent) 
cachedElement.getContent();
             
-            if 
(portletWindow.getPortletMode().equals(portletContent.getPortletMode()))
+            PortletMode portletMode = portletContent.getPortletMode();
+            WindowState windowState = portletContent.getWindowState();
+            
+            if (portletWindow.getPortletMode().equals(portletMode) && 
portletWindow.getWindowState().equals(windowState))
             {
                 fragment.setPortletContent(portletContent);
                 return true;
@@ -326,7 +331,7 @@
         {
             title = portletWindow.getPortletDefinition().getPortletName();
         }
-        return new PortletContentImpl(cacheKey, expirationCache, title, 
portletWindow.getPortletMode());
+        return new PortletContentImpl(cacheKey, expirationCache, title, 
portletWindow.getPortletMode(), portletWindow.getWindowState());
     }
     
     protected RenderingJob buildRenderingJob( PortletWindow portletWindow, 

Modified: 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/PortalReservedParameters.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/PortalReservedParameters.java?rev=889695&r1=889694&r2=889695&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/PortalReservedParameters.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/PortalReservedParameters.java
 Fri Dec 11 16:53:45 2009
@@ -28,6 +28,7 @@
     public final static String PORTLET = "portlet";
     public final static String PORTLET_ENTITY = "entity";        
     public final static String PORTLET_MODE = "mode";
+    public final static String WINDOW_STATE = "state";
     public final static String PAGE = "page";
     public final static String PIPELINE = "pipeline";
     public final static String DEFAULT_PIPELINE = "jetspeed-pipeline";

Modified: 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/PortletContent.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/PortletContent.java?rev=889695&r1=889694&r2=889695&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/PortletContent.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/PortletContent.java
 Fri Dec 11 16:53:45 2009
@@ -20,6 +20,7 @@
 import java.util.List;
 
 import javax.portlet.PortletMode;
+import javax.portlet.WindowState;
 
 import org.apache.jetspeed.cache.ContentCacheKey;
 import org.apache.jetspeed.portlet.HeadElement;
@@ -117,6 +118,13 @@
     PortletMode getPortletMode();
     
     /**
+     * Gets the window state of this portlet content.
+     * 
+     * @return
+     */
+    WindowState getWindowState();
+    
+    /**
      * Adds an header element to be contributed to the page.
      * If keyHint argument is provided and if a header element 
      * with the provided key hint already exists, then 



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscr...@portals.apache.org
For additional commands, e-mail: jetspeed-dev-h...@portals.apache.org

Reply via email to