Author: krasnov Date: 2008-02-20 05:40:01 -0500 (Wed, 20 Feb 2008) New Revision: 96231
Modified: branches/mainsoft/gh2.2/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/BaseFacesStateManager.cs Log: saving/reading state fix, removed call of ResponseStateManager Modified: branches/mainsoft/gh2.2/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/BaseFacesStateManager.cs =================================================================== --- branches/mainsoft/gh2.2/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/BaseFacesStateManager.cs 2008-02-20 10:30:49 UTC (rev 96230) +++ branches/mainsoft/gh2.2/mcs/class/Mainsoft.Web/Mainsoft.Web.Hosting/BaseFacesStateManager.cs 2008-02-20 10:40:01 UTC (rev 96231) @@ -59,18 +59,45 @@ } protected void SaveStateInClient (FacesContext facesContext, StateManager.SerializedView serializedView) { - UIViewRoot uiViewRoot = facesContext.getViewRoot (); - //save state in response (client-side: full state; server-side: sequence) - RenderKit renderKit = RenderKitFactory.getRenderKit (facesContext, uiViewRoot.getRenderKitId ()); - // not us. - renderKit.getResponseStateManager ().writeState (facesContext, serializedView); + //UIViewRoot uiViewRoot = facesContext.getViewRoot (); + ////save state in response (client-side: full state; server-side: sequence) + //RenderKit renderKit = RenderKitFactory.getRenderKit (facesContext, uiViewRoot.getRenderKitId ()); + //// not us. + //renderKit.getResponseStateManager ().writeState (facesContext, serializedView); + + java.io.ByteArrayOutputStream bytearrayoutputstream = new java.io.ByteArrayOutputStream (); + java.io.ObjectOutputStream objectoutputstream = new java.io.ObjectOutputStream (bytearrayoutputstream); + + //ignore tree structure + //objectoutputstream.writeObject (serializedView.getStructure ()); + objectoutputstream.writeObject (serializedView.getState ()); + objectoutputstream.close (); + bytearrayoutputstream.close (); + + string s = " <input type=\"hidden\" name=\"faces.VIEW\" value=\"" + + Convert.ToBase64String ((byte []) vmw.common.TypeUtils.ToByteArray (bytearrayoutputstream.toByteArray ())) + "\" />\n "; + facesContext.getResponseWriter ().write (s); } protected object GetStateFromClient (FacesContext facesContext, String viewId, String renderKitId) { - RenderKit renderKit = RenderKitFactory.getRenderKit (facesContext, renderKitId); - ResponseStateManager responseStateManager = renderKit.getResponseStateManager (); - responseStateManager.getTreeStructureToRestore (facesContext, viewId); //ignore result. Must call for compatibility with sun implementation. - return responseStateManager.getComponentStateToRestore (facesContext); + //RenderKit renderKit = RenderKitFactory.getRenderKit (facesContext, renderKitId); + //ResponseStateManager responseStateManager = renderKit.getResponseStateManager (); + //responseStateManager.getTreeStructureToRestore (facesContext, viewId); //ignore result. Must call for compatibility with sun implementation. + //return responseStateManager.getComponentStateToRestore (facesContext); + + java.util.Map map = facesContext.getExternalContext ().getRequestParameterMap (); + string s1 = (string) map.get ("faces.VIEW"); + + byte [] buffer = Convert.FromBase64String (s1); + java.io.ByteArrayInputStream bytearrayinputstream = new java.io.ByteArrayInputStream (vmw.common.TypeUtils.ToSByteArray (buffer)); + java.io.ObjectInputStream inputStream = new java.io.ObjectInputStream (bytearrayinputstream); + //ignore tree structure + //inputStream.readObject (); + object state = inputStream.readObject (); + inputStream.close (); + bytearrayinputstream.close (); + + return state; } } } _______________________________________________ Mono-patches maillist - Mono-patches@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-patches