[pal-cvs 3523] [1257] a portlet title is saved in a session.

Zurück zum Archiv-Index

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>


pal-cvs メーリングリストの案内
Zurück zum Archiv-Index