org.apache.tapestry.portlet
Class RenderService

java.lang.Object
  extended byorg.apache.tapestry.portlet.RenderService
All Implemented Interfaces:
org.apache.tapestry.engine.IEngineService

public class RenderService
extends java.lang.Object
implements org.apache.tapestry.engine.IEngineService

Responsible for rendering out a page; a Portlet render URL is built during action processing that stores the active page; this is the page that will be rendered. The render service is (typically) the only service that operates during a portlet RenderRequest. All other services will be an ActionRequest that (via PortletResponseRenderer, writes query parameters to activate this service during the render request.

Problematic is is anything related to the portlet mode or window state. As per the Portlet spec, when the user clicks the "help" or "edit" buttons (or the minimize, maximize, etc.), this causes a new RenderRequest, but explicitly keeps the render parameters set by the most recent ActionRequest. But what Tapestry needs is to detect that the mode or state has changed and select a different page to render the response. So we store the mode and state in effect when the ActionRequest executed as two more query parameters, and detect changes to mode and state that way. If there is a change, then we ignore the page query parameter and use the PortletPageResolver to figure out the correct page to display instead.

Since:
4.0
Author:
Howard M. Lewis Ship
See Also:
ResponseRendererImpl

Constructor Summary
RenderService()
           
 
Method Summary
 org.apache.tapestry.engine.ILink getLink(boolean post, java.lang.Object parameter)
           
 java.lang.String getName()
           
 void service(org.apache.tapestry.IRequestCycle cycle)
           
 void setPageResolver(PortletPageResolver pageResolver)
           
 void setPortletRenderer(PortletRenderer portletRenderer)
           
 void setRequest(javax.portlet.PortletRequest request)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RenderService

public RenderService()
Method Detail

getLink

public org.apache.tapestry.engine.ILink getLink(boolean post,
                                                java.lang.Object parameter)
Specified by:
getLink in interface org.apache.tapestry.engine.IEngineService

service

public void service(org.apache.tapestry.IRequestCycle cycle)
             throws java.io.IOException
Specified by:
service in interface org.apache.tapestry.engine.IEngineService
Throws:
java.io.IOException

getName

public java.lang.String getName()
Specified by:
getName in interface org.apache.tapestry.engine.IEngineService

setPortletRenderer

public void setPortletRenderer(PortletRenderer portletRenderer)

setRequest

public void setRequest(javax.portlet.PortletRequest request)

setPageResolver

public void setPageResolver(PortletPageResolver pageResolver)