svnno****@sourc*****
svnno****@sourc*****
2008年 10月 29日 (水) 22:05:24 JST
Revision: 1257 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1257 Author: shinsuke Date: 2008-10-29 22:05:24 +0900 (Wed, 29 Oct 2008) Log Message: ----------- a portlet title is saved in a session. Modified Paths: -------------- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/services/title/DynamicTitleServiceImpl.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/assembly/pluto-factories.xml -------------- next part -------------- Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/services/title/DynamicTitleServiceImpl.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/services/title/DynamicTitleServiceImpl.java 2008-10-29 08:29:48 UTC (rev 1256) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/services/title/DynamicTitleServiceImpl.java 2008-10-29 13:05:24 UTC (rev 1257) @@ -19,9 +19,12 @@ import java.util.Iterator; import java.util.Locale; +import javax.portlet.WindowState; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import org.apache.jetspeed.PortalReservedParameters; +import org.apache.jetspeed.container.state.NavigationalState; import org.apache.jetspeed.request.RequestContext; import org.apache.pluto.om.common.Preference; import org.apache.pluto.om.entity.PortletEntity; @@ -30,6 +33,18 @@ public class DynamicTitleServiceImpl implements DynamicTitleService { + private boolean cachedTitle = false; + + public DynamicTitleServiceImpl() + { + this(false); + } + + public DynamicTitleServiceImpl(boolean cachedTitle) + { + this.cachedTitle = cachedTitle; + } + public void setDynamicTitle(PortletWindow window, HttpServletRequest request, String titleArg) { @@ -57,9 +72,33 @@ public String getDynamicTitle(PortletWindow window, HttpServletRequest request) { - return (String) request - .getAttribute(PortalReservedParameters.OVERRIDE_PORTLET_TITLE_ATTR - + "::window.id::" + window.getId()); + String key = PortalReservedParameters.OVERRIDE_PORTLET_TITLE_ATTR + + "::window.id::" + window.getId(); + if (cachedTitle) + { + RequestContext requestContext = (RequestContext) request + .getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE); + NavigationalState navState = requestContext.getPortalURL() + .getNavigationalState(); + WindowState windowState = navState.getState(window); + HttpSession session = request.getSession(); + if (!windowState.equals(WindowState.MINIMIZED)) + { + String title = (String) request.getAttribute(key); + session.setAttribute(key, title); + return title; + } + else + { + String title = (String) session.getAttribute(key); + if (title != null) { return title; } + return (String) request.getAttribute(key); + } + } + else + { + return (String) request.getAttribute(key); + } } protected final String getTitleFromPortletDefinition(PortletWindow window, Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/assembly/pluto-factories.xml =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/assembly/pluto-factories.xml 2008-10-29 08:29:48 UTC (rev 1256) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/assembly/pluto-factories.xml 2008-10-29 13:05:24 UTC (rev 1257) @@ -201,7 +201,11 @@ <bean id="org.apache.pluto.services.title.DynamicTitleService" name="DynamicTitleService" - class="org.apache.jetspeed.services.title.DynamicTitleServiceImpl" /> + class="org.apache.jetspeed.services.title.DynamicTitleServiceImpl" > + <constructor-arg type="boolean"> + <value>true</value> + </constructor-arg> + </bean> </beans>