You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by sm...@apache.org on 2006/12/01 11:07:51 UTC

svn commit: r481215 - /portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java

Author: smilek
Date: Fri Dec  1 02:07:49 2006
New Revision: 481215

URL: http://svn.apache.org/viewvc?view=rev&rev=481215
Log:
added optional DynamicTitleService argument to PortletRenderer ctor for adding the portlet title to portlet pipeline response in an http response header (JS_PORTLET_TITLE)

Modified:
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java

Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java?view=diff&rev=481215&r1=481214&r2=481215
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java Fri Dec  1 02:07:49 2006
@@ -18,6 +18,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.jetspeed.PortalReservedParameters;
@@ -35,6 +36,7 @@
 import org.apache.jetspeed.om.common.portlet.MutablePortletEntity;
 import org.apache.jetspeed.om.page.ContentFragment;
 import org.apache.jetspeed.request.RequestContext;
+import org.apache.jetspeed.services.title.DynamicTitleService;
 import org.apache.jetspeed.statistics.PortalStatistics;
 import org.apache.jetspeed.util.JetspeedObjectID;
 import org.apache.pluto.PortletContainer;
@@ -61,26 +63,34 @@
     protected PortletContainer container;
     protected PortletWindowAccessor windowAccessor;
     protected PortalStatistics statistics;
+    protected DynamicTitleService addTitleService;
 
     public PortletRendererImpl(PortletContainer container, 
                                PortletWindowAccessor windowAccessor,
                                WorkerMonitor workMonitor,
-                               PortalStatistics statistics)
+                               PortalStatistics statistics,
+                               DynamicTitleService addTitleService)
     {
         this.container = container;
         this.windowAccessor = windowAccessor;
         this.workMonitor = workMonitor;
         this.statistics = statistics;
+        this.addTitleService = addTitleService;
     }
 
     public PortletRendererImpl(PortletContainer container, 
-            PortletWindowAccessor windowAccessor,
-            WorkerMonitor workMonitor)
+                               PortletWindowAccessor windowAccessor,
+                               WorkerMonitor workMonitor,
+                               PortalStatistics statistics)
     {
-        this.container = container;
-        this.windowAccessor = windowAccessor;
-        this.workMonitor = workMonitor;
-        this.statistics = null;
+        this( container, windowAccessor, workMonitor, statistics, null );
+    }
+    
+    public PortletRendererImpl(PortletContainer container, 
+                               PortletWindowAccessor windowAccessor,
+                               WorkerMonitor workMonitor)
+    {
+        this( container, windowAccessor, workMonitor, null );
     }
     
     public void start()
@@ -118,7 +128,7 @@
 
             RenderingJob rJob = buildRenderingJob(fragment, servletRequest, servletResponse, requestContext);
             rJob.execute();
-
+            addTitleToHeader( portletWindow, fragment, servletRequest, servletResponse );
         }
         catch (Exception e)
         {
@@ -152,6 +162,7 @@
 
             RenderingJob rJob = buildRenderingJob(fragment, servletRequest, servletResponse, requestContext);
             rJob.execute();
+            addTitleToHeader( portletWindow, fragment, servletRequest, servletResponse );
         }
         catch (Exception e)
         {
@@ -185,7 +196,8 @@
             servletRequest = requestContext.getRequestForWindow(portletWindow);
             servletResponse = dispatcherCtrl.getResponseForWindow(portletWindow, requestContext);
             RenderingJob rJob = buildRenderingJob(fragment, servletRequest, servletResponse, requestContext);
-            workMonitor.process(rJob);            
+            workMonitor.process(rJob);
+            addTitleToHeader( portletWindow, fragment, servletRequest, servletResponse );
         }
         catch (Exception e1)
         {
@@ -259,7 +271,28 @@
         request.setAttribute(PortalReservedParameters.PORTLET_WINDOW_ATTRIBUTE, portletWindow);
         PortletContent portletContent = dispatcher.getPortletContent(fragment);
         fragment.setPortletContent(portletContent);
+        
         return new RenderingJobImpl(container, portletContent, fragment, request, response, requestContext, portletWindow, statistics);
-
+    }
+    
+    protected void addTitleToHeader( PortletWindow portletWindow, ContentFragment fragment, HttpServletRequest request, HttpServletResponse response )
+    {
+        if ( this.addTitleService != null )
+        {
+            try
+            {
+                String title = fragment.getTitle();
+                if ( title == null )
+                {
+                    title = addTitleService.getDynamicTitle( portletWindow, request );
+                }
+                log.info( "PortletRenderer title: " + title );
+                response.setHeader( "JS_PORTLET_TITLE", StringEscapeUtils.escapeHtml( title ) );
+            }
+            catch (Exception e)
+            {
+                log.error("Unable to reteive portlet title: " + e.getMessage(), e);
+            }
+        }
     }
 }



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