1 package org.gnomekr.potron.web.tag;
2
3 import javax.servlet.http.HttpServletRequest;
4 import javax.servlet.jsp.JspException;
5 import javax.servlet.jsp.tagext.TagSupport;
6
7 import org.apache.commons.logging.Log;
8 import org.apache.commons.logging.LogFactory;
9
10 /***
11 * RollOverImageTag.java
12 * @author Xavier Cho
13 * @version $Revision 1.1 $ $Date: 2005/07/07 15:20:14 $
14 * @jsp:tag
15 * name="rollover"
16 * body-content="empty"
17 */
18 public class RollOverImageTag extends TagSupport {
19
20 private static final long serialVersionUID = 3906931157894314038L;
21
22 private String id;
23 private String src;
24 private String srcOver;
25 private String align;
26 private String width;
27 private String height;
28 private String styleClass;
29 private String style;
30 private String alt;
31
32 /***
33 * @return
34 * @jsp.attribute
35 * required = "false"
36 * rtexprvalue = "true"
37 */
38 public String getAlign() {
39 return align;
40 }
41
42 /***
43 * @return
44 * @jsp.attribute
45 * required = "false"
46 * rtexprvalue = "true"
47 */
48 public String getAlt() {
49 return alt;
50 }
51
52 /***
53 * @return
54 * @jsp.attribute
55 * required = "false"
56 * rtexprvalue = "true"
57 */
58 public String getHeight() {
59 return height;
60 }
61
62 /***
63 * @return
64 * @jsp.attribute
65 * required = "true"
66 * rtexprvalue = "true"
67 */
68 public String getId() {
69 return id;
70 }
71
72 /***
73 * @return
74 * @jsp.attribute
75 * required = "true"
76 * rtexprvalue = "true"
77 */
78 public String getSrc() {
79 return src;
80 }
81
82 /***
83 * @return
84 * @jsp.attribute
85 * required = "true"
86 * rtexprvalue = "true"
87 */
88 public String getSrcOver() {
89 return srcOver;
90 }
91
92 /***
93 * @return
94 * @jsp.attribute
95 * required = "false"
96 * rtexprvalue = "true"
97 */
98 public String getStyle() {
99 return style;
100 }
101
102 /***
103 * @return
104 * @jsp.attribute
105 * required = "false"
106 * rtexprvalue = "true"
107 */
108 public String getStyleClass() {
109 return styleClass;
110 }
111
112 /***
113 * @return
114 * @jsp.attribute
115 * required = "false"
116 * rtexprvalue = "true"
117 */
118 public String getWidth() {
119 return width;
120 }
121
122 /***
123 * @param string
124 */
125 public void setAlign(final String string) {
126 align = string;
127 }
128
129 /***
130 * @param string
131 */
132 public void setAlt(final String string) {
133 alt = string;
134 }
135
136 /***
137 * @param string
138 */
139 public void setHeight(final String string) {
140 height = string;
141 }
142
143 /***
144 * @param string
145 */
146 public void setId(final String string) {
147 id = string;
148 }
149
150 /***
151 * @param string
152 */
153 public void setSrc(final String string) {
154 src = string;
155 }
156
157 /***
158 * @param string
159 */
160 public void setSrcOver(final String string) {
161 srcOver = string;
162 }
163
164 /***
165 * @param string
166 */
167 public void setStyle(final String string) {
168 style = string;
169 }
170
171 /***
172 * @param string
173 */
174 public void setStyleClass(final String string) {
175 styleClass = string;
176 }
177
178 /***
179 * @param string
180 */
181 public void setWidth(final String string) {
182 width = string;
183 }
184
185 /***
186 * @see javax.servlet.jsp.tagext.Tag#doStartTag()
187 */
188 public int doStartTag() throws JspException {
189 HttpServletRequest request = (HttpServletRequest) pageContext
190 .getRequest();
191
192 String contextPath = request.getContextPath();
193
194 try {
195 StringBuffer buffer = new StringBuffer();
196 buffer.append("<script language=\"javascript\" ");
197 buffer.append("type=\"text/javascript\">");
198 buffer.append("MM_preloadImages('");
199 buffer.append(contextPath);
200 buffer.append(srcOver);
201 buffer.append("');</script>");
202
203 buffer.append("<img src=\"");
204 buffer.append(contextPath);
205 buffer.append(src);
206 buffer.append("\"");
207
208 buffer.append(" id=\"");
209 buffer.append(id);
210 buffer.append("\"");
211
212 buffer.append(" onmouseover=\"");
213 buffer.append("MM_swapImage('");
214 buffer.append(id);
215 buffer.append("','','");
216 buffer.append(contextPath);
217 buffer.append(srcOver);
218 buffer.append("',1)\"");
219
220 buffer.append(" onmouseout=\"MM_swapImgRestore()\"");
221
222 if (align != null) {
223 buffer.append(" align=\"");
224 buffer.append(align);
225 buffer.append("\"");
226 }
227
228 if (width != null) {
229 buffer.append(" width=\"");
230 buffer.append(width);
231 buffer.append("\"");
232 }
233
234 if (height != null) {
235 buffer.append(" height=\"");
236 buffer.append(height);
237 buffer.append("\"");
238 }
239
240 if (styleClass != null) {
241 buffer.append(" class=\"");
242 buffer.append(styleClass);
243 buffer.append("\"");
244 }
245
246 if (style != null) {
247 buffer.append(" style=\"");
248 buffer.append(style);
249 buffer.append("\"");
250 }
251
252 if (alt != null) {
253 buffer.append(" alt=\"");
254 buffer.append(alt);
255 buffer.append("\"");
256 }
257
258 buffer.append("/>");
259
260 pageContext.getOut().print(buffer.toString());
261 } catch (Exception e) {
262 String msg = "Unable to write tag content : " + e.getMessage();
263
264 Log log = LogFactory.getLog(getClass());
265 if (log.isErrorEnabled()) {
266 log.error(msg, e);
267 }
268
269 throw new JspException(msg);
270 } finally {
271 release();
272 }
273
274 return SKIP_BODY;
275 }
276
277 /***
278 * @see javax.servlet.jsp.tagext.Tag#release()
279 */
280 public void release() {
281 this.id = null;
282 this.src = null;
283 this.srcOver = null;
284 this.align = null;
285 this.width = null;
286 this.height = null;
287 this.style = null;
288 this.styleClass = null;
289 this.alt = null;
290 }
291 }