KickJava   Java API By Example, From Geeks To Geeks.

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


1 package org.jahia.deprecated.taglibs.button;
2
3 import java.io.IOException JavaDoc;
4
5 import javax.servlet.http.HttpServletRequest JavaDoc;
6 import javax.servlet.jsp.JspWriter JavaDoc;
7 import javax.servlet.jsp.tagext.TagSupport JavaDoc;
8
9 import org.jahia.data.JahiaData;
10 import org.jahia.deprecated.taglibs.util.Utils;
11 import org.jahia.exceptions.JahiaException;
12 import org.jahia.utils.JahiaConsole;
13
14
15 /**
16  * Class AbstractButtonTag : defines common code for different buttons
17  *
18  * @author Jerome Tamiotti
19  */

20 public abstract class AbstractButtonTag extends TagSupport JavaDoc {
21
22     public int doStartTag() {
23
24         HttpServletRequest JavaDoc request = (HttpServletRequest JavaDoc)pageContext.getRequest();
25         JahiaData jData = (JahiaData) request.getAttribute("org.jahia.data.JahiaData");
26         // only used in rollover tags
27
checkCounter(request);
28
29         // makes a test on rights
30
if (!testRights(jData)) {
31             return SKIP_BODY;
32         }
33         String JavaDoc link = buildButton(jData, request);
34         if (link != null) {
35             try {
36                 JspWriter JavaDoc out = pageContext.getOut();
37                 out.print( link );
38             } catch (IOException JavaDoc ioe) {
39                 JahiaConsole.println("AbstractButtonTag: doStartTag ", ioe.toString());
40             }
41         }
42         return SKIP_BODY;
43     }
44
45
46     public void checkCounter(HttpServletRequest JavaDoc request) {
47         // does not perform anything, defined only for rollover tags
48
return;
49     }
50
51     public String JavaDoc buildButton (JahiaData jData, HttpServletRequest JavaDoc request) {
52
53         String JavaDoc url = null;
54         try {
55             url = getLauncher(jData);
56         } catch (JahiaException jex) {
57             JahiaConsole.println("AbstractButtonTag: buildButton ", "Can not get launcher from subclass !");
58             return null;
59         }
60
61         if ( url == null || url.trim().equals("") )
62             return url;
63
64         StringBuffer JavaDoc text = new StringBuffer JavaDoc( "<a " );
65         String JavaDoc style = getStyle();
66         if ( !style.equals("") ) {
67             text.append( "class=\"" );
68             text.append( style );
69             text.append( "\" " );
70         }
71         text.append( "href=\"" );
72         text.append( url );
73         text.append( "\">" );
74         text.append( Utils.insertContextPath( jData.gui().drawHttpJspContext(request), getTitle() ) );
75         text.append( "</a>" );
76         return text.toString();
77     }
78
79
80     // The following methods will be implemented in the real tags
81
public abstract boolean testRights(JahiaData jData);
82
83     public abstract String JavaDoc getLauncher(JahiaData jData) throws JahiaException;
84
85     public abstract String JavaDoc getTitle();
86
87     public abstract String JavaDoc getStyle();
88
89 }
90
Popular Tags