2 using System.Collections.Generic;
\r
4 using javax.faces.application;
\r
5 using javax.faces.component;
\r
6 using javax.faces.context;
\r
7 using System.Diagnostics;
\r
10 namespace Mainsoft.Web.Hosting
\r
12 public abstract class BaseFacesStateManager : StateManager
\r
14 protected static readonly string VIEWSTATE = "__VIEWSTATE";
\r
16 public override StateManager.SerializedView saveSerializedView (FacesContext facesContext) {
\r
17 Object treeStruct = getTreeStructureToSave (facesContext);
\r
18 Object compStates = getComponentStateToSave (facesContext);
\r
19 SerializedView serializedView = new SerializedView (this, treeStruct, compStates);
\r
20 return serializedView;
\r
23 protected override sealed Object getTreeStructureToSave (FacesContext facesContext) {
\r
27 public override UIViewRoot restoreView (FacesContext facesContext,
\r
29 String renderKitId) {
\r
31 UIViewRoot uiViewRoot = restoreTreeStructure (facesContext, viewId, renderKitId);
\r
32 Page page = (Page) uiViewRoot.getChildren ().get (0);
\r
33 if (page.IsPostBack || page.IsCallback)
\r
34 restoreComponentState (facesContext, uiViewRoot, renderKitId);
\r
36 facesContext.renderResponse ();
\r
40 protected override sealed UIViewRoot restoreTreeStructure (FacesContext facesContext, string viewId, string renderKitId) {
\r
41 return facesContext.getApplication ().getViewHandler ().createView (facesContext, viewId);
\r
44 protected override Object getComponentStateToSave (FacesContext facesContext) {
\r
45 Trace.WriteLine ("Entering getComponentStateToSave");
\r
47 UIViewRoot viewRoot = facesContext.getViewRoot ();
\r
48 if (viewRoot.isTransient ()) {
\r
52 Object serializedComponentStates = ((UIComponent) viewRoot.getChildren ().get (0)).processSaveState (facesContext);
\r
53 //Locale is a state attribute of UIViewRoot and need not be saved explicitly
\r
54 Trace.WriteLine ("Exiting getComponentStateToSave");
\r
55 return serializedComponentStates;
\r