1 package org.jahia.deprecated.taglibs.button; 2 3 import java.io.IOException ; 4 import java.util.Vector ; 5 6 import javax.servlet.ServletRequest ; 7 import javax.servlet.http.HttpServletRequest ; 8 import javax.servlet.jsp.JspTagException ; 9 import javax.servlet.jsp.JspWriter ; 10 import javax.servlet.jsp.tagext.TagSupport ; 11 12 import org.jahia.data.JahiaData; 13 import org.jahia.deprecated.taglibs.resourcebundle.EngineResourceBundleTag; 14 import org.jahia.resourcebundle.JahiaResourceBundle; 15 16 17 22 public class DrawTabButtonsTag extends TagSupport { 23 24 private static org.apache.log4j.Logger logger = 25 org.apache.log4j.Logger.getLogger(DrawTabButtonsTag.class); 26 27 public int doStartTag() throws JspTagException { 28 29 logger.debug("Processing doStartTag..."); 30 31 ServletRequest request = pageContext.getRequest(); 32 33 JahiaData jData = (JahiaData) request.getAttribute("org.jahia.data.JahiaData"); 34 35 TabButtonsListTag parent = (TabButtonsListTag) findAncestorWithClass(this, TabButtonsListTag.class); 37 if (parent != null) { 38 JspWriter out = pageContext.getOut(); 39 try { 40 out.print(drawTabButtons(parent.getTabButtons())); 41 } catch (IOException ioe) { 42 logger.debug("Exception : " + ioe.toString()); 43 } 44 } 45 return SKIP_BODY; 46 } 47 48 private String drawTabButtons(Vector tabButtons) 49 { 50 51 HttpServletRequest request = (HttpServletRequest )pageContext.getRequest(); 52 JahiaData jData = (JahiaData)request.getAttribute("org.jahia.data.JahiaData"); 53 54 StringBuffer buff = new StringBuffer ("\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" height=\"16\">\n"); 55 buff.append("<tr>"); 56 57 int size = tabButtons.size(); 58 String style = ""; 59 60 for ( int i=0; i<size ; i++ ){ 61 boolean isNextSelected = false; 62 TabButton tabButton = (TabButton)tabButtons.get(i); 63 if ( i< size-1 ){ 64 TabButton nextTabButton = (TabButton)tabButtons.get(i+1); 65 isNextSelected = nextTabButton.isSelected(); 66 } 67 68 boolean isActive = tabButton.isSelected(); 69 if (isActive){ 70 style = "tab_on"; 71 } else { 72 style = "tab_off"; 73 } 74 75 String label = tabButton.getLabel(); 76 if (tabButton.getLabelKey() != null) { 78 label = JahiaResourceBundle.getResource(tabButton.getLabelBundle(), tabButton.getLabelKey(), jData.params().getLocale(), jData.params()); 79 } 80 81 if (i == 0) { 82 buff.append("<td valign=\"top\"><img SRC=\""); 83 buff.append(getResource(jData,isActive?"tabFirstOn":"tabFirstOff")); 84 buff.append("\" alt=\"\" border=\"0\"></td>"); 85 } 86 buff.append("<td valign=\"center\" align=\"center\" background=\""); 87 buff.append(getResource(jData,isActive?"tabBgOn":"tabBgOff")); 88 buff.append("\" class=\""); 89 buff.append(style); 90 buff.append("\"> "); 91 if ( isActive ) { 92 buff.append(label); 93 } else { 94 buff.append("<a HREF=\""); 95 buff.append(tabButton.getUrl()); 96 buff.append("\" class=\""); 97 buff.append(style); 98 buff.append("\">"); 99 buff.append(label); 100 buff.append("</a>"); 101 } 102 buff.append(" </td>"); 103 if (i < size-1){ 104 buff.append("<td valign=\"top\"><img SRC=\""); 105 if ( isActive ){ 106 buff.append(getResource(jData,"tabMiddleOnRight")); 107 } else { 108 buff.append(getResource(jData,isNextSelected?"tabMiddleOn":"tabMiddleOff")); 109 } 110 buff.append("\" alt=\"\" border=\"0\"></td>"); 111 } 112 if (i == size-1){ 113 buff.append("<td valign=\"top\"><img SRC=\""); 114 buff.append(getResource(jData,isActive?"tabLastOn":"tabLastOff")); 115 buff.append("\" alt=\"\" border=\"0\"></td>"); 116 } 117 } 118 buff.append("\t</tr>\n</table>\n"); 119 buff.append("<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">\n\t<tr>\n"); 120 buff.append("\t\t<td height=\"2\" valign=\"top\" background=\""); 121 buff.append(getResource(jData,"org.jahia.hr.image")); 122 buff.append("\" alt=\"\"></td>\n\t</tr>\n</table>\n"); 123 124 return buff.toString(); 125 } 126 127 private String getResource(JahiaData jData,String resourceName) 128 { 129 String resource = (String )jData.params().getRequest() 130 .getAttribute("org.jahia.deprecated.taglibs.DrawTabButtonsTag." + resourceName); 131 if ( resource != null ){ 132 return resource; 133 } 134 resource = EngineResourceBundleTag.parseResourceValue( 135 JahiaResourceBundle.getEngineResource(resourceName, 136 jData.params(), 137 jData.params().getLocale()), 138 jData.params()); 139 if ( resource == null ){ 140 resource = ""; 141 } else { 142 resource = jData.params().getRequest().getContextPath() + resource; 143 } 144 jData.params().getRequest() 145 .setAttribute( "org.jahia.deprecated.taglibs.DrawTabButtonsTag." 146 + resourceName, resource); 147 return resource; 148 } 149 } 150 | Popular Tags |