package com.idega.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.idega.idegaweb.IWMainApplication; import com.idega.idegaweb.IWMainApplicationSettings; import com.idega.presentation.IWContext; import com.idega.presentation.Page; import com.idega.repository.data.RefactorClassRegistry; /** * * @author <a href="mailto:tryggvi@idega.is">Tryggvi Larusson</a> * @deprecated replaced with FacesServlet * @version 1.0 * */ public class DynamicTemplateServlet extends IWJSPPresentationServlet { /** * Comment for <code>serialVersionUID</code> */ private static final long serialVersionUID = 223240213572561359L; private static String DEFAULT = "default"; public void initializePage() { try { // Not a good enough implementation, is dependent upon // where storeObject("idega_iwc",iwc) is called // in IWPresentationServlet IWContext iwc = getIWContext(); String templateClassName = iwc.getParameter(IWMainApplication.templateClassParameter); /* * if(templateClassName!=null){ * * setTemplateClassName(templateClassName); * } */ String templateName = iwc.getParameter(IWMainApplication.templateParameter); if (templateName != null) { // Properties prop = getDefaultProperties(); // setTemplateClassName(prop.getProperty("idegaweb.template."+templateName+".classname")); setTemplateClassName(getApplicationSettings().getDefaultTemplateClass()); } // String servletName = this.getServletConfig().getServletName(); // System.out.println("Inside initializePage for "+servletName); setPage(getThisPage(templateClassName)); } catch (Exception ex) { ex.printStackTrace(System.err); } } /* * public void init()throws ServletException{ * * super.init(); * } */ // TEMPORARY IMPLEMENTATION public void __theService(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { IWContext iwc = getIWContext(); try { main(iwc); } catch (Exception ex) { ex.printStackTrace(iwc.getWriter()); ex.printStackTrace(System.err); ServletException exception = new ServletException(ex.getMessage()); throw (ServletException) exception.fillInStackTrace(); } _jspService(request, response); } // TEMPORARY IMPLEMENTATION public void main(IWContext iwc) throws Exception { } /* * public void setFirstTemplatePage(Page page){ * } */ public String getTemplateName() { return DEFAULT; } public String getFirstTemplatePageClass() throws Exception { // Properties prop = getDefaultProperties(); // String className = // prop.getProperty("idegaweb.template.default.classname"); String className = null; IWMainApplicationSettings settings = getApplicationSettings(); if (settings != null) { className = settings.getDefaultTemplateClass(); } // System.err.println("className="+className); // Page page = (Page)Class.forName(className).newInstance(); // return page; return className; } public void setTemplateClassName(String className) { getServletContext().setAttribute("idegaweb_template_class", className); } public String getTemplateClassName() { return (String) getServletContext().getAttribute("idegaweb_template_class"); } public Page getFirstTemplatePage(IWContext iwc) throws Exception { // Properties prop = getDefaultProperties(iwc); // Properties prop = getDefaultProperties(); // String className = // prop.getProperty("idegaweb.default.templatepage.classname"); String className = getApplicationSettings().getDefaultTemplateClass(); // System.err.println("className="+className); Page page = (Page) RefactorClassRegistry.forName(className).newInstance(); return page; } public Page getThisPage(String className) throws Exception { // String className = getTemplateClassName(); if (className == null) { className = getFirstTemplatePageClass(); if (className == null) { className = "com.idega.presentation.Page"; } setTemplateClassName(className); } Page page = (Page) RefactorClassRegistry.forName(className).newInstance(); if (page == null) { page = new Page(); } return page; } /* * * * * public Page getTemplatePage(IWContext iwc)throws Exception{ * * Page page = * (Page)iwc.getServletContext().getAttribute("idega_template_page"); * * if(page==null){ * * page = getFirstTemplatePage(iwc); * * iwc.getServletContext().setAttribute("idega_template_page",page); * } * * return (Page)page.clone(); * } * * * */ /* * public Page getPage(){ * * try{ * * return getTemplatePage(getIWContext()); * } * * catch(Exception ex){ * * ex.printStackTrace(System.err); * * return null; * } * } * */ /* * * protected Properties getDefaultProperties(IWContext iwc)throws * IOException{ * * IdegawebProperties properties = * (IdegawebProperties)iwc.getServletContext().getAttribute("idegaweb_default_properties"); * * if (properties==null){ * * properties = new IdegawebProperties(getServletContext()); * } * * iwc.getServletContext().setAttribute("idegaweb_default_properties",properties); * * return properties; * } * * * * protected Properties getDefaultProperties()throws IOException{ * * IdegawebProperties properties = * (IdegawebProperties)getServletContext().getAttribute("idegaweb_default_properties"); * * if (properties==null){ * * properties = new IdegawebProperties(); * } * * getServletContext().setAttribute("idegaweb_default_properties",properties); * * return properties; * } * * * * * */ /* * * public TemplatePage getTemplatePage(){ * * return (TemplatePage) getPage(); * } * */ /* methods from com.idega.idegaweb.template.TemplatePage */ /* * * public void add2(PresentationObject obj){ * * getTemplatePage().add2(obj); * } * * * * public void add3(PresentationObject obj){ * * getTemplatePage().add3(obj); * } * * * * public void add4(PresentationObject obj){ * * getTemplatePage().add4(obj); * } * * * * public void add5(PresentationObject obj){ * * getTemplatePage().add5(obj); * } * * * * public void add6(PresentationObject obj){ * * getTemplatePage().add6(obj); * } * * * * public void add7(PresentationObject obj){ * * getTemplatePage().add7(obj); * } * * * * public void add8(PresentationObject obj){ * * getTemplatePage().add8(obj); * } * * * * public void add9(PresentationObject obj){ * * getTemplatePage().add9(obj); * } * * * * public boolean isAdministrator(IWContext iwc)throws Exception{ * * return this.getTemplatePage().isAdministrator(iwc); * } * * * * public boolean isDeveloper(IWContext iwc)throws Exception{ * * return this.getTemplatePage().isDeveloper(iwc); * } * * * * public boolean isUser(IWContext iwc)throws Exception{ * * return this.getTemplatePage().isUser(iwc); * } * * * * public boolean isMemberOf(IWContext iwc,String groupName)throws * Exception{ * * return this.getTemplatePage().isMemberOf(iwc, groupName); * } * * * * public boolean hasPermission(String permissionType,IWContext * iwc,PresentationObject obj)throws Exception{ * * return this.getTemplatePage().hasPermission(permissionType, iwc, obj); * } * * * */ } // Class DynamicTemplateServlet