org.apache.jetspeed.container.state
Interface MutableNavigationalState

All Superinterfaces:
NavigationalState

public interface MutableNavigationalState
extends NavigationalState

MutableNavigationalState Allows changing the PortletMode and/or WindowState of a PortletWindow state.
This interface extends the NavigationState interface to cleanly define the immutable contract of the latter.
Note: this is actually an ugly hack into the Portal as formally (per the portlet specs) the PortletMode and/or WindowState are only to be modified *and* then retained for the *next* subsequent renderRequest.
This interface is used for support of the Pluto required PortalActionProvider implementation (which definition is not undisputed, see: [todo: link to pluto-dev "Why PortalActionProvider?" mail discussion]).
Furthermore, this interface is also used by the Jetspeed-1 JetspeedFusionPortlet to synchronize the NavigationalState. Under which conditions that is done isn't clear yet (to me) but possibly that can/should be done differently also.
Modifying the Navigational State *during* a renderRequest (before the actual) rendering can result in a lost of these new states on a subsequent refresh of the Portlet if that doesn't trigger changing them again, because the state of these changes is only saved in PortletURLs created during the renderRequest, *not* in the session (if SessionNavigationalState is used). The session state has already been synchronized (if done) *before* these methods can be called.
Modifying the Navigational State *during* an actionRequest, as done by Pluto through the PortalActionProvider interface just before it sends a redirect, is kinda strange as it can more cleanly be done through the its PortalURLProvider interface (see above link to the mail discussion about this).

Version:
$Id: MutableNavigationalState.java 554926 2007-07-10 13:12:26Z ate $
Author:
Ate Douma

Field Summary
 
Fields inherited from interface org.apache.jetspeed.container.state.NavigationalState
NAVSTATE_SESSION_KEY
 
Method Summary
 void clearParameters(org.apache.pluto.om.window.PortletWindow window)
          Clear the request parameters to emulate an action reset
 void removeState(org.apache.pluto.om.window.PortletWindow window)
          Remove state for the given (possibly invalid) portlet window
 void setMode(org.apache.pluto.om.window.PortletWindow window, javax.portlet.PortletMode portletMode)
          Sets the portlet mode for the given portlet window.
 void setState(org.apache.pluto.om.window.PortletWindow window, javax.portlet.WindowState windowState)
          Sets the window state for the given portlet window.
 
Methods inherited from interface org.apache.jetspeed.container.state.NavigationalState
encode, encode, encode, getMappedMode, getMappedMode, getMappedState, getMappedState, getMaximizedWindow, getMode, getMode, getParameterNames, getParameterValues, getPortletWindowOfAction, getPortletWindowOfResource, getState, getState, getWindowIdIterator, init, isNavigationalParameterStateFull, isRenderParameterStateFull, sync
 

Method Detail

setState

void setState(org.apache.pluto.om.window.PortletWindow window,
              javax.portlet.WindowState windowState)
Sets the window state for the given portlet window.

Parameters:
window -
windowState -

setMode

void setMode(org.apache.pluto.om.window.PortletWindow window,
             javax.portlet.PortletMode portletMode)
Sets the portlet mode for the given portlet window.

Parameters:
window -
portletMode -

clearParameters

void clearParameters(org.apache.pluto.om.window.PortletWindow window)
Clear the request parameters to emulate an action reset

Parameters:
window -

removeState

void removeState(org.apache.pluto.om.window.PortletWindow window)
Remove state for the given (possibly invalid) portlet window



Copyright © 1999-2007 Apache Software Foundation. All Rights Reserved.