View Javadoc

1   /*
2    * $Id: FaceletsTreeRendererProcessor.java,v 1.4 2007/09/13 08:38:13 oeuillot Exp $
3    */
4   package org.rcfaces.core.internal.facelets;
5   
6   import java.io.IOException;
7   import java.io.Writer;
8   
9   import javax.faces.FacesException;
10  import javax.faces.application.ViewHandler;
11  import javax.faces.component.UIComponent;
12  import javax.faces.context.FacesContext;
13  
14  import org.rcfaces.core.internal.renderkit.WriterException;
15  import org.rcfaces.core.internal.renderkit.tools.AbstractTreeRendererProcessor;
16  import org.rcfaces.core.internal.tools.ComponentTools;
17  
18  /**
19   * 
20   * @author Olivier Oeuillot (latest modification by $Author: oeuillot $)
21   * @version $Revision: 1.4 $ $Date: 2007/09/13 08:38:13 $
22   */
23  public class FaceletsTreeRendererProcessor extends
24          AbstractTreeRendererProcessor {
25  
26      public FaceletsTreeRendererProcessor(FacesContext facesContext) {
27          super(facesContext);
28      }
29  
30      public void encodeChildrenRecursive(UIComponent component,
31              String componentId) throws WriterException {
32  
33          ViewHandler viewHandler = facesContext.getApplication()
34                  .getViewHandler();
35          if ((viewHandler instanceof FaceletViewHandler) == false) {
36              throw new FacesException(
37                      "To use AJAX feature with Facelets, you must declare  org.rcfaces.core.internal.facelets.FaceletViewHandler as view handler !");
38          }
39  
40          try {
41              ((FaceletViewHandler) viewHandler).buildFaceletViewRoot(
42                      facesContext, facesContext.getViewRoot());
43  
44          } catch (IOException e) {
45              throw new WriterException(null, e, component);
46          }
47  
48          component = ComponentTools.getForComponent(facesContext, componentId,
49                  facesContext.getViewRoot());
50  
51          ComponentTools.encodeChildrenRecursive(facesContext, component);
52  
53      }
54  
55      public boolean hasSaveStateFieldMarker(String content) {
56          return false;
57      }
58  
59      public void writeFilteredContent(Writer writer, String content)
60              throws IOException {
61  
62          writer.write(content);
63      }
64  
65  }