@SuppressWarnings("deprecation") // the default constructor is deprecated in JSF 2.3 public PrimeFacesContext(FacesContext wrapped) { this.wrapped = wrapped; PrimeRequestContext requestContext = new PrimeRequestContext(wrapped); PrimeRequestContext.setCurrentInstance(requestContext, wrapped); moveScriptsToBottom = requestContext.getApplicationContext().getConfig().isMoveScriptsToBottom(); if (moveScriptsToBottom) { moveScriptsToBottomState = new MoveScriptsToBottomState(); } }
/** * Add a parameter for ajax oncomplete client side callbacks. Value will be serialized to json. * Currently supported values are primitives, POJOs, JSONObject and JSONArray. * * @param name name of the parameter. * @param value value of the parameter. */ public void addCallbackParam(String name, Object value) { getRequestContext().getCallbackParams().put(name, value); }
protected WidgetBuilder getWidgetBuilder(FacesContext context) { return PrimeRequestContext.getCurrentInstance(context).getWidgetBuilder(); }
public static boolean isRTL(FacesContext context, RTLAware component) { boolean globalValue = PrimeRequestContext.getCurrentInstance(context).isRTL(); return globalValue || component.isRTL(); }
@Override public void release() { PrimeRequestContext requestContext = PrimeRequestContext.getCurrentInstance(wrapped); if (requestContext != null) { requestContext.release(); } super.release(); } }
AjaxRequestBuilder builder = PrimeRequestContext.getCurrentInstance().getAjaxRequestBuilder();
protected String buildRequest(FacesContext context, CommandButton button, String clientId) throws FacesException { PrimeRequestContext requestContext = PrimeRequestContext.getCurrentInstance(context); boolean csvEnabled = requestContext.getApplicationContext().getConfig().isClientSideValidationEnabled() && button.isValidateClient(); String request = null; boolean ajax = button.isAjax(); if (ajax) { request = buildAjaxRequest(context, button); } else { UIForm form = ComponentTraversalUtils.closestForm(context, button); if (form == null) { throw new FacesException("CommandButton : \"" + clientId + "\" must be inside a form element"); } request = buildNonAjaxRequest(context, button, form, null, false); } if (csvEnabled) { CSVBuilder csvb = requestContext.getCSVBuilder(); request = csvb.init().source("this").ajax(ajax).process(button, button.getProcess()).update(button, button.getUpdate()).command(request).build(); } return request; }
public static PrimeRequestContext getCurrentInstance(FacesContext facesContext) { if (facesContext == null) { return null; } PrimeRequestContext context = (PrimeRequestContext) facesContext.getAttributes().get(INSTANCE_KEY); if (context == null) { context = new PrimeRequestContext(facesContext); setCurrentInstance(context, facesContext); } return context; }
@Override public void endDocument() throws IOException { FacesContext context = FacesContext.getCurrentInstance(); PrimeRequestContext requestContext = PrimeRequestContext.getCurrentInstance(context); if (requestContext != null) { try { if (context.isValidationFailed()) { requestContext.getCallbackParams().put("validationFailed", true); } encodeCallbackParams(requestContext.getCallbackParams()); encodeScripts(requestContext); } catch (Exception e) { throw new AbortProcessingException(e); } } wrapped.endDocument(); }
protected void encodeOnloadScripts(ResponseWriter writer) throws IOException { List<String> scripts = PrimeRequestContext.getCurrentInstance().getScriptsToExecute(); if (!scripts.isEmpty()) { writer.startElement("script", null); writer.writeAttribute("type", "text/javascript", null); writer.write("$(function(){"); for (int i = 0; i < scripts.size(); i++) { writer.write(scripts.get(i)); writer.write(';'); } writer.write("});"); writer.endElement("script"); } }
@Override public void beforePhase(PhaseEvent event) { FacesContext context = event.getFacesContext(); if (!context.isPostback() || PrimeRequestContext.getCurrentInstance(context).isIgnoreAutoUpdate()) { return; } List<String> clientIds = AutoUpdateListener.getAutoUpdateComponentClientIds(context); if (clientIds != null && !clientIds.isEmpty()) { for (int i = 0; i < clientIds.size(); i++) { String clientId = clientIds.get(i); if (!context.getPartialViewContext().getRenderIds().contains(clientId)) { context.getPartialViewContext().getRenderIds().add(clientId); } } } }
if (PrimeRequestContext.getCurrentInstance(context).isSecure()) { externalContext.setResponseHeader("Cache-Control", "public"); externalContext.setResponseHeader("Pragma", "public");
/** * Executes a JavaScript statement. * * @param statement the JavaScript statement. */ public void executeScript(String statement) { getRequestContext().getScriptsToExecute().add(statement); }
protected PrimeRequestContext getRequestContext() { return PrimeRequestContext.getCurrentInstance(); }
/** * @return Shared WidgetBuilder instance of the current request */ public WidgetBuilder getWidgetBuilder() { if (this.widgetBuilder == null) { this.widgetBuilder = new WidgetBuilder(context, getApplicationContext().getConfig()); } return widgetBuilder; }
protected String buildAjaxRequest(FacesContext context, AjaxSource source, UIForm form) { UIComponent component = (UIComponent) source; String clientId = component.getClientId(context); AjaxRequestBuilder builder = PrimeRequestContext.getCurrentInstance(context).getAjaxRequestBuilder(); builder.init() .source(clientId) .form(source, component, form) .process(component, source.getProcess()) .update(component, source.getUpdate()) .async(source.isAsync()) .global(source.isGlobal()) .delay(source.getDelay()) .timeout(source.getTimeout()) .partialSubmit(source.isPartialSubmit(), source.isPartialSubmitSet(), source.getPartialSubmitFilter()) .resetValues(source.isResetValues(), source.isResetValuesSet()) .ignoreAutoUpdate(source.isIgnoreAutoUpdate()) .onstart(source.getOnstart()) .onerror(source.getOnerror()) .onsuccess(source.getOnsuccess()) .oncomplete(source.getOncomplete()) .params(component); builder.preventDefault(); return builder.build(); }
String styleClass = link.getStyleClass(); styleClass = styleClass == null ? CommandLink.STYLE_CLASS : CommandLink.STYLE_CLASS + " " + styleClass; PrimeRequestContext requestContext = PrimeRequestContext.getCurrentInstance(context); boolean csvEnabled = requestContext.getApplicationContext().getConfig().isClientSideValidationEnabled() && link.isValidateClient(); CSVBuilder csvb = requestContext.getCSVBuilder(); request = csvb.init().source("this").ajax(ajax).process(link, link.getProcess()).update(link, link.getUpdate()).command(request).build();
protected void encodeScripts(PrimeRequestContext requestContext) throws IOException { List<String> scripts = requestContext.getScriptsToExecute(); if (!scripts.isEmpty()) { startEval(); for (int i = 0; i < scripts.size(); i++) { getWrapped().write(scripts.get(i)); getWrapped().write(';'); } endEval(); } }
public static PrimeRequestContext getCurrentInstance() { return getCurrentInstance(FacesContext.getCurrentInstance()); }
protected String buildAjaxRequest(FacesContext context, UIComponent component, AjaxSource source, UIForm form, Map<String, List<String>> params) { String clientId = component.getClientId(context); AjaxRequestBuilder builder = PrimeRequestContext.getCurrentInstance(context).getAjaxRequestBuilder(); builder.init() .source(clientId) .form(source, component, form) .process(component, source.getProcess()) .update(component, source.getUpdate()) .async(source.isAsync()) .global(source.isGlobal()) .delay(source.getDelay()) .timeout(source.getTimeout()) .partialSubmit(source.isPartialSubmit(), source.isPartialSubmitSet(), source.getPartialSubmitFilter()) .resetValues(source.isResetValues(), source.isResetValuesSet()) .ignoreAutoUpdate(source.isIgnoreAutoUpdate()) .onstart(source.getOnstart()) .onerror(source.getOnerror()) .onsuccess(source.getOnsuccess()) .oncomplete(source.getOncomplete()) .params(params); builder.preventDefault(); return builder.build(); }