You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gm...@apache.org on 2007/10/31 12:14:14 UTC

svn commit: r590624 - in /myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr: PPRPanelGroup.java PPRPanelGroupRenderer.java PPRPanelGroupTag.java PPRPhaseListener.java

Author: gmuellan
Date: Wed Oct 31 04:14:12 2007
New Revision: 590624

URL: http://svn.apache.org/viewvc?rev=590624&view=rev
Log:
trivial change: code reformatting for pprPanelGroup stuff

Modified:
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroup.java
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupTag.java
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPhaseListener.java

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroup.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroup.java?rev=590624&r1=590623&r2=590624&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroup.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroup.java Wed Oct 31 04:14:12 2007
@@ -27,159 +27,170 @@
 /**
  * AJAX component which supports updating its children via AJAX calls. These
  * updates can occur regularly or based on triggering input components.
- * 
+ *
  * @author Ernst Fastl
  */
-public class PPRPanelGroup extends HtmlPanelGroup {
-    public static final String COMPONENT_TYPE = "org.apache.myfaces.PPRPanelGroup";
+public class PPRPanelGroup extends HtmlPanelGroup
+{
+	public static final String COMPONENT_TYPE = "org.apache.myfaces.PPRPanelGroup";
 
-    public static final String COMPONENT_FAMILY = "org.apache.myfaces.PPRPanelGroup";
+	public static final String COMPONENT_FAMILY = "org.apache.myfaces.PPRPanelGroup";
 
-    public static final String DEFAULT_RENDERER_TYPE = "org.apache.myfaces.PPRPanelGroup";
+	public static final String DEFAULT_RENDERER_TYPE = "org.apache.myfaces.PPRPanelGroup";
 
-    private String _partialTriggers;
+	private String _partialTriggers;
 
-    private Integer _periodicalUpdate;
-
-    private String _periodicalTriggers;
-
-    private String _partialTriggerPattern;
-
-    private String _inlineLoadingMessage;
-
-    private Boolean _showDebugMessages = new Boolean(false);
-
-    private Boolean _stateUpdate = new Boolean(true);
-
-    public PPRPanelGroup()
-    {
-	setRendererType(DEFAULT_RENDERER_TYPE);
-    }
-
-    public String getFamily()
-    {
-	return COMPONENT_FAMILY;
-    }
-
-    public String getPartialTriggers()
-    {
-	if (_partialTriggers != null)
-	    return _partialTriggers;
-	ValueBinding vb = getValueBinding("partialTriggers");
-	return vb != null ? RendererUtils.getStringValue(getFacesContext(), vb) : null;
-    }
-
-    public void setPartialTriggers(String partialTriggers)
-    {
-	this._partialTriggers = partialTriggers;
-    }
-
-    public Integer getPeriodicalUpdate()
-    {
-	if (_periodicalUpdate != null)
-	    return _periodicalUpdate;
-	ValueBinding vb = getValueBinding("periodicalUpdate");
-	return (vb != null) ? (Integer) vb.getValue(getFacesContext()) : null;
-    }
-
-    public void setPeriodicalUpdate(Integer periodicalUpdate)
-    {
-	_periodicalUpdate = periodicalUpdate;
-    }
-
-    public String getPeriodicalTriggers()
-    {
-	if (_periodicalTriggers != null)
-	    return _periodicalTriggers;
-	ValueBinding vb = getValueBinding("periodicalTriggers");
-	return (vb != null) ? (String) vb.getValue(getFacesContext()) : null;
-    }
-
-    public void setPeriodicalTriggers(String periodicalTriggers)
-    {
-	_periodicalTriggers = periodicalTriggers;
-    }
-
-    public String getPartialTriggerPattern()
-    {
-	if (_partialTriggerPattern != null)
-	    return _partialTriggerPattern;
-	ValueBinding vb = getValueBinding("partialTriggerPattern");
-	return vb != null ? RendererUtils.getStringValue(getFacesContext(), vb) : null;
-    }
-
-    public void setPartialTriggerPattern(String partialTriggerPattern)
-    {
-	this._partialTriggerPattern = partialTriggerPattern;
-    }
-
-    public String getInlineLoadingMessage()
-    {
-	if (_inlineLoadingMessage != null)
-	    return _inlineLoadingMessage;
-	ValueBinding vb = getValueBinding("inlineLoadingMessage");
-	return vb != null ? RendererUtils.getStringValue(getFacesContext(), vb) : null;
-    }
-
-    public void setInlineLoadingMessage(String inlineLoadingMessage)
-    {
-	this._inlineLoadingMessage = inlineLoadingMessage;
-    }
-
-    public Boolean getShowDebugMessages()
-    {
-	if (_showDebugMessages != null)
-	{
-	    return _showDebugMessages;
-	}
-	ValueBinding vb = getValueBinding("showDebugMessages");
-	return vb != null ? (Boolean) vb.getValue(getFacesContext()) : null;
-    }
-
-    public void setShowDebugMessages(Boolean showDebugMessages)
-    {
-	_showDebugMessages = showDebugMessages;
-    }
-
-    public Boolean getStateUpdate()
-    {
-	if (_stateUpdate != null)
-	{
-	    return _stateUpdate;
-	}
-	ValueBinding vb = getValueBinding("stateUpdate");
-	return vb != null ? (Boolean) vb.getValue(getFacesContext()) : null;
-    }
-
-    public void setStateUpdate(Boolean stateUpdate)
-    {
-	_stateUpdate = stateUpdate;
-    }
-
-    public void restoreState(FacesContext context, Object state)
-    {
-
-	Object[] values = (Object[]) state;
-	super.restoreState(context, values[0]);
-	_partialTriggers = (String) values[1];
-	_partialTriggerPattern = (String) values[2];
-	_periodicalUpdate = (Integer) values[3];
-	_periodicalTriggers = (String) values[4];
-	_showDebugMessages = (Boolean) values[5];
-	_stateUpdate = (Boolean) values[6];
-
-    }
-
-    public Object saveState(FacesContext context)
-    {
-	Object[] values = new Object[7];
-	values[0] = super.saveState(context);
-	values[1] = _partialTriggers;
-	values[2] = _partialTriggerPattern;
-	values[3] = _periodicalUpdate;
-	values[4] = _periodicalTriggers;
-	values[5] = _showDebugMessages;
-	values[6] = _stateUpdate;
-	return values;
-    }
+	private Integer _periodicalUpdate;
+
+	private String _periodicalTriggers;
+
+	private String _partialTriggerPattern;
+
+	private String _inlineLoadingMessage;
+
+	private Boolean _showDebugMessages = new Boolean(false);
+
+	private Boolean _stateUpdate = new Boolean(true);
+
+	public PPRPanelGroup()
+	{
+		setRendererType(DEFAULT_RENDERER_TYPE);
+	}
+
+	public String getFamily()
+	{
+		return COMPONENT_FAMILY;
+	}
+
+	public String getPartialTriggers()
+	{
+		if(_partialTriggers != null)
+		{
+			return _partialTriggers;
+		}
+		ValueBinding vb = getValueBinding("partialTriggers");
+		return vb != null ? RendererUtils.getStringValue(getFacesContext(), vb) : null;
+	}
+
+	public void setPartialTriggers(String partialTriggers)
+	{
+		this._partialTriggers = partialTriggers;
+	}
+
+	public Integer getPeriodicalUpdate()
+	{
+		if(_periodicalUpdate != null)
+		{
+			return _periodicalUpdate;
+		}
+		ValueBinding vb = getValueBinding("periodicalUpdate");
+		return (vb != null) ? (Integer) vb.getValue(getFacesContext()) : null;
+	}
+
+	public void setPeriodicalUpdate(Integer periodicalUpdate)
+	{
+		_periodicalUpdate = periodicalUpdate;
+	}
+
+	public String getPeriodicalTriggers()
+	{
+		if(_periodicalTriggers != null)
+		{
+			return _periodicalTriggers;
+		}
+		ValueBinding vb = getValueBinding("periodicalTriggers");
+		return (vb != null) ? (String) vb.getValue(getFacesContext()) : null;
+	}
+
+	public void setPeriodicalTriggers(String periodicalTriggers)
+	{
+		_periodicalTriggers = periodicalTriggers;
+	}
+
+	public String getPartialTriggerPattern()
+	{
+		if(_partialTriggerPattern != null)
+		{
+			return _partialTriggerPattern;
+		}
+		ValueBinding vb = getValueBinding("partialTriggerPattern");
+		return vb != null ? RendererUtils.getStringValue(getFacesContext(), vb) : null;
+	}
+
+	public void setPartialTriggerPattern(String partialTriggerPattern)
+	{
+		this._partialTriggerPattern = partialTriggerPattern;
+	}
+
+	public String getInlineLoadingMessage()
+	{
+		if(_inlineLoadingMessage != null)
+		{
+			return _inlineLoadingMessage;
+		}
+		ValueBinding vb = getValueBinding("inlineLoadingMessage");
+		return vb != null ? RendererUtils.getStringValue(getFacesContext(), vb) : null;
+	}
+
+	public void setInlineLoadingMessage(String inlineLoadingMessage)
+	{
+		this._inlineLoadingMessage = inlineLoadingMessage;
+	}
+
+	public Boolean getShowDebugMessages()
+	{
+		if(_showDebugMessages != null)
+		{
+			return _showDebugMessages;
+		}
+		ValueBinding vb = getValueBinding("showDebugMessages");
+		return vb != null ? (Boolean) vb.getValue(getFacesContext()) : null;
+	}
+
+	public void setShowDebugMessages(Boolean showDebugMessages)
+	{
+		_showDebugMessages = showDebugMessages;
+	}
+
+	public Boolean getStateUpdate()
+	{
+		if(_stateUpdate != null)
+		{
+			return _stateUpdate;
+		}
+		ValueBinding vb = getValueBinding("stateUpdate");
+		return vb != null ? (Boolean) vb.getValue(getFacesContext()) : null;
+	}
+
+	public void setStateUpdate(Boolean stateUpdate)
+	{
+		_stateUpdate = stateUpdate;
+	}
+
+	public void restoreState(FacesContext context, Object state)
+	{
+
+		Object[] values = (Object[]) state;
+		super.restoreState(context, values[0]);
+		_partialTriggers = (String) values[1];
+		_partialTriggerPattern = (String) values[2];
+		_periodicalUpdate = (Integer) values[3];
+		_periodicalTriggers = (String) values[4];
+		_showDebugMessages = (Boolean) values[5];
+		_stateUpdate = (Boolean) values[6];
+
+	}
+
+	public Object saveState(FacesContext context)
+	{
+		Object[] values = new Object[7];
+		values[0] = super.saveState(context);
+		values[1] = _partialTriggers;
+		values[2] = _partialTriggerPattern;
+		values[3] = _periodicalUpdate;
+		values[4] = _periodicalTriggers;
+		values[5] = _showDebugMessages;
+		values[6] = _stateUpdate;
+		return values;
+	}
 }

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java?rev=590624&r1=590623&r2=590624&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java Wed Oct 31 04:14:12 2007
@@ -45,334 +45,323 @@
 /**
  * @author Ernst Fastl
  */
-public class PPRPanelGroupRenderer extends HtmlGroupRenderer {
-    public static final String PPR_INITIALIZED = "org.apache.myfaces.ppr.INITIALIZED";
+public class PPRPanelGroupRenderer extends HtmlGroupRenderer
+{
+	public static final String PPR_INITIALIZED = "org.apache.myfaces.ppr.INITIALIZED";
 
-    private static Log log = LogFactory.getLog(PPRPanelGroupRenderer.class);
+	private static Log log = LogFactory.getLog(PPRPanelGroupRenderer.class);
 
-    private static final String ADD_PARTIAL_TRIGGER_FUNCTION = "addPartialTrigger";
+	private static final String ADD_PARTIAL_TRIGGER_FUNCTION = "addPartialTrigger";
 
-    private static final String ADD_PERIODICAL_TRIGGER_FUNCTION = "addPeriodicalTrigger";
+	private static final String ADD_PERIODICAL_TRIGGER_FUNCTION = "addPeriodicalTrigger";
 
-    private static final String ADD_PARTIAL_TRIGGER_PATTERN_FUNCTION = "addPartialTriggerPattern";
+	private static final String ADD_PARTIAL_TRIGGER_PATTERN_FUNCTION = "addPartialTriggerPattern";
 
 	private static final String SET_SUBFORM_ID_FUNCTION = "setSubFormId";
 
 	private static final String ADD_INLINE_LOADING_MESSAGE_FUNCTION = "addInlineLoadingMessage";
 
-    private static final String PPR_JS_FILE = "ppr.js";
+	private static final String PPR_JS_FILE = "ppr.js";
 
-    private static final String MY_FACES_PPR_INIT_CODE = "new org.apache.myfaces.PPRCtrl";
+	private static final String MY_FACES_PPR_INIT_CODE = "new org.apache.myfaces.PPRCtrl";
 
-    private static final String DISABLE_RENDER_CHILDREN = "org.apache.myfaces.PPRPanelGroup.disableRenderChildren";
+	private static final String DISABLE_RENDER_CHILDREN = "org.apache.myfaces.PPRPanelGroup.disableRenderChildren";
 
-    public static final String TRANSIENT_MARKER_ATTRIBUTE = "org.apache.myfaces.PPRPanelGroup.transientComponent";
+	public static final String TRANSIENT_MARKER_ATTRIBUTE = "org.apache.myfaces.PPRPanelGroup.transientComponent";
 
-    /**
-         * Renders the start of a span element. Iterates over all child
-         * components and sets transient components to transient=false. Those
-         * components are marked with the TRANSIENT_MARKER_ATTRIBUTE so the
-         * {@link PPRPhaseListener} can reset them to transient in the next
-         * non-PPR Request
-         *
-         * @param facesContext
-         *                the current {@link FacesContext}
-         * @param uiComponent
-         *                the {@link PPRPanelGroup} to render
-         */
-    public void encodeBegin(FacesContext facesContext, UIComponent uiComponent) throws IOException
-    {
-	if (uiComponent.getId() == null || uiComponent.getId().startsWith(UIViewRoot.UNIQUE_ID_PREFIX))
+	/**
+	 * Renders the start of a span element. Iterates over all child
+	 * components and sets transient components to transient=false. Those
+	 * components are marked with the TRANSIENT_MARKER_ATTRIBUTE so the
+	 * {@link PPRPhaseListener} can reset them to transient in the next
+	 * non-PPR Request
+	 *
+	 * @param facesContext the current {@link FacesContext}
+	 * @param uiComponent  the {@link PPRPanelGroup} to render
+	 */
+	public void encodeBegin(FacesContext facesContext, UIComponent uiComponent) throws IOException
 	{
-	    throw new IllegalArgumentException("'id' is a required attribute for the PPRPanelGroup");
+		if(uiComponent.getId() == null || uiComponent.getId().startsWith(UIViewRoot.UNIQUE_ID_PREFIX))
+		{
+			throw new IllegalArgumentException("'id' is a required attribute for the PPRPanelGroup");
+		}
+
+		// todo: in 1.2, better use a combo of
+		// invokeComponent/RendererUtils.renderChildren() instead
+		uiComponent.getAttributes().put(DISABLE_RENDER_CHILDREN, Boolean.TRUE);
+
+		// Iterate over the transient child components and set transient to
+		// false
+		// This is necessary to have those components available for PPR
+		// responses later on
+		for(Iterator iter = uiComponent.getChildren().iterator(); iter.hasNext();)
+		{
+			UIComponent child = (UIComponent) iter.next();
+			if(child.isTransient())
+			{
+				child.setTransient(false);
+				child.getAttributes().put(TRANSIENT_MARKER_ATTRIBUTE, Boolean.TRUE);
+			}
+		}
+
+		super.encodeBegin(facesContext, uiComponent);
 	}
 
-	// todo: in 1.2, better use a combo of
-	// invokeComponent/RendererUtils.renderChildren() instead
-	uiComponent.getAttributes().put(DISABLE_RENDER_CHILDREN, Boolean.TRUE);
-
-	// Iterate over the transient child components and set transient to
-	// false
-	// This is necessary to have those components available for PPR
-	// responses later on
-	for (Iterator iter = uiComponent.getChildren().iterator(); iter.hasNext();)
+	/**
+	 * todo: in 1.2, better use a combo of
+	 * invokeComponent/RendererUtils.renderChildren() instead
+	 *
+	 * @param context
+	 * @param component
+	 * @throws IOException
+	 */
+	public void encodeChildren(FacesContext context, UIComponent component) throws IOException
 	{
-	    UIComponent child = (UIComponent) iter.next();
-	    if (child.isTransient())
-	    {
-		child.setTransient(false);
-		child.getAttributes().put(TRANSIENT_MARKER_ATTRIBUTE, Boolean.TRUE);
-	    }
+		Boolean disableRenderChildren = (Boolean) component.getAttributes().get(DISABLE_RENDER_CHILDREN);
+
+		if(disableRenderChildren != null && disableRenderChildren.booleanValue() == false)
+		{
+			RendererUtils.renderChildren(context, component);
+		}
 	}
 
-	super.encodeBegin(facesContext, uiComponent);
-    }
+	/**
+	 * Encodes the end of the span-element and afterwards the inline
+	 * JavaScript for the client side initialization of the
+	 * {@link PPRPanelGroup}.
+	 *
+	 * @param facesContext the current {@link FacesContext}
+	 * @param uiComponent  the {@link PPRPanelGroup} to render
+	 */
+	public void encodeEnd(FacesContext facesContext, UIComponent uiComponent) throws IOException
+	{
+		// Render the span end element
+		super.encodeEnd(facesContext, uiComponent);
+		if(uiComponent instanceof PPRPanelGroup)
+		{
+			PPRPanelGroup pprGroup = (PPRPanelGroup) uiComponent;
 
-    /**
-         * todo: in 1.2, better use a combo of
-         * invokeComponent/RendererUtils.renderChildren() instead
-         *
-         * @param context
-         * @param component
-         * @throws IOException
-         */
-    public void encodeChildren(FacesContext context, UIComponent component) throws IOException
-    {
-	Boolean disableRenderChildren = (Boolean) component.getAttributes().get(DISABLE_RENDER_CHILDREN);
-
-	if (disableRenderChildren != null && disableRenderChildren.booleanValue() == false)
-	    RendererUtils.renderChildren(context, component);
-    }
-
-    /**
-         * Encodes the end of the span-element and afterwards the inline
-         * JavaScript for the client side initialization of the
-         * {@link PPRPanelGroup}.
-         *
-         * @param facesContext
-         *                the current {@link FacesContext}
-         * @param uiComponent
-         *                the {@link PPRPanelGroup} to render
-         */
-    public void encodeEnd(FacesContext facesContext, UIComponent uiComponent) throws IOException
-    {
-	// Render the span end element
-	super.encodeEnd(facesContext, uiComponent);
-	if (uiComponent instanceof PPRPanelGroup)
+			final String triggers = pprGroup.getPartialTriggers();
+			final String triggerPattern = pprGroup.getPartialTriggerPattern();
+
+			// Check if triggers, a pattern or a periodical update is
+			// defined
+			if((triggers != null && triggers.length() > 0) || (triggerPattern != null && triggerPattern.length() > 0) || pprGroup.getPeriodicalUpdate() != null)
+			{
+				// encode the initialization inline JavaScript
+				encodeJavaScript(facesContext, pprGroup);
+			}
+		}
+
+		// todo: in 1.2, better use a combo of
+		// invokeComponent/RendererUtils.renderChildren() instead
+		uiComponent.getAttributes().put(DISABLE_RENDER_CHILDREN, Boolean.FALSE);
+	}
+
+	/**
+	 * Renders inline JavaScript registering an onLoad function for:
+	 * <ul>
+	 * <li>Initializing the PPRCtrl for the current Form</li>
+	 * <li>Registering partialTriggers</li>
+	 * <li>Registering partialTriggerPatterns</li>
+	 * <li>Starting periodical updates</li>
+	 * <li>Registering inline Loading messages</li>
+	 * </ul>
+	 *
+	 * @param facesContext the current {@link FacesContext}
+	 * @param pprGroup	 the currently rendered {@link PPRPanelGroup}
+	 * @throws IOException if the underlying Layer throws an {@link IOException}
+	 *                     it is passed through
+	 */
+	private void encodeJavaScript(FacesContext facesContext, PPRPanelGroup pprGroup) throws IOException
 	{
-	    PPRPanelGroup pprGroup = (PPRPanelGroup) uiComponent;
 
-	    final String triggers = pprGroup.getPartialTriggers();
-	    final String triggerPattern = pprGroup.getPartialTriggerPattern();
+		final ExternalContext externalContext = facesContext.getExternalContext();
 
-	    // Check if triggers, a pattern or a periodical update is
-                // defined
-	    if ((triggers != null && triggers.length() > 0) || (triggerPattern != null && triggerPattern.length() > 0)
-		    || pprGroup.getPeriodicalUpdate() != null)
-	    {
-		// encode the initialization inline JavaScript
-		encodeJavaScript(facesContext, pprGroup);
-	    }
-	}
+		final Map requestMap = externalContext.getRequestMap();
 
-	// todo: in 1.2, better use a combo of
-	// invokeComponent/RendererUtils.renderChildren() instead
-	uiComponent.getAttributes().put(DISABLE_RENDER_CHILDREN, Boolean.FALSE);
-    }
-
-    /**
-         * Renders inline JavaScript registering an onLoad function for:
-         * <ul>
-         * <li>Initializing the PPRCtrl for the current Form</li>
-         * <li>Registering partialTriggers</li>
-         * <li>Registering partialTriggerPatterns</li>
-         * <li>Starting periodical updates</li>
-         * <li>Registering inline Loading messages</li>
-         * </ul>
-         *
-         * @param facesContext
-         *                the current {@link FacesContext}
-         * @param pprGroup
-         *                the currently rendered {@link PPRPanelGroup}
-         * @throws IOException
-         *                 if the underlying Layer throws an {@link IOException}
-         *                 it is passed through
-         */
-    private void encodeJavaScript(FacesContext facesContext, PPRPanelGroup pprGroup) throws IOException
-    {
+		// Do not render the JavaScript if answering to a PPR response
+		if(PPRPhaseListener.isPartialRequest(facesContext))
+		{
+			return;
+		}
 
-	final ExternalContext externalContext = facesContext.getExternalContext();
+		FormInfo fi = RendererUtils.findNestingForm(pprGroup, facesContext);
+		if(fi == null)
+		{
+			throw new FacesException("PPRPanelGroup must be embedded in a form.");
+		}
 
-	final Map requestMap = externalContext.getRequestMap();
+		//Initialize the client side PPR engine
+		if(!requestMap.containsKey(PPR_INITIALIZED))
+		{
+			requestMap.put(PPR_INITIALIZED, Boolean.TRUE);
 
-	// Do not render the JavaScript if answering to a PPR response
-	if (PPRPhaseListener.isPartialRequest(facesContext))
-	{
-	    return;
-	}
+			String encoding = "UTF-8"; // Hardcoded default
+			if(facesContext.getResponseWriter().getCharacterEncoding() != null)
+			{
+				encoding = facesContext.getResponseWriter().getCharacterEncoding();
+			}
 
-	FormInfo fi = RendererUtils.findNestingForm(pprGroup, facesContext);
-	if (fi == null)
-	{
-	    throw new FacesException("PPRPanelGroup must be embedded in a form.");
-	}
+			DojoConfig currentConfig = DojoUtils.getDjConfigInstance(facesContext);
+			currentConfig.setBindEncoding(encoding);
 
-	//Initialize the client side PPR engine
-	if (!requestMap.containsKey(PPR_INITIALIZED))
-	{
-	    requestMap.put(PPR_INITIALIZED, Boolean.TRUE);
+			String javascriptLocation = (String) pprGroup.getAttributes().get(JSFAttr.JAVASCRIPT_LOCATION);
+			AddResource addResource = AddResourceFactory.getInstance(facesContext);
+			DojoUtils.addMainInclude(facesContext, pprGroup, javascriptLocation, currentConfig);
+			DojoUtils.addRequire(facesContext, pprGroup, "dojo.io.*");
+			DojoUtils.addRequire(facesContext, pprGroup, "dojo.event.*");
+			DojoUtils.addRequire(facesContext, pprGroup, "dojo.xml.*");
+			addResource.addJavaScriptAtPosition(facesContext, AddResource.HEADER_BEGIN, PPRPanelGroup.class, PPR_JS_FILE);
+		}
 
-	    String encoding = "UTF-8" ; // Hardcoded default
-	    if(facesContext.getResponseWriter().getCharacterEncoding() != null)
-		encoding = facesContext.getResponseWriter().getCharacterEncoding();
-
-	    DojoConfig currentConfig = DojoUtils.getDjConfigInstance(facesContext);
-	    currentConfig.setBindEncoding(encoding);
-
-	    String javascriptLocation = (String) pprGroup.getAttributes().get(JSFAttr.JAVASCRIPT_LOCATION);
-	    AddResource addResource = AddResourceFactory.getInstance(facesContext);
-	    DojoUtils.addMainInclude(facesContext, pprGroup, javascriptLocation, currentConfig);
-	    DojoUtils.addRequire(facesContext, pprGroup, "dojo.io.*");
-	    DojoUtils.addRequire(facesContext, pprGroup, "dojo.event.*");
-	    DojoUtils.addRequire(facesContext, pprGroup, "dojo.xml.*");
-	    addResource.addJavaScriptAtPosition(facesContext, AddResource.HEADER_BEGIN, PPRPanelGroup.class,
-		    PPR_JS_FILE);
-	}
+		StringBuffer script = new StringBuffer();
 
-	StringBuffer script = new StringBuffer();
+		// all JS is put inside a function passed to dojoOnLoad
+		// this is necessary in order to be able to replace all button onClick
+		// handlers
 
-	// all JS is put inside a function passed to dojoOnLoad
-	// this is necessary in order to be able to replace all button onClick
-	// handlers
+		script.append("dojo.addOnLoad( function(){ ");
 
-	script.append("dojo.addOnLoad( function(){ ");
+		final String formName = fi.getFormName();
 
-	final String formName = fi.getFormName();
+		String pprCtrlReference = "dojo.byId('" + formName + "').myFacesPPRCtrl";
 
-	String pprCtrlReference = "dojo.byId('" + formName + "').myFacesPPRCtrl";
+		//Each form containing PPRPanelGroups has its own PPRCtrl
+		if(!requestMap.containsKey(PPR_INITIALIZED + "." + formName))
+		{
+			requestMap.put(PPR_INITIALIZED + "." + formName, Boolean.TRUE);
 
-	//Each form containing PPRPanelGroups has its own PPRCtrl
-	if (!requestMap.containsKey(PPR_INITIALIZED + "." + formName))
-	{
-	    requestMap.put(PPR_INITIALIZED + "." + formName, Boolean.TRUE);
+			script.append(pprCtrlReference + "=" + MY_FACES_PPR_INIT_CODE + "('" + formName + "'," + pprGroup.getShowDebugMessages().booleanValue() + "," + pprGroup.getStateUpdate().booleanValue() + ");\n");
 
-	    script.append(pprCtrlReference + "=" + MY_FACES_PPR_INIT_CODE + "('" + formName + "',"
-		    + pprGroup.getShowDebugMessages().booleanValue() + "," + pprGroup.getStateUpdate().booleanValue()
-		    + ");\n");
-
-	    if (pprGroup.getPeriodicalUpdate() != null)
-	    {
-		script.append(pprCtrlReference + ".registerOnSubmitInterceptor();");
-	    }
+			if(pprGroup.getPeriodicalUpdate() != null)
+			{
+				script.append(pprCtrlReference + ".registerOnSubmitInterceptor();");
+			}
 
-	}
+		}
 
-	String clientId = pprGroup.getClientId(facesContext);
+		String clientId = pprGroup.getClientId(facesContext);
 
-	//Handle periodical updates
-	if (pprGroup.getPeriodicalUpdate() != null)
-	{
-	    String periodicalTriggers = pprGroup.getPeriodicalTriggers();
-	    // If no periodicalTriggers are set just start the periodical
-	    // update
-	    if (periodicalTriggers == null || periodicalTriggers.trim().length() <= 0)
-	    {
-		script.append(pprCtrlReference + ".startPeriodicalUpdate(" + pprGroup.getPeriodicalUpdate() + ",'"
-			+ clientId + "');");
-	    }
-	    // Otherwise start it when the trigger happens
-	    else
-	    {
-		List partialTriggers = (new PartialTriggerParser()).parse(periodicalTriggers);
-		String periodicalTriggerId;
-		String periodicalTriggerClientId;
-		UIComponent periodicalTriggerComponent;
-		for (int i = 0; i < partialTriggers.size(); i++)
-		{
-		    PartialTriggerParser.PartialTrigger trigger = (PartialTriggerParser.PartialTrigger) partialTriggers
-			    .get(i);
-		    periodicalTriggerId = trigger.getPartialTriggerId();
-		    periodicalTriggerComponent = pprGroup.findComponent(periodicalTriggerId);
-		    if (periodicalTriggerComponent == null)
-		    {
-			periodicalTriggerComponent = facesContext.getViewRoot().findComponent(periodicalTriggerId);
-		    }
-
-		    // Component found
-		    if (periodicalTriggerComponent != null)
-		    {
-			periodicalTriggerClientId = periodicalTriggerComponent.getClientId(facesContext);
-			script.append(pprCtrlReference + "." + ADD_PERIODICAL_TRIGGER_FUNCTION + "('"
-				+ periodicalTriggerClientId + "'," + encodeArray(trigger.getEventHooks()) + ",'"
-				+ clientId + "', " + pprGroup.getPeriodicalUpdate() + ");");
-
-			// Component missing
-		    } else
-		    {
-			if (log.isDebugEnabled())
+		//Handle periodical updates
+		if(pprGroup.getPeriodicalUpdate() != null)
+		{
+			String periodicalTriggers = pprGroup.getPeriodicalTriggers();
+			// If no periodicalTriggers are set just start the periodical
+			// update
+			if(periodicalTriggers == null || periodicalTriggers.trim().length() <= 0)
 			{
-			    log.debug("PPRPanelGroupRenderer Component with id " + periodicalTriggerId + " not found!");
+				script.append(pprCtrlReference + ".startPeriodicalUpdate(" + pprGroup.getPeriodicalUpdate() + ",'" + clientId + "');");
+			}
+			// Otherwise start it when the trigger happens
+			else
+			{
+				List partialTriggers = (new PartialTriggerParser()).parse(periodicalTriggers);
+				String periodicalTriggerId;
+				String periodicalTriggerClientId;
+				UIComponent periodicalTriggerComponent;
+				for(int i = 0; i < partialTriggers.size(); i++)
+				{
+					PartialTriggerParser.PartialTrigger trigger = (PartialTriggerParser.PartialTrigger) partialTriggers
+							.get(i);
+					periodicalTriggerId = trigger.getPartialTriggerId();
+					periodicalTriggerComponent = pprGroup.findComponent(periodicalTriggerId);
+					if(periodicalTriggerComponent == null)
+					{
+						periodicalTriggerComponent = facesContext.getViewRoot().findComponent(periodicalTriggerId);
+					}
+
+					// Component found
+					if(periodicalTriggerComponent != null)
+					{
+						periodicalTriggerClientId = periodicalTriggerComponent.getClientId(facesContext);
+						script.append(pprCtrlReference + "." + ADD_PERIODICAL_TRIGGER_FUNCTION + "('" + periodicalTriggerClientId + "'," + encodeArray(trigger.getEventHooks()) + ",'" + clientId + "', " + pprGroup.getPeriodicalUpdate() + ");");
+
+						// Component missing
+					}
+					else
+					{
+						if(log.isDebugEnabled())
+						{
+							log.debug("PPRPanelGroupRenderer Component with id " + periodicalTriggerId + " not found!");
+						}
+					}
+				}
 			}
-		    }
 		}
-	    }
-	}
 
-	String partialTriggerId;
-	String partialTriggerClientId;
-	UIComponent partialTriggerComponent;
+		String partialTriggerId;
+		String partialTriggerClientId;
+		UIComponent partialTriggerComponent;
 
-	String partialTriggers = pprGroup.getPartialTriggers();
+		String partialTriggers = pprGroup.getPartialTriggers();
 
-	String partialTriggerPattern = pprGroup.getPartialTriggerPattern();
+		String partialTriggerPattern = pprGroup.getPartialTriggerPattern();
 
-	//handle partial trigger patterns
-	if (partialTriggerPattern != null && partialTriggerPattern.trim().length() > 0)
-	{
-	    script.append(pprCtrlReference + "." + ADD_PARTIAL_TRIGGER_PATTERN_FUNCTION + "('" + partialTriggerPattern
-		    + "','" + clientId + "');");
-	}
+		//handle partial trigger patterns
+		if(partialTriggerPattern != null && partialTriggerPattern.trim().length() > 0)
+		{
+			script.append(pprCtrlReference + "." + ADD_PARTIAL_TRIGGER_PATTERN_FUNCTION + "('" + partialTriggerPattern + "','" + clientId + "');");
+		}
 
-	SubForm subFormParent = findParentSubForm(pprGroup);
-	if (subFormParent != null)
-	{
-		script.append(pprCtrlReference + "." + SET_SUBFORM_ID_FUNCTION + "('" + subFormParent.getId()
-			+ "','" + clientId + "');");
-	}
+		SubForm subFormParent = findParentSubForm(pprGroup);
+		if(subFormParent != null)
+		{
+			script.append(pprCtrlReference + "." + SET_SUBFORM_ID_FUNCTION + "('" + subFormParent.getId() + "','" + clientId + "');");
+		}
 
-	String inlineLoadingMessage = pprGroup.getInlineLoadingMessage();
+		String inlineLoadingMessage = pprGroup.getInlineLoadingMessage();
 
-	//handle inline loading messages
-	if (inlineLoadingMessage != null && inlineLoadingMessage.trim().length() > 0)
-	{
-	    script.append(pprCtrlReference + "." + ADD_INLINE_LOADING_MESSAGE_FUNCTION + "('" + inlineLoadingMessage
-		    + "','" + clientId + "');");
-	}
+		//handle inline loading messages
+		if(inlineLoadingMessage != null && inlineLoadingMessage.trim().length() > 0)
+		{
+			script.append(pprCtrlReference + "." + ADD_INLINE_LOADING_MESSAGE_FUNCTION + "('" + inlineLoadingMessage + "','" + clientId + "');");
+		}
 
-	//handle partial triggers
-	if (partialTriggers != null && partialTriggers.trim().length() > 0)
-	{
-	    List partialTriggerIds = (new PartialTriggerParser()).parse(partialTriggers);
-	    for (int i = 0; i < partialTriggerIds.size(); i++)
-	    {
-		PartialTriggerParser.PartialTrigger trigger = (PartialTriggerParser.PartialTrigger) partialTriggerIds
-			.get(i);
-		partialTriggerId = trigger.getPartialTriggerId();
-		partialTriggerComponent = pprGroup.findComponent(partialTriggerId);
-		if (partialTriggerComponent == null)
-		{
-		    partialTriggerComponent = facesContext.getViewRoot().findComponent(partialTriggerId);
-		}
-		if (partialTriggerComponent != null)
-		{
-		    partialTriggerClientId = partialTriggerComponent.getClientId(facesContext);
-		    script.append(pprCtrlReference + "." + ADD_PARTIAL_TRIGGER_FUNCTION + "('" + partialTriggerClientId
-			    + "'," + encodeArray(trigger.getEventHooks()) + ",'" + clientId + "');");
-		} else
-		{
-		    if (log.isDebugEnabled())
-		    {
-			log.debug("PPRPanelGroupRenderer Component with id " + partialTriggerId + " not found!");
-		    }
+		//handle partial triggers
+		if(partialTriggers != null && partialTriggers.trim().length() > 0)
+		{
+			List partialTriggerIds = (new PartialTriggerParser()).parse(partialTriggers);
+			for(int i = 0; i < partialTriggerIds.size(); i++)
+			{
+				PartialTriggerParser.PartialTrigger trigger = (PartialTriggerParser.PartialTrigger) partialTriggerIds
+						.get(i);
+				partialTriggerId = trigger.getPartialTriggerId();
+				partialTriggerComponent = pprGroup.findComponent(partialTriggerId);
+				if(partialTriggerComponent == null)
+				{
+					partialTriggerComponent = facesContext.getViewRoot().findComponent(partialTriggerId);
+				}
+				if(partialTriggerComponent != null)
+				{
+					partialTriggerClientId = partialTriggerComponent.getClientId(facesContext);
+					script.append(pprCtrlReference + "." + ADD_PARTIAL_TRIGGER_FUNCTION + "('" + partialTriggerClientId + "'," + encodeArray(trigger.getEventHooks()) + ",'" + clientId + "');");
+				}
+				else
+				{
+					if(log.isDebugEnabled())
+					{
+						log.debug("PPRPanelGroupRenderer Component with id " + partialTriggerId + " not found!");
+					}
+				}
+			}
 		}
-	    }
-	}
 
-	// closing the dojo.addOnLoad call
-	script.append("});");
+		// closing the dojo.addOnLoad call
+		script.append("});");
 
-	//Really render the script
-	renderInlineScript(facesContext, pprGroup, script.toString());
-    }
+		//Really render the script
+		renderInlineScript(facesContext, pprGroup, script.toString());
+	}
 
 	private SubForm findParentSubForm(UIComponent base)
 	{
-		if (base == null)
+		if(base == null)
 		{
 			return null;
 		}
 
-		if (base instanceof SubForm)
+		if(base instanceof SubForm)
 		{
 			return (SubForm) base;
 		}
@@ -381,50 +370,48 @@
 	}
 
 	private String encodeArray(List eventHooks)
-    {
-	if (eventHooks == null || eventHooks.size() == 0)
 	{
-	    return "null";
-	} else
-	{
-	    StringBuffer buf = new StringBuffer();
-	    buf.append("[");
+		if(eventHooks == null || eventHooks.size() == 0)
+		{
+			return "null";
+		}
+		else
+		{
+			StringBuffer buf = new StringBuffer();
+			buf.append("[");
 
-	    for (int i = 0; i < eventHooks.size(); i++)
-	    {
-		if (i > 0)
-		    buf.append(",");
-		String eventHook = (String) eventHooks.get(i);
-		buf.append("'");
-		buf.append(eventHook);
-		buf.append("'");
-	    }
-	    buf.append("]");
+			for(int i = 0; i < eventHooks.size(); i++)
+			{
+				if(i > 0)
+				{
+					buf.append(",");
+				}
+				String eventHook = (String) eventHooks.get(i);
+				buf.append("'");
+				buf.append(eventHook);
+				buf.append("'");
+			}
+			buf.append("]");
 
-	    return buf.toString();
+			return buf.toString();
+		}
 	}
-    }
 
-    /**
-         * Helper to write an inline javascript at the exact resource location
-         * of the call.
-         *
-         * @param facesContext
-         *                The current faces-context.
-         * @param component
-         *                The component for which the script is written.
-         * @param script
-         *                The script to be written.
-         * @throws IOException
-         *                 A forwarded exception from the underlying renderer.
-         */
-    private static void renderInlineScript(FacesContext facesContext, UIComponent component, String script)
-	    throws IOException
-    {
-	ResponseWriter writer = facesContext.getResponseWriter();
-	writer.startElement(HTML.SCRIPT_ELEM, component);
-	writer.writeAttribute(HTML.TYPE_ATTR, HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT, null);
-	writer.write(script);
-	writer.endElement(HTML.SCRIPT_ELEM);
-    }
+	/**
+	 * Helper to write an inline javascript at the exact resource location
+	 * of the call.
+	 *
+	 * @param facesContext The current faces-context.
+	 * @param component	The component for which the script is written.
+	 * @param script	   The script to be written.
+	 * @throws IOException A forwarded exception from the underlying renderer.
+	 */
+	private static void renderInlineScript(FacesContext facesContext, UIComponent component, String script) throws IOException
+	{
+		ResponseWriter writer = facesContext.getResponseWriter();
+		writer.startElement(HTML.SCRIPT_ELEM, component);
+		writer.writeAttribute(HTML.TYPE_ATTR, HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT, null);
+		writer.write(script);
+		writer.endElement(HTML.SCRIPT_ELEM);
+	}
 }

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupTag.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupTag.java?rev=590624&r1=590623&r2=590624&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupTag.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupTag.java Wed Oct 31 04:14:12 2007
@@ -25,7 +25,8 @@
 /**
  * @author Ernst Fastl
  */
-public class PPRPanelGroupTag extends HtmlPanelGroupTag {
+public class PPRPanelGroupTag extends HtmlPanelGroupTag
+{
 	private String _partialTriggers;
 
 	private String _partialTriggerPattern;
@@ -34,82 +35,97 @@
 
 	private String _periodicalUpdate;
 
-    private String _periodicalTriggers;
+	private String _periodicalTriggers;
 
-    private String _showDebugMessages;
+	private String _showDebugMessages;
 
 	private String _stateUpdate;
 
-	public String getComponentType() {
+	public String getComponentType()
+	{
 		return PPRPanelGroup.COMPONENT_TYPE;
 	}
 
-	public String getRendererType() {
+	public String getRendererType()
+	{
 		return PPRPanelGroup.DEFAULT_RENDERER_TYPE;
 	}
 
-	public void release() {
+	public void release()
+	{
 		super.release();
 		_partialTriggers = null;
 		_periodicalUpdate = null;
-        _periodicalTriggers = null;
-        _showDebugMessages = null;
+		_periodicalTriggers = null;
+		_showDebugMessages = null;
 		_stateUpdate = null;
 	}
 
-	protected void setProperties(UIComponent component) {
+	protected void setProperties(UIComponent component)
+	{
 		super.setProperties(component);
 
 		setStringProperty(component, "partialTriggers", _partialTriggers);
 		setStringProperty(component, "partialTriggerPattern", _partialTriggerPattern);
 		setStringProperty(component, "inlineLoadingMessage", _inlineLoadingMessage);
 		setIntegerProperty(component, "periodicalUpdate", _periodicalUpdate);
-        setStringProperty(component, "periodicalTriggers", _periodicalTriggers);
-        setBooleanProperty(component, "showDebugMessages", _showDebugMessages);
+		setStringProperty(component, "periodicalTriggers", _periodicalTriggers);
+		setBooleanProperty(component, "showDebugMessages", _showDebugMessages);
 		setBooleanProperty(component, "stateUpdate", _stateUpdate);
 	}
 
-	public String getPartialTriggers() {
+	public String getPartialTriggers()
+	{
 		return _partialTriggers;
 	}
 
-	public void setPartialTriggers(String partialTriggers) {
+	public void setPartialTriggers(String partialTriggers)
+	{
 		this._partialTriggers = partialTriggers;
 	}
 
-	public String getPartialTriggerPattern() {
+	public String getPartialTriggerPattern()
+	{
 		return _partialTriggerPattern;
 	}
 
-	public void setPartialTriggerPattern(String triggerPattern) {
+	public void setPartialTriggerPattern(String triggerPattern)
+	{
 		_partialTriggerPattern = triggerPattern;
 	}
 
-	public String getInlineLoadingMessage() {
+	public String getInlineLoadingMessage()
+	{
 		return _inlineLoadingMessage;
 	}
 
-	public void setInlineLoadingMessage(String loadingMessage) {
+	public void setInlineLoadingMessage(String loadingMessage)
+	{
 		_inlineLoadingMessage = loadingMessage;
 	}
 
-	public void setPeriodicalUpdate(String periodicalUpdate) {
+	public void setPeriodicalUpdate(String periodicalUpdate)
+	{
 		_periodicalUpdate = periodicalUpdate;
 	}
 
-    public String getPeriodicalTriggers() {
+	public String getPeriodicalTriggers()
+	{
 		return _periodicalTriggers;
 	}
 
-    public void setPeriodicalTriggers(String periodicalTriggers) {
+	public void setPeriodicalTriggers(String periodicalTriggers)
+	{
 		_periodicalTriggers = periodicalTriggers;
 	}
 
-    public void setShowDebugMessages(String showDebugMessages) {
+	public void setShowDebugMessages(String showDebugMessages)
+	{
 		_showDebugMessages = showDebugMessages;
 	}
 
-	public void setStateUpdate(String stateUpdate) {
+	public void setStateUpdate(String stateUpdate)
+	{
 		_stateUpdate = stateUpdate;
 	}
 }

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPhaseListener.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPhaseListener.java?rev=590624&r1=590623&r2=590624&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPhaseListener.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPhaseListener.java Wed Oct 31 04:14:12 2007
@@ -45,277 +45,271 @@
  * Before RenderResponse PhaseListener for processing Ajax requests from
  * {@link PPRPanelGroup}. It also participates in handling transient components
  * in PPR Requests
- * 
+ *
  * @author Ernst Fastl
  */
-public class PPRPhaseListener implements PhaseListener {
-    private static Log log = LogFactory.getLog(PPRPhaseListener.class);
+public class PPRPhaseListener implements PhaseListener
+{
+	private static Log log = LogFactory.getLog(PPRPhaseListener.class);
+
+	/**
+	 * Request parameter which marks a request as PPR request
+	 */
+	private static final String PPR_PARAMETER = "org.apache.myfaces.PPRCtrl.ajaxRequest";
+
+	/**
+	 * Request parameter containing a comma separated list of component IDs
+	 * of the to be updated components
+	 */
+	private static final String TRIGGERED_COMPONENTS_PARAMETER = "org.apache.myfaces.PPRCtrl.triggeredComponents";
 
-    /**
-         * Request parameter which marks a request as PPR request
-         */
-    private static final String PPR_PARAMETER = "org.apache.myfaces.PPRCtrl.ajaxRequest";
-
-    /**
-         * Request parameter containing a comma separated list of component IDs
-         * of the to be updated components
-         */
-    private static final String TRIGGERED_COMPONENTS_PARAMETER = "org.apache.myfaces.PPRCtrl.triggeredComponents";
-
-    private static final String XML_HEADER = "<?xml version=\"1.0\"?>\n";
-
-    public void afterPhase(PhaseEvent phaseEvent)
-    {
-    }
-
-    /**
-         * Determines wether the currently processed request is a PPR request
-         * (by searching for PPR_PARAMETER in the request parameter map) or an
-         * ordinary HTTP request. If the request is a PPR request the triggered
-         * components are encoded. Otherwise transient components which have
-         * previously been marked not transient by the
-         * {@link PPRPanelGroupRenderer} are set to transient again
-         */
-    public void beforePhase(PhaseEvent event)
-    {
-	if (log.isDebugEnabled())
+	private static final String XML_HEADER = "<?xml version=\"1.0\"?>\n";
+
+	public void afterPhase(PhaseEvent phaseEvent)
 	{
-	    log.debug("In PPRPhaseListener beforePhase");
 	}
 
-	final FacesContext context = event.getFacesContext();
-	final ExternalContext externalContext = context.getExternalContext();
+	/**
+	 * Determines wether the currently processed request is a PPR request
+	 * (by searching for PPR_PARAMETER in the request parameter map) or an
+	 * ordinary HTTP request. If the request is a PPR request the triggered
+	 * components are encoded. Otherwise transient components which have
+	 * previously been marked not transient by the
+	 * {@link PPRPanelGroupRenderer} are set to transient again
+	 */
+	public void beforePhase(PhaseEvent event)
+	{
+		if(log.isDebugEnabled())
+		{
+			log.debug("In PPRPhaseListener beforePhase");
+		}
 
-	Map requestMap = externalContext.getRequestMap();
+		final FacesContext context = event.getFacesContext();
+		final ExternalContext externalContext = context.getExternalContext();
 
-	if (isPartialRequest(context))
-	{
-	    processPartialPageRequest(context, externalContext, requestMap);
-	} else
-	{
-	    // Iterate over the component tree and set all previously
-	    // transient components to transient again
-	    resetTransientComponents(context.getViewRoot());
+		Map requestMap = externalContext.getRequestMap();
+
+		if(isPartialRequest(context))
+		{
+			processPartialPageRequest(context, externalContext, requestMap);
+		}
+		else
+		{
+			// Iterate over the component tree and set all previously
+			// transient components to transient again
+			resetTransientComponents(context.getViewRoot());
+		}
 	}
-    }
 
-    /**
-         * if the provided component was marked transient in the last request
-         * set it to transient. Recursively do the same for all children
-         * 
-         * @param comp
-         *                the component to reset
-         */
-    private void resetTransientComponents(UIComponent comp)
-    {
-	if (comp.getAttributes().containsKey(PPRPanelGroupRenderer.TRANSIENT_MARKER_ATTRIBUTE))
+	/**
+	 * if the provided component was marked transient in the last request
+	 * set it to transient. Recursively do the same for all children
+	 *
+	 * @param comp the component to reset
+	 */
+	private void resetTransientComponents(UIComponent comp)
 	{
-	    comp.setTransient(true);
+		if(comp.getAttributes().containsKey(PPRPanelGroupRenderer.TRANSIENT_MARKER_ATTRIBUTE))
+		{
+			comp.setTransient(true);
+		}
+		for(Iterator iter = comp.getChildren().iterator(); iter.hasNext();)
+		{
+			UIComponent child = (UIComponent) iter.next();
+			resetTransientComponents(child);
+		}
 	}
-	for (Iterator iter = comp.getChildren().iterator(); iter.hasNext();)
+
+	/**
+	 * Checks if the currently processed Request is an AJAX request from a
+	 * PPRPanelGroup
+	 *
+	 * @param context the current {@link FacesContext}
+	 * @return true if a PPR request is being processed , false otherwise
+	 */
+	public static boolean isPartialRequest(FacesContext context)
 	{
-	    UIComponent child = (UIComponent) iter.next();
-	    resetTransientComponents(child);
+		return context.getExternalContext().getRequestParameterMap().containsKey(PPR_PARAMETER);
 	}
-    }
 
-    /**
-         * Checks if the currently processed Request is an AJAX request from a
-         * PPRPanelGroup
-         * 
-         * @param context
-         *                the current {@link FacesContext}
-         * @return true if a PPR request is being processed , false otherwise
-         */
-    public static boolean isPartialRequest(FacesContext context)
-    {
-	return context.getExternalContext().getRequestParameterMap().containsKey(PPR_PARAMETER);
-    }
-
-    /**
-         * Respond to an AJAX request from a {@link PPRPanelGroup}. The
-         * triggered components are determined by reading the
-         * TRIGGERED_COMPONENTS_PARAMETER from either the RequestParameterMap or
-         * the Request Map. Those componenets are encoded into an XML response.
-         * The lifecycle is quit afterwards.
-         * 
-         * @param context
-         *                the current {@link FacesContext}
-         * @param externalContext
-         *                the current {@link ExternalContext}
-         * @param requestMap
-         *                Map containing the request attributes
-         */
-    private void processPartialPageRequest(FacesContext context, final ExternalContext externalContext, Map requestMap)
-    {
-
-	ServletResponse response = (ServletResponse) externalContext.getResponse();
-	ServletRequest request = (ServletRequest) externalContext.getRequest();
-
-	UIViewRoot viewRoot = context.getViewRoot();
-
-	// Set Character encoding, contentType and locale for the response
-	final String characterEncoding = request.getCharacterEncoding();
-	String contentType = getContentType("text/xml", characterEncoding);
-	response.setContentType(contentType);
-	response.setLocale(viewRoot.getLocale());
+	/**
+	 * Respond to an AJAX request from a {@link PPRPanelGroup}. The
+	 * triggered components are determined by reading the
+	 * TRIGGERED_COMPONENTS_PARAMETER from either the RequestParameterMap or
+	 * the Request Map. Those componenets are encoded into an XML response.
+	 * The lifecycle is quit afterwards.
+	 *
+	 * @param context		 the current {@link FacesContext}
+	 * @param externalContext the current {@link ExternalContext}
+	 * @param requestMap	  Map containing the request attributes
+	 */
+	private void processPartialPageRequest(FacesContext context, final ExternalContext externalContext, Map requestMap)
+	{
+
+		ServletResponse response = (ServletResponse) externalContext.getResponse();
+		ServletRequest request = (ServletRequest) externalContext.getRequest();
+
+		UIViewRoot viewRoot = context.getViewRoot();
+
+		// Set Character encoding, contentType and locale for the response
+		final String characterEncoding = request.getCharacterEncoding();
+		String contentType = getContentType("text/xml", characterEncoding);
+		response.setContentType(contentType);
+		response.setLocale(viewRoot.getLocale());
 
-	// Fetch the comma-separated list of triggered components
-	String triggeredComponents = getTriggeredComponents(context);
+		// Fetch the comma-separated list of triggered components
+		String triggeredComponents = getTriggeredComponents(context);
 
-	try
-	{
-	    PrintWriter out = response.getWriter();
-	    context.setResponseWriter(new HtmlResponseWriterImpl(out, contentType, characterEncoding));
-	    out.print(XML_HEADER);
-	    out.print("<response>\n");
-	    encodeTriggeredComponents(out, triggeredComponents, viewRoot, context);
-	    out.print("</response>");
-	    out.flush();
-	} catch (IOException e)
-	{
-	    throw new FacesException(e);
-	}
-
-	context.responseComplete();
-    }
+		try
+		{
+			PrintWriter out = response.getWriter();
+			context.setResponseWriter(new HtmlResponseWriterImpl(out, contentType, characterEncoding));
+			out.print(XML_HEADER);
+			out.print("<response>\n");
+			encodeTriggeredComponents(out, triggeredComponents, viewRoot, context);
+			out.print("</response>");
+			out.flush();
+		}
+		catch(IOException e)
+		{
+			throw new FacesException(e);
+		}
 
-    /**
-         * Fetch the comma-separated list of triggered components. They are
-         * either obtained from the Request Parameter Map where they had
-         * previously been set using
-         * {@link PPRPhaseListener#addTriggeredComponent(FacesContext, String))
-         * or from the request parameter map.
-         * 
-         * @param fc
-         *                the current {@link FacesContext}
-         * @return a comma separated list of component IDs of the components
-         *         which are to be updated
-         */
-    private static String getTriggeredComponents(FacesContext fc)
-    {
-	String triggeredComponents = (String) fc.getExternalContext().getRequestMap().get(
-		TRIGGERED_COMPONENTS_PARAMETER);
+		context.responseComplete();
+	}
 
-	if (triggeredComponents == null)
+	/**
+	 * Fetch the comma-separated list of triggered components. They are
+	 * either obtained from the Request Parameter Map where they had
+	 * previously been set using
+	 * {@link PPRPhaseListener#addTriggeredComponent(FacesContext, String))
+	 * or from the request parameter map.
+	 *
+	 * @param fc the current {@link FacesContext}
+	 * @return a comma separated list of component IDs of the components
+	 *         which are to be updated
+	 */
+	private static String getTriggeredComponents(FacesContext fc)
 	{
-	    triggeredComponents = (String) fc.getExternalContext().getRequestParameterMap().get(
-		    TRIGGERED_COMPONENTS_PARAMETER);
-	}
+		String triggeredComponents = (String) fc.getExternalContext().getRequestMap().get(TRIGGERED_COMPONENTS_PARAMETER);
 
-	return triggeredComponents;
-    }
+		if(triggeredComponents == null)
+		{
+			triggeredComponents = (String) fc.getExternalContext().getRequestParameterMap().get(TRIGGERED_COMPONENTS_PARAMETER);
+		}
 
-    /**
-         * API method for adding triggeredComponents programmatically.
-         * 
-         * @param fc
-         *                the current {@link FacesContext}
-         * @param triggeredComponentClientId
-         *                client ID of the component which is to be updated in
-         *                case of a PPR Response
-         */
-    public static void addTriggeredComponent(FacesContext fc, String triggeredComponentClientId)
-    {
-	String triggeredComponents = getTriggeredComponents(fc);
+		return triggeredComponents;
+	}
 
-	if (triggeredComponents == null || triggeredComponents.trim().length() == 0)
-	{
-	    triggeredComponents = new String();
-	} else
+	/**
+	 * API method for adding triggeredComponents programmatically.
+	 *
+	 * @param fc						 the current {@link FacesContext}
+	 * @param triggeredComponentClientId client ID of the component which is to be updated in
+	 *                                   case of a PPR Response
+	 */
+	public static void addTriggeredComponent(FacesContext fc, String triggeredComponentClientId)
 	{
-	    triggeredComponents = triggeredComponents + ",";
-	}
+		String triggeredComponents = getTriggeredComponents(fc);
+
+		if(triggeredComponents == null || triggeredComponents.trim().length() == 0)
+		{
+			triggeredComponents = new String();
+		}
+		else
+		{
+			triggeredComponents = triggeredComponents + ",";
+		}
 
-	triggeredComponents = triggeredComponents + triggeredComponentClientId;
+		triggeredComponents = triggeredComponents + triggeredComponentClientId;
 
-	fc.getExternalContext().getRequestMap().put(TRIGGERED_COMPONENTS_PARAMETER, triggeredComponents);
-    }
+		fc.getExternalContext().getRequestMap().put(TRIGGERED_COMPONENTS_PARAMETER, triggeredComponents);
+	}
 
-    /**
-         * Generate content-type String either containing only the mime-type or
-         * mime-type and character enconding.
-         * 
-         * @param contentType
-         *                the contentType/mimeType
-         * @param charset
-         *                the character set
-         * @return the content-type String to be used in an HTTP response
-         */
-    private String getContentType(String contentType, String charset)
-    {
-	if (charset == null || charset.trim().length() == 0)
-	    return contentType;
-	else
-	    return contentType + ";charset=" + charset;
-    }
-
-    /**
-         * Writes the XML elements for the triggered components to the provided
-         * {@link PrintWriter}. Also encode the current state in a separate XML
-         * element.
-         * 
-         * @param out
-         *                the output Writer
-         * @param triggeredComponents
-         *                comma-separated list of component IDs
-         * @param viewRoot
-         *                the current ViewRoot
-         * @param context
-         *                the current {@link FacesContext}
-         */
-    private void encodeTriggeredComponents(PrintWriter out, String triggeredComponents, UIViewRoot viewRoot,
-	    FacesContext context)
-    {
-	StringTokenizer st = new StringTokenizer(triggeredComponents, ",", false);
-	String clientId;
-	UIComponent component;
-	// Iterate over the individual client IDs
-	while (st.hasMoreTokens())
+	/**
+	 * Generate content-type String either containing only the mime-type or
+	 * mime-type and character enconding.
+	 *
+	 * @param contentType the contentType/mimeType
+	 * @param charset	 the character set
+	 * @return the content-type String to be used in an HTTP response
+	 */
+	private String getContentType(String contentType, String charset)
 	{
-	    clientId = st.nextToken();
-	    component = viewRoot.findComponent(clientId);
-	    if (component != null)
-	    {
-		// Write a component tag which contains a CDATA section whith
-		// the rendered HTML
-		// of the component children
-		out.print("<component id=\"" + component.getClientId(context) + "\"><![CDATA[");
-		boolean oldValue = HtmlRendererUtils.isAllowedCdataSection(context);
-		HtmlRendererUtils.allowCdataSection(context, false);
-		try
+		if(charset == null || charset.trim().length() == 0)
 		{
-		    component.encodeChildren(context);
-		} catch (IOException e)
+			return contentType;
+		}
+		else
 		{
-		    throw new FacesException(e);
+			return contentType + ";charset=" + charset;
 		}
-		HtmlRendererUtils.allowCdataSection(context, oldValue);
-		out.print("]]></component>");
-	    } else
-	    {
-		log.debug("PPRPhaseListener component with id" + clientId + "not found!");
-	    }
-	}
-	// Write the serialized state into a separate XML element
-	out.print("<state>");
-	FacesContext facesContext = FacesContext.getCurrentInstance();
-	StateManager stateManager = facesContext.getApplication().getStateManager();
-	StateManager.SerializedView serializedView = stateManager.saveSerializedView(facesContext);
-	try
-	{
-	    stateManager.writeState(facesContext, serializedView);
-	} catch (IOException e)
-	{
-	    throw new FacesException(e);
 	}
 
-	out.print("</state>");
+	/**
+	 * Writes the XML elements for the triggered components to the provided
+	 * {@link PrintWriter}. Also encode the current state in a separate XML
+	 * element.
+	 *
+	 * @param out				 the output Writer
+	 * @param triggeredComponents comma-separated list of component IDs
+	 * @param viewRoot			the current ViewRoot
+	 * @param context			 the current {@link FacesContext}
+	 */
+	private void encodeTriggeredComponents(PrintWriter out, String triggeredComponents, UIViewRoot viewRoot, FacesContext context)
+	{
+		StringTokenizer st = new StringTokenizer(triggeredComponents, ",", false);
+		String clientId;
+		UIComponent component;
+		// Iterate over the individual client IDs
+		while(st.hasMoreTokens())
+		{
+			clientId = st.nextToken();
+			component = viewRoot.findComponent(clientId);
+			if(component != null)
+			{
+				// Write a component tag which contains a CDATA section whith
+				// the rendered HTML
+				// of the component children
+				out.print("<component id=\"" + component.getClientId(context) + "\"><![CDATA[");
+				boolean oldValue = HtmlRendererUtils.isAllowedCdataSection(context);
+				HtmlRendererUtils.allowCdataSection(context, false);
+				try
+				{
+					component.encodeChildren(context);
+				}
+				catch(IOException e)
+				{
+					throw new FacesException(e);
+				}
+				HtmlRendererUtils.allowCdataSection(context, oldValue);
+				out.print("]]></component>");
+			}
+			else
+			{
+				log.debug("PPRPhaseListener component with id" + clientId + "not found!");
+			}
+		}
+		// Write the serialized state into a separate XML element
+		out.print("<state>");
+		FacesContext facesContext = FacesContext.getCurrentInstance();
+		StateManager stateManager = facesContext.getApplication().getStateManager();
+		StateManager.SerializedView serializedView = stateManager.saveSerializedView(facesContext);
+		try
+		{
+			stateManager.writeState(facesContext, serializedView);
+		}
+		catch(IOException e)
+		{
+			throw new FacesException(e);
+		}
+
+		out.print("</state>");
 
-    }
+	}
 
-    public PhaseId getPhaseId()
-    {
-	return PhaseId.RENDER_RESPONSE;
-    }
+	public PhaseId getPhaseId()
+	{
+		return PhaseId.RENDER_RESPONSE;
+	}
 }