KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > displaytag > util > Anchor


1 /**
2  * Licensed under the Artistic License; you may not use this file
3  * except in compliance with the License.
4  * You may obtain a copy of the License at
5  *
6  * http://displaytag.sourceforge.net/license.html
7  *
8  * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
9  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
10  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
11  */

12 package org.displaytag.util;
13
14 /**
15  * Anchor object used to output an html link (an <a> tag).
16  * @author Fabrizio Giustina
17  * @version $Revision: 720 $ ($Author: fgiust $)
18  */

19 public class Anchor
20 {
21
22     /**
23      * Href object to be written in the "href" html attribute.
24      */

25     private Href href;
26
27     /**
28      * link body text.
29      */

30     private String JavaDoc linkText;
31
32     /**
33      * HashMap containing all the html attributes.
34      */

35     private HtmlAttributeMap attributeMap = new HtmlAttributeMap();
36
37     /**
38      * Creates a new Anchor whit the supplied Href and body text.
39      * @param linkHref baseHref
40      * @param linkBody String link body
41      */

42     public Anchor(Href linkHref, String JavaDoc linkBody)
43     {
44         this.href = linkHref;
45         this.linkText = linkBody;
46     }
47
48     /**
49      * setter the anchor Href.
50      * @param linkHref Href
51      */

52     public void setHref(Href linkHref)
53     {
54         this.href = linkHref;
55     }
56
57     /**
58      * setter for the link body text.
59      * @param linkBody String
60      */

61     public void setText(String JavaDoc linkBody)
62     {
63         this.linkText = linkBody;
64     }
65
66     /**
67      * add a "class" attribute to the html link.
68      * @param cssClass String
69      */

70     public void setClass(String JavaDoc cssClass)
71     {
72         this.attributeMap.put(TagConstants.ATTRIBUTE_CLASS, cssClass);
73     }
74
75     /**
76      * add a "style" attribute to the html link.
77      * @param style String
78      */

79     public void setStyle(String JavaDoc style)
80     {
81         this.attributeMap.put(TagConstants.ATTRIBUTE_STYLE, style);
82     }
83
84     /**
85      * add a "title" attribute to the html link.
86      * @param title String
87      */

88     public void setTitle(String JavaDoc title)
89     {
90         this.attributeMap.put(TagConstants.ATTRIBUTE_TITLE, title);
91     }
92
93     /**
94      * returns the href attribute, surrounded by quotes and prefixed with " HREF=".
95      * @return String <code> href ="<em>href value</em>"</code> or an emty String if Href is null
96      */

97     private String JavaDoc getHrefString()
98     {
99         if (this.href == null)
100         {
101             return TagConstants.EMPTY_STRING;
102         }
103         return " HREF=\"" + this.href.toString() + "\""; //$NON-NLS-1$ //$NON-NLS-2$
104
}
105
106     /**
107      * Returns the &lt;a> tag, with rendered href and any html attribute.
108      * @return String
109      */

110     public String JavaDoc getOpenTag()
111     {
112
113         // shortcut for links with no attributes
114
if (this.attributeMap.size() == 0)
115         {
116             return TagConstants.TAG_OPEN + TagConstants.TAGNAME_ANCHOR + getHrefString() + TagConstants.TAG_CLOSE;
117         }
118
119         // append all attributes
120
StringBuffer JavaDoc buffer = new StringBuffer JavaDoc();
121
122         buffer.append(TagConstants.TAG_OPEN).append(TagConstants.TAGNAME_ANCHOR).append(getHrefString());
123
124         buffer.append(this.attributeMap);
125
126         buffer.append(TagConstants.TAG_CLOSE);
127
128         return buffer.toString();
129     }
130
131     /**
132      * returns the &lt;/a> tag.
133      * @return String
134      */

135     public String JavaDoc getCloseTag()
136     {
137         return TagConstants.TAG_OPENCLOSING + TagConstants.TAGNAME_ANCHOR + TagConstants.TAG_CLOSE;
138     }
139
140     /**
141      * returns the full &lt;a HREF="">body&lt;/a>.
142      * @return String html link
143      */

144     public String JavaDoc toString()
145     {
146         return getOpenTag() + this.linkText + getCloseTag();
147     }
148
149 }
Popular Tags