You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by im...@apache.org on 2006/08/23 11:30:13 UTC
svn commit: r433992 - in
/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr:
PPRPanelGroup.java PPRPanelGroupRenderer.java PPRPanelGroupTag.java
PPRPhaseListener.java
Author: imario
Date: Wed Aug 23 02:30:12 2006
New Revision: 433992
URL: http://svn.apache.org/viewvc?rev=433992&view=rev
Log:
prefixing charset issue in PPRPhaseListener
minor code cleanup - added log.isDebugEnabled
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=433992&r1=433991&r2=433992&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 Aug 23 02:30:12 2006
@@ -24,48 +24,46 @@
*/
public class PPRPanelGroup extends HtmlPanelGroup
{
- private String _partialTriggers;
-
- public static final String COMPONENT_TYPE = "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 PPRPanelGroup()
- {
- setRendererType(DEFAULT_RENDERER_TYPE);
- }
-
- public String getFamily()
- {
- return COMPONENT_FAMILY;
- }
-
- public String getPartialTriggers()
- {
- return _partialTriggers;
- }
-
- public void setPartialTriggers(String partialTriggers)
- {
- this._partialTriggers = partialTriggers;
- }
-
- public void restoreState(FacesContext context, Object state)
- {
-
- Object[] values = (Object[]) state;
- super.restoreState(context, values[0]);
- _partialTriggers = (String) values[1];
-
- }
-
- public Object saveState(FacesContext context)
- {
- Object[] values = new Object[2];
- values[0] = super.saveState(context);
- values[1] = _partialTriggers;
- return values;
- }
+ public static final String COMPONENT_TYPE = "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";
+
+ private String _partialTriggers;
+
+ public PPRPanelGroup()
+ {
+ setRendererType(DEFAULT_RENDERER_TYPE);
+ }
+
+ public String getFamily()
+ {
+ return COMPONENT_FAMILY;
+ }
+
+ public String getPartialTriggers()
+ {
+ return _partialTriggers;
+ }
+
+ public void setPartialTriggers(String partialTriggers)
+ {
+ this._partialTriggers = partialTriggers;
+ }
+
+ public void restoreState(FacesContext context, Object state)
+ {
+
+ Object[] values = (Object[]) state;
+ super.restoreState(context, values[0]);
+ _partialTriggers = (String) values[1];
+
+ }
+
+ public Object saveState(FacesContext context)
+ {
+ Object[] values = new Object[2];
+ values[0] = super.saveState(context);
+ values[1] = _partialTriggers;
+ 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=433992&r1=433991&r2=433992&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 Aug 23 02:30:12 2006
@@ -15,21 +15,20 @@
*/
package org.apache.myfaces.custom.ppr;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.custom.dojo.DojoConfig;
+import org.apache.myfaces.custom.dojo.DojoUtils;
import org.apache.myfaces.renderkit.html.ext.HtmlGroupRenderer;
import org.apache.myfaces.renderkit.html.util.AddResource;
import org.apache.myfaces.renderkit.html.util.AddResourceFactory;
-import org.apache.myfaces.shared_tomahawk.renderkit.html.HTML;
import org.apache.myfaces.shared_tomahawk.renderkit.JSFAttr;
-import org.apache.myfaces.custom.dojo.DojoUtils;
-import org.apache.myfaces.custom.dojo.DojoConfig;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.shared_tomahawk.renderkit.html.HTML;
+import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
-import javax.faces.component.UIComponent;
import javax.servlet.http.HttpServletRequest;
-
import java.io.IOException;
import java.util.Set;
import java.util.StringTokenizer;
@@ -40,110 +39,122 @@
*/
public class PPRPanelGroupRenderer extends HtmlGroupRenderer
{
- private static Log log = LogFactory.getLog(PPRPanelGroupRenderer.class);
- private static final String MY_FACES_PPR_INITIALIZED = "/*MyFaces PPR initialized*/";
- private static final String ADD_PARTIAL_TRIGGER_FUNCTION = "myFacesPPRCtrl.addPartialTrigger";
- private static final String PPR_JS_FILE = "ppr.js";
- private static final String BODY_SCRIPT_INFOS_ATTRIBUTE_NAME = "bodyScriptInfos";
- private static final String MY_FACES_PPR_INIT_CODE =
- "var myFacesPPRCtrl = new org.apache.myfaces.PPRCtrl(\"mainform\");";
-
- public void encodeJavaScript(FacesContext facesContext, UIComponent uiComponent) throws IOException
- {
- if (!isInlineScriptSet(facesContext, MY_FACES_PPR_INITIALIZED)) {
- String javascriptLocation = (String)uiComponent.getAttributes().get(JSFAttr.JAVASCRIPT_LOCATION);
- AddResource addResource = AddResourceFactory.getInstance(facesContext);
- DojoUtils.addMainInclude(facesContext, uiComponent, javascriptLocation, new DojoConfig());
- DojoUtils.addRequire(facesContext, uiComponent, "dojo.io.*");
- DojoUtils.addRequire(facesContext, uiComponent, "dojo.event.*");
- addResource.addInlineScriptAtPosition(facesContext, AddResource.HEADER_BEGIN, MY_FACES_PPR_INITIALIZED);
-
- addResource.addJavaScriptAtPosition(facesContext,
- AddResource.HEADER_BEGIN,
- PPRPanelGroup.class,
- PPR_JS_FILE);
-
- writeInlineScript(facesContext,uiComponent,MY_FACES_PPR_INIT_CODE);
- }
- String partialTriggerId=null;
- String partialTriggerClientId=null;
- UIComponent partialTriggerComponent=null;
- String partialTriggers = ((PPRPanelGroup)uiComponent).getPartialTriggers();
- String clientId = uiComponent.getClientId(facesContext);
- StringTokenizer st = new StringTokenizer(partialTriggers, ",; ", false);
- while (st.hasMoreTokens())
- {
- partialTriggerId = st.nextToken();
- partialTriggerComponent = facesContext.getViewRoot().findComponent(partialTriggerId);
- if(partialTriggerComponent != null)
- {
- partialTriggerClientId = partialTriggerComponent.getClientId(facesContext);
- writeInlineScript(facesContext,uiComponent,
- ADD_PARTIAL_TRIGGER_FUNCTION +
- "('" +
- partialTriggerClientId +
- "','" +
- clientId +
- "');");
- }
- else
- {
- log.debug("PPRPanelGroupRenderer Component with id " + partialTriggerId + " not found!");
- }
- }
-
- }
-
- public void encodeEnd(FacesContext facesContext, UIComponent uiComponent) throws IOException
- {
- super.encodeEnd(facesContext, uiComponent);
- if(uiComponent instanceof PPRPanelGroup){
- if(((PPRPanelGroup)uiComponent).getPartialTriggers()!=null &&
- ((PPRPanelGroup)uiComponent).getPartialTriggers().length()>0)
- {
- encodeJavaScript(facesContext, uiComponent);
- }
- }
- }
-
- /**
- * helper to write an inline javascript at the
- * exact resource location of the call
- * @param facesContext
- * @param component
- * @param script
- * @throws IOException
- */
- private static void writeInlineScript(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);
- }
-
- public static boolean isInlineScriptSet(FacesContext context, String inlineScript) {
- HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
- Set set = getBodyScriptInfos(request);
-
- if (!set.contains(inlineScript)) {
- set.add(inlineScript);
-
- return false;
- }
-
- return true;
- }
-
- private static Set getBodyScriptInfos(HttpServletRequest request) {
- Set set = (Set) request.getAttribute(BODY_SCRIPT_INFOS_ATTRIBUTE_NAME);
-
- if (set == null) {
- set = new TreeSet();
- request.setAttribute(BODY_SCRIPT_INFOS_ATTRIBUTE_NAME, set);
- }
+ private static Log log = LogFactory.getLog(PPRPanelGroupRenderer.class);
+
+ private static final String MY_FACES_PPR_INITIALIZED = "/*MyFaces PPR initialized*/";
+ private static final String ADD_PARTIAL_TRIGGER_FUNCTION = "myFacesPPRCtrl.addPartialTrigger";
+ private static final String PPR_JS_FILE = "ppr.js";
+ private static final String BODY_SCRIPT_INFOS_ATTRIBUTE_NAME = "bodyScriptInfos";
+ private static final String MY_FACES_PPR_INIT_CODE =
+ "var myFacesPPRCtrl = new org.apache.myfaces.PPRCtrl(\"mainform\");";
+
+ public void encodeJavaScript(FacesContext facesContext, UIComponent uiComponent) throws IOException
+ {
+ if (!isInlineScriptSet(facesContext, MY_FACES_PPR_INITIALIZED))
+ {
+ String javascriptLocation = (String) uiComponent.getAttributes().get(JSFAttr.JAVASCRIPT_LOCATION);
+ AddResource addResource = AddResourceFactory.getInstance(facesContext);
+ DojoUtils.addMainInclude(facesContext, uiComponent, javascriptLocation, new DojoConfig());
+ DojoUtils.addRequire(facesContext, uiComponent, "dojo.io.*");
+ DojoUtils.addRequire(facesContext, uiComponent, "dojo.event.*");
+ addResource.addInlineScriptAtPosition(facesContext, AddResource.HEADER_BEGIN, MY_FACES_PPR_INITIALIZED);
+
+ addResource.addJavaScriptAtPosition(facesContext,
+ AddResource.HEADER_BEGIN,
+ PPRPanelGroup.class,
+ PPR_JS_FILE);
+
+ writeInlineScript(facesContext, uiComponent, MY_FACES_PPR_INIT_CODE);
+ }
+ String partialTriggerId = null;
+ String partialTriggerClientId = null;
+ UIComponent partialTriggerComponent = null;
+ String partialTriggers = ((PPRPanelGroup) uiComponent).getPartialTriggers();
+ String clientId = uiComponent.getClientId(facesContext);
+ StringTokenizer st = new StringTokenizer(partialTriggers, ",; ", false);
+ while (st.hasMoreTokens())
+ {
+ partialTriggerId = st.nextToken();
+ partialTriggerComponent = facesContext.getViewRoot().findComponent(partialTriggerId);
+ if (partialTriggerComponent != null)
+ {
+ partialTriggerClientId = partialTriggerComponent.getClientId(facesContext);
+ writeInlineScript(facesContext, uiComponent,
+ ADD_PARTIAL_TRIGGER_FUNCTION +
+ "('" +
+ partialTriggerClientId +
+ "','" +
+ clientId +
+ "');");
+ }
+ else
+ {
+ if (log.isDebugEnabled())
+ {
+ log.debug("PPRPanelGroupRenderer Component with id " + partialTriggerId + " not found!");
+ }
+ }
+ }
+
+ }
+
+ public void encodeEnd(FacesContext facesContext, UIComponent uiComponent) throws IOException
+ {
+ super.encodeEnd(facesContext, uiComponent);
+ if (uiComponent instanceof PPRPanelGroup)
+ {
+ if (((PPRPanelGroup) uiComponent).getPartialTriggers() != null &&
+ ((PPRPanelGroup) uiComponent).getPartialTriggers().length() > 0)
+ {
+ encodeJavaScript(facesContext, uiComponent);
+ }
+ }
+ }
+
+ /**
+ * helper to write an inline javascript at the
+ * exact resource location of the call
+ *
+ * @param facesContext
+ * @param component
+ * @param script
+ * @throws IOException
+ */
+ private static void writeInlineScript(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);
+ }
+
+ public static boolean isInlineScriptSet(FacesContext context, String inlineScript)
+ {
+ HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
+ Set set = getBodyScriptInfos(request);
+
+ if (!set.contains(inlineScript))
+ {
+ set.add(inlineScript);
+
+ return false;
+ }
+
+ return true;
+ }
+
+ private static Set getBodyScriptInfos(HttpServletRequest request)
+ {
+ Set set = (Set) request.getAttribute(BODY_SCRIPT_INFOS_ATTRIBUTE_NAME);
+
+ if (set == null)
+ {
+ set = new TreeSet();
+ request.setAttribute(BODY_SCRIPT_INFOS_ATTRIBUTE_NAME, set);
+ }
- return set;
- }
+ return set;
+ }
}
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=433992&r1=433991&r2=433992&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 Aug 23 02:30:12 2006
@@ -24,38 +24,39 @@
*/
public class PPRPanelGroupTag extends HtmlPanelGroupTag
{
- private String _partialTriggers;
+ private String _partialTriggers;
- public String getComponentType()
- {
- return PPRPanelGroup.COMPONENT_TYPE;
- }
-
- public String getRendererType()
- {
- return PPRPanelGroup.DEFAULT_RENDERER_TYPE;
- }
-
-
- public void release()
- {
- super.release();
- _partialTriggers = null;
- }
- protected void setProperties(UIComponent component) {
- super.setProperties(component);
-
- setStringProperty(component, "partialTriggers", _partialTriggers);
- }
-
- public String getPartialTriggers()
- {
- return _partialTriggers;
- }
-
- public void setPartialTriggers(String partialTriggers)
- {
- this._partialTriggers = partialTriggers;
- }
+ public String getComponentType()
+ {
+ return PPRPanelGroup.COMPONENT_TYPE;
+ }
+
+ public String getRendererType()
+ {
+ return PPRPanelGroup.DEFAULT_RENDERER_TYPE;
+ }
+
+ public void release()
+ {
+ super.release();
+ _partialTriggers = null;
+ }
+
+ protected void setProperties(UIComponent component)
+ {
+ super.setProperties(component);
+
+ setStringProperty(component, "partialTriggers", _partialTriggers);
+ }
+
+ public String getPartialTriggers()
+ {
+ return _partialTriggers;
+ }
+
+ public void setPartialTriggers(String partialTriggers)
+ {
+ this._partialTriggers = partialTriggers;
+ }
}
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=433992&r1=433991&r2=433992&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 Aug 23 02:30:12 2006
@@ -17,99 +17,106 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlResponseWriterImpl;
import org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils;
+import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlResponseWriterImpl;
-import javax.faces.event.PhaseListener;
-import javax.faces.event.PhaseEvent;
-import javax.faces.event.PhaseId;
+import javax.faces.FacesException;
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
-import javax.faces.component.UIViewRoot;
-import javax.faces.component.UIComponent;
-import javax.servlet.ServletResponse;
+import javax.faces.event.PhaseEvent;
+import javax.faces.event.PhaseId;
+import javax.faces.event.PhaseListener;
import javax.servlet.ServletRequest;
-import java.util.Map;
-import java.util.StringTokenizer;
+import javax.servlet.ServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
+import java.util.Map;
+import java.util.StringTokenizer;
/**
* @author Ernst Fastl
*/
public class PPRPhaseListener implements PhaseListener
{
- private static Log log = LogFactory.getLog(PPRPhaseListener.class);
- private static final String PPR_PARAMETER = "org.apache.myfaces.PPRCtrl.ajaxRequest";
- 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)
- {
- }
-
- public void beforePhase(PhaseEvent event)
- {
- log.debug("In PPRPhaseListener beforePhase");
- FacesContext context = event.getFacesContext();
- Map externalRequestMap = context.getExternalContext().getRequestParameterMap();
-
- if (externalRequestMap.containsKey(PPR_PARAMETER))
- {
- ServletResponse response =
- (ServletResponse) context.getExternalContext().getResponse();
- ServletRequest request =
- (ServletRequest) context.getExternalContext().getRequest();
- UIViewRoot viewRoot = context.getViewRoot();
- ResponseWriter writer=context.getResponseWriter();
- response.setContentType("text/xml;charset=utf-8");
- response.setLocale(viewRoot.getLocale());
- String triggeredComponents=(String) externalRequestMap.get(TRIGGERED_COMPONENTS_PARAMETER);
- try
- {
- PrintWriter out = response.getWriter();
- context.setResponseWriter(new HtmlResponseWriterImpl(out,
- null,
- request.getCharacterEncoding()));
- out.print(XML_HEADER);
- out.print("<response>\n");
- encodeTriggeredComponents(out,triggeredComponents,viewRoot,context);
- out.print("</response>");
- out.flush();
- } catch (IOException e)
- {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- }
-
- context.responseComplete();
- }
- }
-
- private void encodeTriggeredComponents(PrintWriter out, String triggeredComponents,UIViewRoot viewRoot,FacesContext context)
- {
- StringTokenizer st = new StringTokenizer(triggeredComponents, ",", false);
- String clientId=null;
- UIComponent component=null;
- while (st.hasMoreTokens())
- {
- clientId = st.nextToken();
- component = viewRoot.findComponent(clientId);
- out.print("<component id=\"" +
- component.getClientId(context) +
- "\"><![CDATA[");
- try
- {
- RendererUtils.renderChild(context,component);
- } catch (IOException e)
- {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- }
- out.print("]]></component>");
- }
- }
-
- public PhaseId getPhaseId()
- {
- return PhaseId.RENDER_RESPONSE;
- }
+ private static Log log = LogFactory.getLog(PPRPhaseListener.class);
+ private static final String PPR_PARAMETER = "org.apache.myfaces.PPRCtrl.ajaxRequest";
+ 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)
+ {
+ }
+
+ public void beforePhase(PhaseEvent event)
+ {
+ if (log.isDebugEnabled())
+ {
+ log.debug("In PPRPhaseListener beforePhase");
+ }
+
+ FacesContext context = event.getFacesContext();
+ Map externalRequestMap = context.getExternalContext().getRequestParameterMap();
+
+ if (externalRequestMap.containsKey(PPR_PARAMETER))
+ {
+ ServletResponse response =
+ (ServletResponse) context.getExternalContext().getResponse();
+ ServletRequest request =
+ (ServletRequest) context.getExternalContext().getRequest();
+ UIViewRoot viewRoot = context.getViewRoot();
+ ResponseWriter writer = context.getResponseWriter();
+ response.setContentType("text/xml;charset=" + request.getCharacterEncoding());
+ response.setLocale(viewRoot.getLocale());
+ String triggeredComponents = (String) externalRequestMap.get(TRIGGERED_COMPONENTS_PARAMETER);
+ try
+ {
+ PrintWriter out = response.getWriter();
+ context.setResponseWriter(new HtmlResponseWriterImpl(out,
+ null,
+ request.getCharacterEncoding()));
+ 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();
+ }
+ }
+
+ private void encodeTriggeredComponents(PrintWriter out, String triggeredComponents, UIViewRoot viewRoot, FacesContext context)
+ {
+ StringTokenizer st = new StringTokenizer(triggeredComponents, ",", false);
+ String clientId = null;
+ UIComponent component = null;
+ while (st.hasMoreTokens())
+ {
+ clientId = st.nextToken();
+ component = viewRoot.findComponent(clientId);
+ out.print("<component id=\"" +
+ component.getClientId(context) +
+ "\"><![CDATA[");
+ try
+ {
+ RendererUtils.renderChild(context, component);
+ }
+ catch (IOException e)
+ {
+ throw new FacesException(e);
+ }
+ out.print("]]></component>");
+ }
+ }
+
+ public PhaseId getPhaseId()
+ {
+ return PhaseId.RENDER_RESPONSE;
+ }
}