if (Boolean.valueOf(getInitParameterValue(context, "org.richfaces.queue.global.enabled"))) {
queueRegistry.setShouldCreateDefaultGlobalQueue();
}
if (queueRegistry.hasQueuesToEncode()) {
InternetResource queueScriptResource = resourceBuilder.getResource(QUEUE_SCRIPT_RESOURCE);
queueScriptResource.encode(context, null);
}
// Append Skin StyleSheet after a
if (null != skinStyleSheetUri) {
String resourceURL = context.getApplication()
.getViewHandler().getResourceURL(context,
skinStyleSheetUri);
URIInternetResource resourceImpl = new URIInternetResource();
resourceImpl.setUri(resourceURL);
resourceImpl.setRenderer(resourceBuilder.getStyleRenderer());
resourceImpl.encode(context, null);
useSkinning = true;
}
if (null != skinExtendedStyleSheetUri && extendedSkinningAllowed) {
String resourceURL = context.getApplication().getViewHandler().getResourceURL(context,
skinExtendedStyleSheetUri);
URIInternetResource resourceImpl = new URIInternetResource();
resourceImpl.setUri(resourceURL);
resourceImpl.setRenderer(resourceBuilder.getStyleRenderer());
resourceImpl.encode(context, null, EXTENDED_SKINNING);
useSkinning = true;
}
if (useSkinning && extendedSkinningAllowed) {
if (!ajaxRequest) {
if (!scriptsOff) {
//skinning levels aren't dynamic, page-level setting cannot be changed
//by AJAX request
EXTENDED_SKINNING_ON_RESOURCE.encode(context, null);
} else {
Map<String, Object> applicationMap = context.getExternalContext().getApplicationMap();
if (applicationMap.get(EXTENDED_SKINNING_ON_NO_SCRIPTS_INFO_KEY) == null) {
//do it once per application life - strategies can be changed dynamically
ResponseWriter writer = context.getResponseWriter();
try {
StringWriter stringWriter = new StringWriter();
if (oldResponseWriter != null) {
context.setResponseWriter(oldResponseWriter.cloneWithWriter(stringWriter));
} else {
context.setResponseWriter(this.renderKit.createResponseWriter(
stringWriter, "text/html",
"US-ASCII"));
}
EXTENDED_SKINNING_ON_RESOURCE.encode(context, null);
stringWriter.flush();
if (log.isInfoEnabled()) {
log.info("Extended skinning is on and NONE scripts loading strategy was detected. " +
"Do not forget that one of " + InternetResourceBuilder.SKINNING_SCRIPT + " or " +
InternetResourceBuilder.COMMON_FRAMEWORK_SCRIPT + " resources should be presented " +
"on the page together with the following code: \n" + stringWriter.getBuffer().toString() +
"\nfor extended level of skinning to work.");
}
} finally {
if (writer != null) {
context.setResponseWriter(writer);
}
}
applicationMap.put(EXTENDED_SKINNING_ON_NO_SCRIPTS_INFO_KEY, Boolean.TRUE);
}
}
}
if (processScripts) {
InternetResource resource = resourceBuilder.createResource(null,
InternetResourceBuilder.SKINNING_SCRIPT);
resource.encode(context, null);
}
}
componentWriter.endDocument();
userWriter.endDocument();