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