using javax.faces.application;\r
using javax.faces.component;\r
using javax.faces.context;\r
+using System.Diagnostics;\r
+using System.Web.UI;\r
+using javax.faces.render;\r
+using javax.faces;\r
\r
namespace Mainsoft.Web.Hosting\r
{\r
public abstract class BaseFacesStateManager : StateManager\r
{\r
+ protected static readonly string VIEWSTATE = "__VIEWSTATE";\r
+ protected static readonly RenderKitFactory RenderKitFactory = (RenderKitFactory) FactoryFinder.getFactory (FactoryFinder.RENDER_KIT_FACTORY);\r
+\r
public override StateManager.SerializedView saveSerializedView (FacesContext facesContext) {\r
Object treeStruct = getTreeStructureToSave (facesContext);\r
Object compStates = getComponentStateToSave (facesContext);\r
return serializedView;\r
}\r
\r
- protected override Object getTreeStructureToSave (FacesContext facesContext) {\r
+ protected override sealed Object getTreeStructureToSave (FacesContext facesContext) {\r
return null;\r
}\r
\r
String renderKitId) {\r
\r
UIViewRoot uiViewRoot = restoreTreeStructure (facesContext, viewId, renderKitId);\r
- if (uiViewRoot != null) {\r
- uiViewRoot.setViewId (viewId);\r
+ Page page = (Page) uiViewRoot.getChildren ().get (0);\r
+ if (page.IsPostBack || page.IsCallback)\r
restoreComponentState (facesContext, uiViewRoot, renderKitId);\r
- String restoredViewId = uiViewRoot.getViewId ();\r
- if (restoredViewId == null || !(restoredViewId.Equals (viewId))) {\r
- return null;\r
- }\r
- }\r
+ else\r
+ facesContext.renderResponse ();\r
return uiViewRoot;\r
}\r
\r
+ protected override sealed UIViewRoot restoreTreeStructure (FacesContext facesContext, string viewId, string renderKitId) {\r
+ return facesContext.getApplication ().getViewHandler ().createView (facesContext, viewId);\r
+ }\r
+\r
protected override Object getComponentStateToSave (FacesContext facesContext) {\r
- Console.WriteLine ("Entering getComponentStateToSave");\r
+ Trace.WriteLine ("Entering getComponentStateToSave");\r
\r
UIViewRoot viewRoot = facesContext.getViewRoot ();\r
if (viewRoot.isTransient ()) {\r
return null;\r
}\r
\r
- Object serializedComponentStates = viewRoot.processSaveState (facesContext);\r
+ Object serializedComponentStates = ((UIComponent) viewRoot.getChildren ().get (0)).processSaveState (facesContext);\r
//Locale is a state attribute of UIViewRoot and need not be saved explicitly\r
- Console.WriteLine ("Exiting getComponentStateToSave");\r
+ Trace.WriteLine ("Exiting getComponentStateToSave");\r
return serializedComponentStates;\r
}\r
}\r