1 9 10 package org.jboss.portal.core.theme.tag; 11 12 import org.apache.log4j.Logger; 13 import org.jboss.portal.server.ThemeServer; 14 import org.jboss.portal.server.theme.PortalTheme; 15 import org.jboss.portal.server.theme.ThemeConstants; 16 import org.jboss.portal.server.theme.ThemeLink; 17 import org.jboss.portal.server.theme.ThemeScript; 18 19 import javax.servlet.http.HttpServletRequest ; 20 import javax.servlet.jsp.JspException ; 21 import javax.servlet.jsp.JspWriter ; 22 import javax.servlet.jsp.PageContext ; 23 import javax.servlet.jsp.tagext.SimpleTagSupport ; 24 import java.io.IOException ; 25 import java.util.Iterator ; 26 import java.util.List ; 27 28 41 public class ThemeTagHandler 42 extends SimpleTagSupport 43 { 44 private static Logger log = Logger.getLogger(ThemeTagHandler.class); 45 private String themeName; 46 47 60 public void doTag() throws JspException , IOException 61 { 62 log.debug("rendering theme ..."); 63 64 PageContext app = (PageContext )getJspContext(); 66 HttpServletRequest request = (HttpServletRequest )app.getRequest(); 67 68 JspWriter out = this.getJspContext().getOut(); 69 70 ThemeServer themeServer = (ThemeServer)request.getAttribute(ThemeConstants.ATTR_THEMESERVER); 71 if (themeServer == null) 73 { 74 log.warn("No theme server available; themes are disabled"); 75 return; 76 } 77 78 String themeName = (String )request.getAttribute(ThemeConstants.ATTR_THEME); 79 80 log.debug("got theme to render: " + themeName); 81 82 PortalTheme requestedTheme = null; 83 if (themeName != null && !"".equals(themeName)) 84 { 85 requestedTheme = themeServer.getTheme(themeName, false); 86 } 87 if (requestedTheme == null) 88 { 89 log.debug("requested theme not found. Is there a theme attribute in the tag ? " + getThemeName()); 92 requestedTheme = themeServer.getTheme(getThemeName(), false); 93 } 94 95 if (requestedTheme == null) 96 { 97 log.debug("No valid theme to render: " + themeName); 98 return; 99 } 100 101 log.debug("Found valid theme to render: " + themeName); 102 103 List links = requestedTheme.getLinks(); 104 for (Iterator i = links.iterator(); i.hasNext();) 105 { 106 ThemeLink link = (ThemeLink)i.next(); 107 log.debug("writing theme link: " + link.getLink()); 108 out.println(link.getLink().toString()); 109 } 110 111 List scripts = requestedTheme.getScripts(); 112 for (Iterator s = scripts.iterator(); s.hasNext();) 113 { 114 ThemeScript script = (ThemeScript)s.next(); 115 log.debug("writing theme script: " + script.getScript()); 116 out.println(script.getScript().toString()); 117 } 118 log.debug("done rendering theme"); 119 } 120 121 123 public String getThemeName() 124 { 125 return themeName; 126 } 127 128 public void setThemeName(String name) 129 { 130 themeName = name; 131 } 132 } 133 | Popular Tags |