KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > displaytag > tags > el > ELTableTag


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.tags.el;
13
14 import javax.servlet.jsp.JspException JavaDoc;
15
16
17 /**
18  * Adds EL support to displaytag's TableTag.
19  * @author Tim McCune
20  * @author Fabrizio Giustina
21  * @version $Revision: 1007 $ ($Author: fgiust $)
22  */

23 public class ELTableTag extends org.displaytag.tags.TableTag
24 {
25
26     /**
27      * D1597A17A6.
28      */

29     private static final long serialVersionUID = 899149338534L;
30
31     /**
32      * Expression for the "class" tag attribute.
33      */

34     private String JavaDoc classExpr;
35
36     /**
37      * Expression for the "cellpadding" tag attribute.
38      */

39     private String JavaDoc cellpaddingExpr;
40
41     /**
42      * Expression for the "cellspacing" tag attribute.
43      */

44     private String JavaDoc cellspacingExpr;
45
46     /**
47      * Expression for the "decorator" tag attribute.
48      */

49     private String JavaDoc decoratorExpr;
50
51     /**
52      * Expression for the "defaultsort" tag attribute.
53      */

54     private String JavaDoc defaultsortExpr;
55
56     /**
57      * Expression for the "defaultorder" tag attribute.
58      */

59     private String JavaDoc defaultorderExpr;
60
61     /**
62      * Expression for the "export" tag attribute.
63      */

64     private String JavaDoc exportExpr;
65
66     /**
67      * Expression for the "frame" tag attribute.
68      */

69     private String JavaDoc frameExpr;
70
71     /**
72      * Expression for the "length" tag attribute.
73      */

74     private String JavaDoc lengthExpr;
75
76     /**
77      * Expression for the "name" tag attribute.
78      */

79     private String JavaDoc nameExpr;
80
81     /**
82      * Expression for the "offset" tag attribute.
83      */

84     private String JavaDoc offsetExpr;
85
86     /**
87      * Expression for the "pagesize" tag attribute.
88      */

89     private String JavaDoc pagesizeExpr;
90
91     /**
92      * Expression for the "partialList" tag attribute.
93      */

94     private String JavaDoc partialListExpr;
95
96     /**
97      * Expression for the "requestURI" tag attribute.
98      */

99     private String JavaDoc requestURIExpr;
100
101     /**
102      * Expression for the "requestURIcontext" tag attribute.
103      */

104     private String JavaDoc requestURIcontextExpr;
105
106     /**
107      * Expression for the "rules" tag attribute.
108      */

109     private String JavaDoc rulesExpr;
110
111     /**
112      * Expression for the "size" tag attribute
113      */

114     private String JavaDoc sizeExpr;
115
116     /**
117      * Expression for the "sort" tag attribute.
118      */

119     private String JavaDoc sortExpr;
120
121     /**
122      * Expression for the "style" tag attribute.
123      */

124     private String JavaDoc styleExpr;
125
126     /**
127      * Expression for the "summary" tag attribute.
128      */

129     private String JavaDoc summaryExpr;
130
131     /**
132      * Expression for the "excludedParams" tag attribute.
133      */

134     private String JavaDoc excludedParamsExpr;
135
136     /**
137      * Expression for the "id" tag attribute.
138      */

139     private String JavaDoc idExpr;
140
141     /**
142      * Expression for the "htmlId" tag attribute.
143      */

144     private String JavaDoc htmlIdExpr;
145
146     /**
147      * @see org.displaytag.tags.TableTag#setUid(java.lang.String)
148      */

149     public void setUid(String JavaDoc value)
150     {
151         idExpr = value;
152     }
153
154     /**
155      * @see org.displaytag.tags.TableTag#setCellpadding(java.lang.String)
156      * @param value EL expression for attribute value
157      */

158     public void setCellpadding(String JavaDoc value)
159     {
160         cellpaddingExpr = value;
161     }
162
163     /**
164      * @see org.displaytag.tags.TableTag#setStyle(java.lang.String)
165      * @param value EL expression for attribute value
166      */

167     public void setStyle(String JavaDoc value)
168     {
169         styleExpr = value;
170     }
171
172     /**
173      * @see org.displaytag.tags.TableTag#setSummary(java.lang.String)
174      * @param value EL expression for attribute value
175      */

176     public void setSummary(String JavaDoc value)
177     {
178         summaryExpr = value;
179     }
180
181     /**
182      * @see org.displaytag.tags.TableTag#setCellspacing(java.lang.String)
183      * @param value EL expression for attribute value
184      */

185     public void setCellspacing(String JavaDoc value)
186     {
187         cellspacingExpr = value;
188     }
189
190     /**
191      * @see org.displaytag.tags.TableTag#setClass(java.lang.String)
192      * @param value EL expression for attribute value
193      */

194     public void setClass(String JavaDoc value)
195     {
196         classExpr = value;
197     }
198
199     /**
200      * @see org.displaytag.tags.TableTag#setDecorator(java.lang.String)
201      * @param value EL expression for attribute value
202      */

203     public void setDecorator(String JavaDoc value)
204     {
205         decoratorExpr = value;
206     }
207
208     /**
209      * @see org.displaytag.tags.TableTag#setDefaultsort(int)
210      * @param value EL expression for attribute value
211      */

212     public void setDefaultsort(String JavaDoc value)
213     {
214         defaultsortExpr = value;
215     }
216
217     /**
218      * @see org.displaytag.tags.TableTag#setDefaultorder(java.lang.String)
219      * @param value EL expression for attribute value
220      */

221     public void setDefaultorder(String JavaDoc value)
222     {
223         defaultorderExpr = value;
224     }
225
226     /**
227      * @see org.displaytag.tags.TableTag#setExport(boolean)
228      * @param value EL expression for attribute value
229      */

230     public void setExport(String JavaDoc value)
231     {
232         exportExpr = value;
233     }
234
235     /**
236      * @see org.displaytag.tags.TableTag#setFrame(java.lang.String)
237      * @param value EL expression for attribute value
238      */

239     public void setFrame(String JavaDoc value)
240     {
241         frameExpr = value;
242     }
243
244     /**
245      * @see org.displaytag.tags.TableTag#setLength(int)
246      * @param value EL expression for attribute value
247      */

248     public void setLength(String JavaDoc value)
249     {
250         lengthExpr = value;
251     }
252
253     /**
254      * @see org.displaytag.tags.TableTag#setName(java.lang.Object)
255      * @param value EL expression for attribute value
256      */

257     public void setName(String JavaDoc value)
258     {
259         nameExpr = value;
260     }
261
262     /**
263      * @see org.displaytag.tags.TableTag#setOffset(int)
264      * @param value EL expression for attribute value
265      */

266     public void setOffset(String JavaDoc value)
267     {
268         offsetExpr = value;
269     }
270
271     /**
272      * @see org.displaytag.tags.TableTag#setPagesize(int)
273      * @param value EL expression for attribute value
274      */

275     public void setPagesize(String JavaDoc value)
276     {
277         pagesizeExpr = value;
278     }
279
280     /**
281      * @see org.displaytag.tags.TableTag#setRequestURI(java.lang.String)
282      * @param value EL expression for attribute value
283      */

284     public void setRequestURI(String JavaDoc value)
285     {
286         requestURIExpr = value;
287     }
288
289     /**
290      * @see org.displaytag.tags.TableTag#setRequestURIcontext(boolean)
291      * @param value EL expression for attribute value
292      */

293     public void setRequestURIcontext(String JavaDoc value)
294     {
295         requestURIcontextExpr = value;
296     }
297
298     /**
299      * @see org.displaytag.tags.TableTag#setRules(java.lang.String)
300      * @param value EL expression for attribute value
301      */

302     public void setRules(String JavaDoc value)
303     {
304         rulesExpr = value;
305     }
306
307     /**
308      * @param value EL expression for attribute value
309      * @see org.displaytag.tags.TableTag#setSize(java.lang.String)
310      */

311     public void setSize(String JavaDoc value)
312     {
313         sizeExpr = value;
314     }
315
316     /**
317      * @see org.displaytag.tags.TableTag#setSort(java.lang.String)
318      * @param value EL expression for attribute value
319      */

320     public void setSort(String JavaDoc value)
321     {
322         sortExpr = value;
323     }
324
325     /**
326      * @see org.displaytag.tags.TableTag#setExcludedParams(java.lang.String)
327      * @param value EL expression for attribute value
328      */

329     public void setExcludedParams(String JavaDoc value)
330     {
331         excludedParamsExpr = value;
332     }
333
334     /**
335      * @see org.displaytag.tags.TableTag#setHtmlId(java.lang.String)
336      * @param value EL expression for attribute value
337      */

338     public void setHtmlId(String JavaDoc value)
339     {
340         htmlIdExpr = value;
341     }
342
343     /**
344      * @see javax.servlet.jsp.tagext.Tag#doStartTag()
345      */

346     public int doStartTag() throws JspException JavaDoc
347     {
348         evaluateExpressions();
349         return super.doStartTag();
350     }
351
352     /**
353      * Evaluates EL expressions and sets values in the parent Table Tag.
354      * @throws JspException for errors during evaluation
355      */

356     private void evaluateExpressions() throws JspException JavaDoc
357     {
358         ExpressionEvaluator eval = new ExpressionEvaluator(this, pageContext);
359
360         if (idExpr != null)
361         {
362             super.setUid(eval.evalString("uid", idExpr)); //$NON-NLS-1$
363
}
364         if (htmlIdExpr != null)
365         {
366             super.setHtmlId(eval.evalString("htmlId", htmlIdExpr)); //$NON-NLS-1$
367
}
368         if (cellpaddingExpr != null)
369         {
370             super.setCellpadding(eval.evalString("cellpadding", cellpaddingExpr)); //$NON-NLS-1$
371
}
372         if (cellspacingExpr != null)
373         {
374             super.setCellspacing(eval.evalString("cellspacing", cellspacingExpr)); //$NON-NLS-1$
375
}
376         if (classExpr != null)
377         {
378             super.setClass(eval.evalString("class", classExpr)); //$NON-NLS-1$
379
}
380         if (decoratorExpr != null)
381         {
382             super.setDecorator(eval.evalString("decorator", decoratorExpr)); //$NON-NLS-1$
383
}
384         if (defaultorderExpr != null)
385         {
386             super.setDefaultorder(eval.evalString("defaultorder", defaultorderExpr)); //$NON-NLS-1$
387
}
388         if (excludedParamsExpr != null)
389         {
390             super.setExcludedParams(eval.evalString("excludedParams", excludedParamsExpr)); //$NON-NLS-1$
391
}
392         if (defaultsortExpr != null)
393         {
394             super.setDefaultsort(eval.evalInt("defaultsort", defaultsortExpr)); //$NON-NLS-1$
395
}
396         if (exportExpr != null)
397         {
398             super.setExport(eval.evalBoolean("export", exportExpr)); //$NON-NLS-1$
399
}
400         if (frameExpr != null)
401         {
402             super.setFrame(eval.evalString("frame", frameExpr)); //$NON-NLS-1$
403
}
404         if (lengthExpr != null)
405         {
406             super.setLength(eval.evalInt("length", lengthExpr)); //$NON-NLS-1$
407
}
408         if (nameExpr != null)
409         {
410             Object JavaDoc source = eval.eval("name", nameExpr, Object JavaDoc.class); //$NON-NLS-1$
411

412             // be more user-friendly: accept both EL and legacy expressions
413
if (source instanceof String JavaDoc)
414             {
415                 super.setNameString((String JavaDoc) source);
416             }
417             else
418             {
419                 // evaluate name only once, so assign it to "list"
420
super.list = source;
421             }
422         }
423         if (offsetExpr != null)
424         {
425             super.setOffset(eval.evalInt("offset", offsetExpr)); //$NON-NLS-1$
426
}
427         if (pagesizeExpr != null)
428         {
429             super.setPagesize(eval.evalInt("pagesize", pagesizeExpr)); //$NON-NLS-1$
430
}
431         if (partialListExpr != null)
432         {
433             super.setPartialList(eval.evalBoolean("partialList", partialListExpr)); //$NON-NLS-1$
434
}
435         if (requestURIExpr != null)
436         {
437             super.setRequestURI(eval.evalString("requestURI", requestURIExpr)); //$NON-NLS-1$
438
}
439         if (requestURIcontextExpr != null)
440         {
441             super.setRequestURIcontext(eval.evalBoolean("requestURIcontext", requestURIcontextExpr)); //$NON-NLS-1$
442
}
443         if (rulesExpr != null)
444         {
445             super.setRules(eval.evalString("rules", rulesExpr)); //$NON-NLS-1$
446
}
447         if (sizeExpr != null)
448         {
449             Object JavaDoc source = eval.eval("size", sizeExpr, Object JavaDoc.class); //$NON-NLS-1$
450

451             // be more user-friendly: accept both EL and legacy expressions
452
if (source instanceof String JavaDoc)
453             {
454                 super.setSizeObjectName((String JavaDoc) source);
455             }
456             else
457             {
458                 // evaluate size only once, so assign it to the "size" object
459
super.setSize(source);
460             }
461         }
462         if (sortExpr != null)
463         {
464             super.setSort(eval.evalString("sort", sortExpr)); //$NON-NLS-1$
465
}
466         if (styleExpr != null)
467         {
468             super.setStyle(eval.evalString("style", styleExpr)); //$NON-NLS-1$
469
}
470         if (summaryExpr != null)
471         {
472             super.setSummary(eval.evalString("summary", summaryExpr)); //$NON-NLS-1$
473
}
474     }
475
476     /**
477      * @see javax.servlet.jsp.tagext.Tag#release()
478      */

479     public void release()
480     {
481         super.release();
482         this.cellpaddingExpr = null;
483         this.cellspacingExpr = null;
484         this.classExpr = null;
485         this.decoratorExpr = null;
486         this.defaultorderExpr = null;
487         this.defaultsortExpr = null;
488         this.exportExpr = null;
489         this.frameExpr = null;
490         this.lengthExpr = null;
491         this.nameExpr = null;
492         this.offsetExpr = null;
493         this.pagesizeExpr = null;
494         this.partialListExpr = null;
495         this.requestURIExpr = null;
496         this.requestURIcontextExpr = null;
497         this.rulesExpr = null;
498         this.sizeExpr = null;
499         this.sortExpr = null;
500         this.styleExpr = null;
501         this.summaryExpr = null;
502         this.excludedParamsExpr = null;
503         this.idExpr = null;
504         this.htmlIdExpr = null;
505     }
506
507 }
Popular Tags