KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jahia > deprecated > taglibs > button > DrawTabButtonsTag


1 package org.jahia.deprecated.taglibs.button;
2
3 import java.io.IOException JavaDoc;
4 import java.util.Vector JavaDoc;
5
6 import javax.servlet.ServletRequest JavaDoc;
7 import javax.servlet.http.HttpServletRequest JavaDoc;
8 import javax.servlet.jsp.JspTagException JavaDoc;
9 import javax.servlet.jsp.JspWriter JavaDoc;
10 import javax.servlet.jsp.tagext.TagSupport JavaDoc;
11
12 import org.jahia.data.JahiaData;
13 import org.jahia.deprecated.taglibs.resourcebundle.EngineResourceBundleTag;
14 import org.jahia.resourcebundle.JahiaResourceBundle;
15
16
17 /**
18  * Draw tabs declared in the enclosing TabButtonsListTag.
19  *
20  * @author Khue Nguyen
21  */

22 public class DrawTabButtonsTag extends TagSupport JavaDoc {
23
24     private static org.apache.log4j.Logger logger =
25             org.apache.log4j.Logger.getLogger(DrawTabButtonsTag.class);
26
27     public int doStartTag() throws JspTagException JavaDoc {
28
29         logger.debug("Processing doStartTag...");
30
31         ServletRequest JavaDoc request = pageContext.getRequest();
32
33         JahiaData jData = (JahiaData) request.getAttribute("org.jahia.data.JahiaData");
34
35        // checks if we are inside a TabButtonsListTag
36
TabButtonsListTag parent = (TabButtonsListTag) findAncestorWithClass(this, TabButtonsListTag.class);
37         if (parent != null) {
38             JspWriter JavaDoc out = pageContext.getOut();
39             try {
40                 out.print(drawTabButtons(parent.getTabButtons()));
41             } catch (IOException JavaDoc ioe) {
42                 logger.debug("Exception : " + ioe.toString());
43             }
44         }
45         return SKIP_BODY;
46     }
47
48     private String JavaDoc drawTabButtons(Vector JavaDoc tabButtons)
49     {
50
51         HttpServletRequest JavaDoc request = (HttpServletRequest JavaDoc)pageContext.getRequest();
52         JahiaData jData = (JahiaData)request.getAttribute("org.jahia.data.JahiaData");
53
54         StringBuffer JavaDoc buff = new StringBuffer JavaDoc("\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" height=\"16\">\n");
55         buff.append("<tr>");
56
57         int size = tabButtons.size();
58         String JavaDoc 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 JavaDoc label = tabButton.getLabel();
76             // now let's resolve the alt text if resource bundle keys are being used.
77
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("\">&nbsp;");
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("&nbsp;</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 JavaDoc getResource(JahiaData jData,String JavaDoc resourceName)
128     {
129         String JavaDoc resource = (String JavaDoc)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