View Javadoc

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;
13  
14  import java.beans.IntrospectionException;
15  import java.beans.PropertyDescriptor;
16  import java.beans.SimpleBeanInfo;
17  import java.util.ArrayList;
18  import java.util.List;
19  
20  
21  /***
22   * Needed to make the "class" tag attribute working.
23   * @author Fabrizio Giustina
24   * @version $Revision: 1.6 $ ($Author: fgiust $)
25   */
26  public class CaptionTagBeanInfo extends SimpleBeanInfo
27  {
28  
29      /***
30       * @see java.beans.BeanInfo#getPropertyDescriptors()
31       */
32      public PropertyDescriptor[] getPropertyDescriptors()
33      {
34          List proplist = new ArrayList();
35  
36          try
37          {
38              proplist.add(new PropertyDescriptor("class", //$NON-NLS-1$
39                  CaptionTag.class, null, "setClass")); //$NON-NLS-1$ 
40              proplist.add(new PropertyDescriptor("dir", //$NON-NLS-1$
41                  CaptionTag.class, null, "setDir")); //$NON-NLS-1$ 
42              proplist.add(new PropertyDescriptor("id", //$NON-NLS-1$
43                  CaptionTag.class, null, "setId")); //$NON-NLS-1$ 
44              proplist.add(new PropertyDescriptor("lang", //$NON-NLS-1$
45                  CaptionTag.class, null, "setLang")); //$NON-NLS-1$ 
46              proplist.add(new PropertyDescriptor("style", //$NON-NLS-1$
47                  CaptionTag.class, null, "setStyle")); //$NON-NLS-1$ 
48              proplist.add(new PropertyDescriptor("title", //$NON-NLS-1$
49                  CaptionTag.class, null, "setTitle")); //$NON-NLS-1$ 
50  
51              // make ATG Dynamo happy:
52              // Attribute "className" of tag "caption" in taglib descriptor file displaytag-11.tld" must have a
53              // corresponding property in class "org.displaytag.tags.CaptionTag" with a public setter method
54              proplist.add(new PropertyDescriptor("className", //$NON-NLS-1$
55                  CaptionTag.class, null, "setClass")); //$NON-NLS-1$ 
56          }
57          catch (IntrospectionException ex)
58          {
59              // ignore, this should never happen
60          }
61  
62          PropertyDescriptor[] result = new PropertyDescriptor[proplist.size()];
63          return ((PropertyDescriptor[]) proplist.toArray(result));
64      }
65  
66  }