blob: 2737d822722072378e6d66e707741702c6c20d71 [file] [log] [blame]
package org.apache.struts2.gxp.template;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.components.template.BaseTemplateEngine;
import org.apache.struts2.components.template.Template;
import org.apache.struts2.components.template.TemplateRenderingContext;
import com.google.gxp.base.GxpContext;
public class GxpTemplateEngine extends BaseTemplateEngine {
@Override
protected String getSuffix() {
return "gxp";
}
public void renderTemplate(TemplateRenderingContext templateContext) throws Exception {
List<Template> templates = templateContext.getTemplate().getPossibleTemplates(this);
Map actionContext = templateContext.getStack().getContext();
HttpServletRequest req = (HttpServletRequest) actionContext.get(ServletActionContext.HTTP_REQUEST);
for (Template template : templates) {
GxpcUtil.buildAndExec(template.getDir(), getFinalTemplateName(template), true, templateContext
.getWriter(), new GxpContext(req.getLocale()));
}
}
protected String getFinalTemplateName(Template template) {
StringBuilder sb = new StringBuilder();
sb.append(template.getTheme()).append("/").append(template.getName().replaceAll("-", ""));
if (template.getName().indexOf(".") <= 0) {
sb.append(".").append(getSuffix());
}
return sb.toString();
}
}