diff --git a/trunk/PlanosActuacao/src/viewhandler/CustomViewHandler.java b/trunk/PlanosActuacao/src/viewhandler/CustomViewHandler.java new file mode 100644 index 00000000..ff74c1bb --- /dev/null +++ b/trunk/PlanosActuacao/src/viewhandler/CustomViewHandler.java @@ -0,0 +1,92 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package viewhandler; + +import java.io.IOException; +import java.util.Locale; +import java.util.Map; +import javax.faces.FacesException; +import javax.faces.application.ViewHandler; +import javax.faces.component.UIViewRoot; +import javax.faces.context.FacesContext; + +/** + * + * @author lluis + */ +public class CustomViewHandler extends ViewHandler +{ + + protected ViewHandler baseViewHandler; + + public CustomViewHandler( ViewHandler viewHandler ) + { + super(); + this.baseViewHandler = viewHandler; + } + + @Override + public Locale calculateLocale( FacesContext facesContext ) + { + return baseViewHandler.calculateLocale( facesContext ); + } + + @Override + public String calculateRenderKitId( FacesContext facesContext ) + { + return baseViewHandler.calculateRenderKitId( facesContext ); + } + + @Override + public UIViewRoot createView( FacesContext facesContext, String arg1 ) + { + setPostback( facesContext, false ); + return baseViewHandler.createView( facesContext, arg1 ); + } + + @Override + public String getActionURL( FacesContext facesContext, String arg1 ) + { + return baseViewHandler.getActionURL( facesContext, arg1 ); + } + + @Override + public String getResourceURL( FacesContext facesContext, String arg1 ) + { + return baseViewHandler.getResourceURL( facesContext, arg1 ); + } + + @Override + public void renderView( FacesContext facesContext, UIViewRoot arg1 ) throws IOException, FacesException + { + baseViewHandler.renderView( facesContext, arg1 ); + + } + + @Override + public UIViewRoot restoreView( FacesContext facesContext, String arg1 ) + { + setPostback( facesContext, true ); + return baseViewHandler.restoreView( facesContext, arg1 ); + } + + @Override + public void writeState( FacesContext facesContext ) throws IOException + { + baseViewHandler.writeState( facesContext ); + } + + public Map getRequestScope( FacesContext facesContext ) + { + //return (Map)facesContext.getApplication().createValueBinding(?#{requestScope}?).getValue(facesContext); + //return (Map)facesContext.getApplication(). + return ( Map ) facesContext.getApplication().getExpressionFactory().createValueExpression( facesContext.getELContext(), "#{requestScope}", Map.class ).getValue( facesContext.getELContext() ); + } + + public void setPostback( FacesContext facesContext, boolean value ) + { + getRequestScope( facesContext ).put( "ispostback", new Boolean( value ) ); + } +}