/** * Return <code>true</code> if the current {@link ProjectStage} as returned by the {@link * Application} instance is equal to <code>stage</code>, otherwise return <code>false</code> * * @param stage the {@link ProjectStage} to check * @throws IllegalStateException if this method is called after this instance has been released * @throws NullPointerException if <code>stage</code> is <code>null</code> */ public boolean isProjectStage(ProjectStage stage) { if (stage == null) { throw new NullPointerException(); } return (stage.equals(getApplication().getProjectStage())); }
@Override public void encodeBegin(FacesContext context, UIComponent component) throws IOException { ResponseWriter writer = context.getResponseWriter(); ConfigContainer cc = RequestContext.getCurrentInstance().getApplicationContext().getConfig(); ProjectStage projectStage = context.getApplication().getProjectStage(); writer.startElement("head", component); // First facet UIComponent first = component.getFacet("first"); if (first != null) { first.encodeAll(context); } writer.write("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>"); String theme = resolveTheme(context); if (theme == null) { renderCSS(context, "mobile/jquery-mobile.css", "primefaces"); } else { renderCSS(context, "theme.css", "primefaces-" + theme); renderCSS(context, "mobile/jquery-mobile-icons.css", "primefaces"); renderCSS(context, "mobile/jquery-mobile-structure.css", "primefaces"); } renderCSS(context, "mobile/primefaces-mobile.css", "primefaces"); if (cc.isFontAwesomeEnabled()) { renderCSS(context, "fa/font-awesome.css", "primefaces"); } renderJS(context, "jquery/jquery.js", "primefaces"); writer.startElement("script", null); writer.writeAttribute("type", "text/javascript", null); writer.write("$(document).on('mobileinit', function(){"); writer.write("$.mobile.ajaxEnabled = false;"); writer.write("$.mobile.pushStateEnabled = false;"); writer.write("$.mobile.page.prototype.options.domCache = true;"); UIComponent init = component.getFacet("init"); if (init != null) { init.encodeAll(context); } writer.write("});"); writer.endElement("script"); renderJS(context, "mobile/jquery-mobile.js", "primefaces"); renderJS(context, "primefaces-mobile.js", "primefaces"); // Registered Resources UIViewRoot viewRoot = context.getViewRoot(); for (UIComponent resource : viewRoot.getComponentResources(context, "head")) { boolean shouldRender = true; Map<String, Object> attrs = resource.getAttributes(); String library = (String) attrs.get("library"); if (library != null && library.equals("primefaces")) { String resourceName = (String) attrs.get("name"); if (resourceName.startsWith("jquery") || resourceName.startsWith("primefaces")) { shouldRender = false; } } if (shouldRender) { resource.encodeAll(context); } } if (cc.isLegacyWidgetNamespace()) { writer.startElement("script", null); writer.writeAttribute("type", "text/javascript", null); writer.write("PrimeFaces.settings.legacyWidgetNamespace = true;"); writer.endElement("script"); } if (!projectStage.equals(ProjectStage.Production)) { writer.write("PrimeFaces.settings.projectStage='" + projectStage.toString() + "';"); } }