01: package org.contineo.web;
02:
03: import net.sf.opentranquera.xkins.core.Skin;
04: import net.sf.opentranquera.xkins.core.loaders.XkinsLoaderServletContextListener;
05: import net.sf.opentranquera.xkins.core.loaders.XkinsXMLLoader;
06:
07: import org.apache.commons.lang.StringUtils;
08: import org.apache.commons.logging.Log;
09: import org.apache.commons.logging.LogFactory;
10:
11: import org.contineo.web.util.Constants;
12:
13: import javax.servlet.ServletContextEvent;
14:
15: public class SkinLoader extends XkinsLoaderServletContextListener {
16: protected static Log log = LogFactory.getLog(SkinLoader.class);
17:
18: @Override
19: public void contextInitialized(ServletContextEvent context) {
20: try {
21: // Normal XKINS stuffs
22: super .contextInitialized(context);
23:
24: // Specify webapp's root for correct templates retrieval
25: String realPath = context.getServletContext().getRealPath(
26: "/");
27:
28: if (!realPath.startsWith("/")) {
29: realPath = "/" + realPath;
30: }
31:
32: XkinsXMLLoader.setRealWebPath(realPath.substring(0,
33: realPath.length() - 1));
34:
35: // Set the default skin name
36: String defaultSkin = context.getServletContext()
37: .getInitParameter(Constants.SKIN);
38:
39: if (StringUtils.isEmpty(defaultSkin)) {
40: defaultSkin = "default";
41: }
42:
43: context.getServletContext().setAttribute(
44: Skin.ATTR_DEFAULT_SKIN_NAME, defaultSkin);
45: } catch (Throwable t) {
46: log.error(t);
47: }
48: }
49: }
|