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: [email protected]
For additional commands, e-mail: [email protected]