@Override public UIViewRoot restoreView(FacesContext context, String viewId) { checkNull(context, "context"); String calculatedViewId = getViewHandlerSupport().calculateViewId(context, viewId); // we cannot use this.getVDL() directly (see getViewHandler()) //return getViewHandler(context) // .getViewDeclarationLanguage(context,calculatedViewId) // .restoreView(context, calculatedViewId); // -= Leonardo Uribe =- Temporally reverted by TCK issues. return getViewDeclarationLanguage(context,calculatedViewId).restoreView(context, calculatedViewId); }
@Override public UIViewRoot createView(FacesContext context, String viewId) { checkNull(context, "facesContext"); String calculatedViewId = getViewHandlerSupport(context).calculateViewId(context, viewId); // we cannot use this.getVDL() directly (see getViewHandler()) //return getViewHandler(context) // .getViewDeclarationLanguage(context, calculatedViewId) // .createView(context, calculatedViewId); // -= Leonardo Uribe =- Temporally reverted by TCK issues. ViewDeclarationLanguage vdl = getViewDeclarationLanguage(context,calculatedViewId); if (vdl == null) { // If there is no VDL that can handle the view, throw 404 response. sendSourceNotFound(context, viewId); return null; } return vdl.createView(context,calculatedViewId); }
@Override public String getActionURL(FacesContext context, String viewId) { checkNull(context, "facesContext"); checkNull(viewId, "viewId"); return getViewHandlerSupport(context).calculateActionURL(context, viewId); }
@Override public void renderView(FacesContext context, UIViewRoot viewToRender) throws IOException, FacesException { checkNull(context, "context"); checkNull(viewToRender, "viewToRender"); // we cannot use this.getVDL() directly (see getViewHandler()) //String viewId = viewToRender.getViewId(); //getViewHandler(context).getViewDeclarationLanguage(context, viewId) // .renderView(context, viewToRender); // -= Leonardo Uribe =- Temporally reverted by TCK issues. getViewDeclarationLanguage(context,viewToRender.getViewId()).renderView(context, viewToRender); }
@Override public String getBookmarkableURL(FacesContext context, String viewId, Map<String, List<String>> parameters, boolean includeViewParams) { Map<String, List<String>> viewParameters; if (includeViewParams) { viewParameters = getViewParameterList(context, viewId, parameters); } else { viewParameters = parameters; } // note that we cannot use this.getActionURL(), because this will // cause problems if the ViewHandler is wrapped String actionEncodedViewId = getViewHandler(context).getActionURL(context, viewId); ExternalContext externalContext = context.getExternalContext(); String bookmarkEncodedURL = externalContext.encodeBookmarkableURL(actionEncodedViewId, viewParameters); return externalContext.encodeActionURL(bookmarkEncodedURL); }
@Override public String deriveLogicalViewId(FacesContext context, String rawViewId) { if(rawViewId != null) { try { return getViewHandlerSupport(context).calculateViewId(context, rawViewId); } catch (InvalidViewIdException e) { sendSourceNotFound(context, e.getMessage()); } } return rawViewId; // If the argument input is null, return null. }
@Override public void writeState(FacesContext context) throws IOException { checkNull(context, "context"); if(context.getPartialViewContext().isAjaxRequest()) return; setWritingState(context); StateManager stateManager = context.getApplication().getStateManager(); if (stateManager.isSavingStateInClient(context)) { // Only write state marker if javascript view state is disabled ExternalContext extContext = context.getExternalContext(); if (!(JavascriptUtils.isJavascriptAllowed(extContext) && MyfacesConfig.getCurrentInstance(extContext).isViewStateJavascript())) { context.getResponseWriter().write(FORM_STATE_MARKER); } } else { stateManager.writeState(context, new Object[2]); } }
String calculatedViewId = getViewHandlerSupport(context).calculateViewId(context, viewId); ViewDeclarationLanguage vdl = getViewDeclarationLanguage(context,calculatedViewId); ViewMetadata viewMetadata = vdl.getViewMetadata(context, viewId);
protected ViewHandlerSupport getViewHandlerSupport() { return getViewHandlerSupport(FacesContext.getCurrentInstance()); }
ApplicationImpl(final RuntimeConfig runtimeConfig) { if (runtimeConfig == null) { throw new IllegalArgumentException("runtimeConfig must mot be null"); } // set default implementation in constructor // pragmatic approach, no syncronizing will be needed in get methods _viewHandler = new ViewHandlerImpl(); _navigationHandler = new NavigationHandlerImpl(); _actionListener = new ActionListenerImpl(); _defaultRenderKitId = "HTML_BASIC"; _stateManager = new JspStateManagerImpl(); _elContextListeners = new ArrayList<ELContextListener>(); _resourceHandler = new ResourceHandlerImpl(); _runtimeConfig = runtimeConfig; if (log.isLoggable(Level.FINEST)) log.finest("New Application instance created"); }
@Override public String getResourceURL(FacesContext facesContext, String path) { checkNull(facesContext, "facesContext"); checkNull(path, "path"); if (path.length() > 0 && path.charAt(0) == '/') { String contextPath = facesContext.getExternalContext().getRequestContextPath(); if (contextPath == null) { return path; } else if (contextPath.length() == 1 && contextPath.charAt(0) == '/') { // If the context path is root, it is not necessary to append it, otherwise // and extra '/' will be set. return path; } else { return contextPath + path; } } return path; }
@Override public String getRedirectURL(FacesContext context, String viewId, Map<String, List<String>> parameters, boolean includeViewParams) { Map<String, List<String>> viewParameters; if (includeViewParams) { viewParameters = getViewParameterList(context, viewId, parameters); } else { viewParameters = parameters; } // note that we cannot use this.getActionURL(), because this will // cause problems if the ViewHandler is wrapped String actionEncodedViewId = getViewHandler(context).getActionURL(context, viewId); ExternalContext externalContext = context.getExternalContext(); String redirectEncodedURL = externalContext.encodeRedirectURL(actionEncodedViewId, viewParameters); return externalContext.encodeActionURL(redirectEncodedURL); }
@Override public String deriveLogicalViewId(FacesContext context, String rawViewId) { if(rawViewId != null){ try { //TODO: JSF 2.0 - need to make sure calculateViewId follows the new algorithm from 7.5.2 return getViewHandlerSupport().calculateViewId(context, rawViewId); } catch (InvalidViewIdException e) { sendSourceNotFound(context, e.getMessage()); } } return rawViewId; // If the argument input is null, return null. }
@Override public void renderView(FacesContext context, UIViewRoot viewToRender) throws IOException, FacesException { checkNull(context, "context"); checkNull(viewToRender, "viewToRender"); // we cannot use this.getVDL() directly (see getViewHandler()) //String viewId = viewToRender.getViewId(); //getViewHandler(context).getViewDeclarationLanguage(context, viewId) // .renderView(context, viewToRender); // -= Leonardo Uribe =- Temporally reverted by TCK issues. getViewDeclarationLanguage(context,viewToRender.getViewId()).renderView(context, viewToRender); }
@Override public void writeState(FacesContext context) throws IOException checkNull(context, "context"); setWritingState(context, responseStateManager);
String calculatedViewId = getViewHandlerSupport().calculateViewId(context, viewId); ViewDeclarationLanguage vdl = getViewDeclarationLanguage(context,calculatedViewId); ViewMetadata viewMetadata = vdl.getViewMetadata(context, viewId);
@Override public String getActionURL(FacesContext context, String viewId) { return getViewHandlerSupport().calculateActionURL(context, viewId); }
ApplicationImpl(final RuntimeConfig runtimeConfig) { if (runtimeConfig == null) { throw new IllegalArgumentException("runtimeConfig must mot be null"); } // set default implementation in constructor // pragmatic approach, no syncronizing will be needed in get methods _viewHandler = new ViewHandlerImpl(); _navigationHandler = new NavigationHandlerImpl(); _actionListener = new ActionListenerImpl(); _defaultRenderKitId = "HTML_BASIC"; _stateManager = new StateManagerImpl(); _elContextListeners = new ArrayList<ELContextListener>(); _resourceHandler = new ResourceHandlerImpl(); _runtimeConfig = runtimeConfig; if (log.isLoggable(Level.FINEST)) log.finest("New Application instance created"); String configParam = getFaceContext().getExternalContext().getInitParameter(DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE_PARAM_NAME); if (configParam != null && configParam.toLowerCase().equals("true")) { _dateTimeConverterDefaultTimeZoneIsSystemTimeZone = true; } }
@Override public UIViewRoot createView(FacesContext context, String viewId) { checkNull(context, "facesContext"); String calculatedViewId = getViewHandlerSupport().calculateViewId(context, viewId); // we cannot use this.getVDL() directly (see getViewHandler()) //return getViewHandler(context) // .getViewDeclarationLanguage(context, calculatedViewId) // .createView(context, calculatedViewId); // -= Leonardo Uribe =- Temporally reverted by TCK issues. return getViewDeclarationLanguage(context,calculatedViewId).createView(context,calculatedViewId); }
@Override public UIViewRoot restoreView(FacesContext context, String viewId) { checkNull(context, "context"); String calculatedViewId = getViewHandlerSupport(context).calculateViewId(context, viewId); // we cannot use this.getVDL() directly (see getViewHandler()) //return getViewHandler(context) // .getViewDeclarationLanguage(context,calculatedViewId) // .restoreView(context, calculatedViewId); // -= Leonardo Uribe =- Temporally reverted by TCK issues. ViewDeclarationLanguage vdl = getViewDeclarationLanguage(context,calculatedViewId); if (vdl == null) { // If there is no VDL that can handle the view, throw 404 response. sendSourceNotFound(context, viewId); return null; } return vdl.restoreView(context, calculatedViewId); }