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 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 import org.apache.commons.lang.UnhandledException; 21 import org.displaytag.tags.TableTag; 22 23 24 /** 25 * BeanInfo descriptor for the <code>ELTableTag</code> class. Unevaluated EL expression has to be kept separately from 26 * the evaluated value, since the JSP compiler can choose to reuse different tag instances if they received the same 27 * original attribute values, and the JSP compiler can choose to not re-call the setter methods. 28 * @author Fabrizio Giustina 29 * @version $Revision: 1081 $ ($Author: fgiust $) 30 */ 31 public class ELTableTagBeanInfo extends SimpleBeanInfo 32 { 33 34 /** 35 * @see java.beans.BeanInfo#getPropertyDescriptors() 36 */ 37 public PropertyDescriptor[] getPropertyDescriptors() 38 { 39 List proplist = new ArrayList(); 40 41 try 42 { 43 proplist.add(new PropertyDescriptor("cellpadding", //$NON-NLS-1$ 44 ELTableTag.class, null, "setCellpadding")); //$NON-NLS-1$ 45 proplist.add(new PropertyDescriptor("cellspacing", //$NON-NLS-1$ 46 ELTableTag.class, null, "setCellspacing")); //$NON-NLS-1$ 47 proplist.add(new PropertyDescriptor("class", //$NON-NLS-1$ 48 ELTableTag.class, null, "setClass")); //$NON-NLS-1$ 49 proplist.add(new PropertyDescriptor("decorator", //$NON-NLS-1$ 50 ELTableTag.class, null, "setDecorator")); //$NON-NLS-1$ 51 proplist.add(new PropertyDescriptor("defaultorder", //$NON-NLS-1$ 52 ELTableTag.class, null, "setDefaultorder")); //$NON-NLS-1$ 53 proplist.add(new PropertyDescriptor("defaultsort", //$NON-NLS-1$ 54 ELTableTag.class, null, "setDefaultsort")); //$NON-NLS-1$ 55 proplist.add(new PropertyDescriptor("export", //$NON-NLS-1$ 56 ELTableTag.class, null, "setExport")); //$NON-NLS-1$ 57 proplist.add(new PropertyDescriptor("frame", //$NON-NLS-1$ 58 ELTableTag.class, null, "setFrame")); //$NON-NLS-1$ 59 proplist.add(new PropertyDescriptor("length", //$NON-NLS-1$ 60 ELTableTag.class, null, "setLength")); //$NON-NLS-1$ 61 proplist.add(new PropertyDescriptor("name", //$NON-NLS-1$ 62 ELTableTag.class, null, "setName")); //$NON-NLS-1$ 63 proplist.add(new PropertyDescriptor("offset", //$NON-NLS-1$ 64 ELTableTag.class, null, "setOffset")); //$NON-NLS-1$ 65 proplist.add(new PropertyDescriptor("pagesize", //$NON-NLS-1$ 66 ELTableTag.class, null, "setPagesize")); //$NON-NLS-1$ 67 proplist.add(new PropertyDescriptor("partialList", //$NON-NLS-1$ 68 ELTableTag.class, null, "setPartialList")); //$NON-NLS-1$ 69 proplist.add(new PropertyDescriptor("requestURI", //$NON-NLS-1$ 70 ELTableTag.class, null, "setRequestURI")); //$NON-NLS-1$ 71 proplist.add(new PropertyDescriptor("requestURIcontext", //$NON-NLS-1$ 72 ELTableTag.class, null, "setRequestURIcontext")); //$NON-NLS-1$ 73 proplist.add(new PropertyDescriptor("rules", //$NON-NLS-1$ 74 ELTableTag.class, null, "setRules")); //$NON-NLS-1$ 75 proplist.add(new PropertyDescriptor("size", //$NON-NLS-1$ 76 ELTableTag.class, null, "setSize")); //$NON-NLS-1$ 77 proplist.add(new PropertyDescriptor("sort", //$NON-NLS-1$ 78 ELTableTag.class, null, "setSort")); //$NON-NLS-1$ 79 proplist.add(new PropertyDescriptor("style", //$NON-NLS-1$ 80 ELTableTag.class, null, "setStyle")); //$NON-NLS-1$ 81 proplist.add(new PropertyDescriptor("summary", //$NON-NLS-1$ 82 ELTableTag.class, null, "setSummary")); //$NON-NLS-1$ 83 proplist.add(new PropertyDescriptor("excludedParams", //$NON-NLS-1$ 84 ELTableTag.class, null, "setExcludedParams")); //$NON-NLS-1$ 85 proplist.add(new PropertyDescriptor("id", //$NON-NLS-1$ 86 ELTableTag.class, null, "setUid")); //$NON-NLS-1$ 87 88 proplist.add(new PropertyDescriptor("uid", //$NON-NLS-1$ 89 ELTableTag.class, null, "setUid")); //$NON-NLS-1$ 90 proplist.add(new PropertyDescriptor("htmlId", //$NON-NLS-1$ 91 ELTableTag.class, null, "setHtmlId")); //$NON-NLS-1$ 92 proplist.add(new PropertyDescriptor("varTotals", //$NON-NLS-1$ 93 TableTag.class, null, "setVarTotals")); //$NON-NLS-1$ 94 95 } 96 catch (IntrospectionException ex) 97 { 98 throw new UnhandledException("You got an introspection exception - maybe defining a property that is not" 99 + " defined in the ElTableTag?: " 100 + ex.getMessage(), ex); 101 } 102 103 PropertyDescriptor[] result = new PropertyDescriptor[proplist.size()]; 104 return ((PropertyDescriptor[]) proplist.toArray(result)); 105 } 106 107 }