package com.norteksoft.tags.button;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.norteksoft.mms.module.entity.Button;
import com.norteksoft.mms.module.entity.ModulePage;
import com.norteksoft.mms.module.service.ModulePageManager;
import com.norteksoft.product.util.ContextUtils;
import com.norteksoft.product.util.freemarker.TagUtil;
public class ButtonTag extends TagSupport {
private static final long serialVersionUID = 1L;
private String code;
private Log log = LogFactory.getLog(ButtonTag.class);
private ModulePageManager modulePageManager;
@Override
public int doStartTag() throws JspException {
modulePageManager = (ModulePageManager)ContextUtils.getBean("modulePageManager");
ModulePage modulePage = modulePageManager.getModulePage(code);
List<Button> buttons = null;
if(modulePage != null){
buttons = modulePage.getButtons();
}
if(buttons != null && buttons.size()>0){
JspWriter out=pageContext.getOut();
try {
out.print(readScriptTemplate(buttons));
} catch (Exception e) {
log.error(e);
throw new JspException(e);
}
}
return Tag.EVAL_PAGE;
}
private String readScriptTemplate(List<Button> buttons) throws Exception {
Map<String, Object> root=new HashMap<String, Object>();
root.put("buttons", buttons);
String result =TagUtil.getContent(root, "button/ButtonTag.ftl");
return result;
}
@Override
public int doEndTag() throws JspException {
return Tag.EVAL_PAGE;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}