1 package org.apache.jetspeed.services.jsp.tags; 2 3 18 19 import javax.servlet.jsp.JspException ; 20 import javax.servlet.jsp.PageContext ; 21 import javax.servlet.jsp.tagext.TagSupport ; 22 23 24 import org.apache.jetspeed.services.TemplateLocator; 26 27 import org.apache.turbine.modules.NavigationLoader; 29 import org.apache.turbine.util.RunData; 30 import org.apache.turbine.services.template.TemplateService; 31 import org.apache.turbine.services.jsp.JspService; 32 import org.apache.turbine.services.TurbineServices; 33 34 import org.apache.jetspeed.services.logging.JetspeedLogFactoryService; 36 import org.apache.jetspeed.services.logging.JetspeedLogger; 37 38 46 public class NavigationTag extends TagSupport 47 { 48 51 private static final JetspeedLogger logger = JetspeedLogFactoryService.getLogger(NavigationTag.class.getName()); 52 53 57 private String defaultTemplate; 58 59 62 public void setDefaultTemplate(String defaultTemplate) 63 { 64 this.defaultTemplate = defaultTemplate; 65 } 66 67 71 private String loggedInTemplate; 72 73 76 public void setLoggedInTemplate(String loggedInTemplate) 77 { 78 this.loggedInTemplate = loggedInTemplate; 79 } 80 81 82 88 public int doStartTag() throws JspException 89 { 90 String template = defaultTemplate; 91 String module = null; 92 93 RunData data = (RunData)pageContext.getAttribute(JspService.RUNDATA, PageContext.REQUEST_SCOPE); 94 try 95 { 96 97 if ( (data != null) && (data.getUser() != null) && data.getUser().hasLoggedIn() && (loggedInTemplate != null) ) 98 template = loggedInTemplate; 99 100 data.getTemplateInfo().setNavigationTemplate( 101 TemplateLocator.locateNavigationTemplate(data,template)); 102 103 pageContext.getOut().flush(); 104 module = ((TemplateService)TurbineServices.getInstance().getService( 105 TemplateService.SERVICE_NAME)).getNavigationName(template); 106 NavigationLoader.getInstance().exec(data, module); 107 } 108 catch (Exception e) 109 { 110 String message = "Error processing navigation template:" + template + " using module: " + module; 111 logger.error(message, e); 112 try 113 { 114 data.getOut().print("Error processing navigation template: " + template + " using module: " + module); 115 } 116 catch(java.io.IOException ioe) {} 117 } 118 return SKIP_BODY; 119 } 120 } 121 | Popular Tags |