rendered paste bodypackage com.loomis.jsf.component.utils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import com.loomis.jsf.servlet.ResourceServlet;
public class LSRenderUtil {
public static final String RENDER_UTIL_MAP_KEY = "LSRenderUtil";
private List<String> addedJavascriptIncludes;
private List<String> addedCSSIncludes;
private List<String> addedJavascript;
public static LSRenderUtil getCurrentInstance(FacesContext context) {
Map<String, Object> requestMap = context.getExternalContext().getRequestMap();
Object utilObj = requestMap.get(RENDER_UTIL_MAP_KEY);
LSRenderUtil util = null;
if (!(utilObj instanceof LSRenderUtil)) {
util = new LSRenderUtil();
requestMap.put(RENDER_UTIL_MAP_KEY, util);
} else {
util = (LSRenderUtil)utilObj;
}
return util;
}
public void writeJavascript(ResponseWriter writer, String javascript) throws IOException {
if (!getAddedJavascript().contains(javascript)) {
writer.startElement("script", null);
writer.writeAttribute("type", "text/javascript", null);
writer.writeText(javascript, null);
writer.endElement("script");
}
}
public void writeJavascriptInclude(ResponseWriter writer, String jsLocation) throws IOException {
if (!getAddedJavascriptIncludes().contains(jsLocation)) {
writer.startElement("script", null);
writer.writeAttribute("type", "text/javascript", null);
writer.writeAttribute("src", ResourceServlet.generateResourceURL(jsLocation), null);
writer.endElement("script");
}
}
public void writeJavascriptToLinkCSS(ResponseWriter writer, String cssLocation) throws IOException {
if (!getAddedJavascriptIncludes().contains("/util.js")) {
writeJavascriptInclude(writer, "/util.js");
}
if (!getAddedCSSIncludes().contains(cssLocation)) {
writer.startElement("script", null);
writer.writeAttribute("type", "text/javascript", null);
writer.writeText("addCSSLink('" + ResourceServlet.generateResourceURL(cssLocation) + "');", null);
writer.endElement("script");
}
}
public List<String> getAddedCSSIncludes() {
if (addedCSSIncludes == null) addedCSSIncludes = new ArrayList<String>();
return addedCSSIncludes;
}
public void setAddedCSSIncludes(List<String> addedCSSIncludes) {
this.addedCSSIncludes = addedCSSIncludes;
}
public List<String> getAddedJavascript() {
if (addedJavascript == null) addedJavascript = new ArrayList<String>();
return addedJavascript;
}
public void setAddedJavascript(List<String> addedJavascript) {
this.addedJavascript = addedJavascript;
}
public List<String> getAddedJavascriptIncludes() {
if (addedJavascriptIncludes == null) addedJavascriptIncludes = new ArrayList<String>();
return addedJavascriptIncludes;
}
public void setAddedJavascriptIncludes(List<String> addedJavascriptIncludes) {
this.addedJavascriptIncludes = addedJavascriptIncludes;
}
}