2 using System.Collections.Generic;
\r
4 using javax.faces.application;
\r
6 using javax.faces.context;
\r
7 using javax.faces.component;
\r
8 using javax.faces.render;
\r
11 using System.Diagnostics;
\r
13 namespace Mainsoft.Web.Hosting
\r
15 public abstract class BaseFacesViewHandler : ViewHandler
\r
17 readonly ViewHandler _viewHandler;
\r
19 public BaseFacesViewHandler (ViewHandler viewHandler) {
\r
20 _viewHandler = viewHandler;
\r
23 public override string getActionURL (FacesContext facesContext, string viewId) {
\r
24 return _viewHandler.getActionURL (facesContext, viewId);
\r
27 public override Locale calculateLocale (FacesContext facesContext) {
\r
28 return _viewHandler.calculateLocale (facesContext);
\r
31 public override String calculateRenderKitId (FacesContext facesContext) {
\r
32 return _viewHandler.calculateRenderKitId (facesContext);
\r
35 public override UIViewRoot createView (FacesContext facesContext, String viewId) {
\r
37 // create instance of Page by viewId
\r
38 StringBuilder sb = new StringBuilder ();
\r
39 sb.Append (facesContext.getExternalContext ().getRequestContextPath ());
\r
41 IHttpHandler page = PageParser.GetCompiledPageInstance (sb.ToString (), null, ((AspNetFacesContext) facesContext).Context);
\r
43 HttpContext context = ((AspNetFacesContext) facesContext).Context;
\r
44 page.ProcessRequest (context);
\r
46 UIViewRoot uiViewRoot = _viewHandler.createView (facesContext, viewId);
\r
47 uiViewRoot.getChildren ().add (0, (UIComponent) page);
\r
49 Trace.WriteLine ("Created view " + viewId);
\r
53 public override String getResourceURL (FacesContext facesContext, String path) {
\r
54 return _viewHandler.getResourceURL (facesContext, path);
\r
57 public override void renderView (FacesContext facesContext, UIViewRoot viewToRender) {
\r
58 if (viewToRender == null)
\r
59 throw new ArgumentNullException ("viewToRender", "viewToRender must not be null");
\r
60 ((UIComponent) viewToRender.getChildren ().get (0)).encodeChildren (facesContext);
\r
64 public override UIViewRoot restoreView (FacesContext facesContext, String viewId) {
\r
65 return _viewHandler.restoreView (facesContext, viewId);
\r
68 public override void writeState (FacesContext facesContext) {
\r
69 StateManager manager = facesContext.getApplication ().getStateManager ();
\r
70 StateManager.SerializedView serializedView = manager.saveSerializedView (facesContext);
\r
71 manager.writeState (facesContext, serializedView);
\r