View Javadoc

    1   /*
    2    * $Id: ELOptionTag.java 479635 2006-11-27 14:27:18Z pbenedict $
    3    *
    4    * Licensed to the Apache Software Foundation (ASF) under one
    5    * or more contributor license agreements.  See the NOTICE file
    6    * distributed with this work for additional information
    7    * regarding copyright ownership.  The ASF licenses this file
    8    * to you under the Apache License, Version 2.0 (the
    9    * "License"); you may not use this file except in compliance
    10   * with the License.  You may obtain a copy of the License at
    11   *
    12   *  http://www.apache.org/licenses/LICENSE-2.0
    13   *
    14   * Unless required by applicable law or agreed to in writing,
    15   * software distributed under the License is distributed on an
    16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    17   * KIND, either express or implied.  See the License for the
    18   * specific language governing permissions and limitations
    19   * under the License.
    20   */
    21  package org.apache.strutsel.taglib.html;
    22
    23  import org.apache.struts.taglib.html.OptionTag;
    24  import org.apache.strutsel.taglib.utils.EvalHelper;
    25
    26  import javax.servlet.jsp.JspException;
    27
    28  /**
    29   * Tag for select options.  The body of this tag is presented to the user in
    30   * the option list, while the value attribute is the value returned to the
    31   * server if this option is selected. <p> This class is a subclass of the
    32   * class <code>org.apache.struts.taglib.html.OptionTag</code> which provides
    33   * most of the described functionality.  This subclass allows all attribute
    34   * values to be specified as expressions utilizing the JavaServer Pages
    35   * Standard Library expression language.
    36   *
    37   * @version $Rev: 479635 $
    38   */
    39  public class ELOptionTag extends OptionTag {
    40      /**
    41       * Instance variable mapped to "bundle" tag attribute. (Mapping set in
    42       * associated BeanInfo class.)
    43       */
    44      private String bundleExpr;
    45
    46      /**
    47       * Instance variable mapped to "dir" tag attribute. (Mapping set in
    48       * associated BeanInfo class.)
    49       */
    50      private String dirExpr;
    51
    52      /**
    53       * Instance variable mapped to "disabled" tag attribute. (Mapping set in
    54       * associated BeanInfo class.)
    55       */
    56      private String disabledExpr;
    57
    58      /**
    59       * Instance variable mapped to "filter" tag attribute. (Mapping set in
    60       * associated BeanInfo class.)
    61       */
    62      private String filterExpr;
    63
    64      /**
    65       * Instance variable mapped to "lang" tag attribute. (Mapping set in
    66       * associated BeanInfo class.)
    67       */
    68      private String langExpr;
    69
    70      /**
    71       * Instance variable mapped to "key" tag attribute. (Mapping set in
    72       * associated BeanInfo class.)
    73       */
    74      private String keyExpr;
    75
    76      /**
    77       * Instance variable mapped to "locale" tag attribute. (Mapping set in
    78       * associated BeanInfo class.)
    79       */
    80      private String localeExpr;
    81
    82      /**
    83       * Instance variable mapped to "style" tag attribute. (Mapping set in
    84       * associated BeanInfo class.)
    85       */
    86      private String styleExpr;
    87
    88      /**
    89       * Instance variable mapped to "styleClass" tag attribute. (Mapping set in
    90       * associated BeanInfo class.)
    91       */
    92      private String styleClassExpr;
    93
    94      /**
    95       * Instance variable mapped to "styleId" tag attribute. (Mapping set in
    96       * associated BeanInfo class.)
    97       */
    98      private String styleIdExpr;
    99
    100     /**
    101      * Instance variable mapped to "value" tag attribute. (Mapping set in
    102      * associated BeanInfo class.)
    103      */
    104     private String valueExpr;
    105
    106     /**
    107      * Getter method for "bundle" tag attribute. (Mapping set in associated
    108      * BeanInfo class.)
    109      */
    110     public String getBundleExpr() {
    111         return (bundleExpr);
    112     }
    113
    114     /**
    115      * Getter method for "dir" tag attribute. (Mapping set in associated
    116      * BeanInfo class.)
    117      */
    118     public String getDirExpr() {
    119         return (dirExpr);
    120     }
    121
    122     /**
    123      * Getter method for "disabled" tag attribute. (Mapping set in associated
    124      * BeanInfo class.)
    125      */
    126     public String getDisabledExpr() {
    127         return (disabledExpr);
    128     }
    129
    130     /**
    131      * Getter method for "filter" tag attribute. (Mapping set in associated
    132      * BeanInfo class.)
    133      */
    134     public String getFilterExpr() {
    135         return (filterExpr);
    136     }
    137
    138     /**
    139      * Getter method for "lang" tag attribute. (Mapping set in associated
    140      * BeanInfo class.)
    141      */
    142     public String getLangExpr() {
    143         return (langExpr);
    144     }
    145
    146     /**
    147      * Getter method for "key" tag attribute. (Mapping set in associated
    148      * BeanInfo class.)
    149      */
    150     public String getKeyExpr() {
    151         return (keyExpr);
    152     }
    153
    154     /**
    155      * Getter method for "locale" tag attribute. (Mapping set in associated
    156      * BeanInfo class.)
    157      */
    158     public String getLocaleExpr() {
    159         return (localeExpr);
    160     }
    161
    162     /**
    163      * Getter method for "style" tag attribute. (Mapping set in associated
    164      * BeanInfo class.)
    165      */
    166     public String getStyleExpr() {
    167         return (styleExpr);
    168     }
    169
    170     /**
    171      * Getter method for "styleClass" tag attribute. (Mapping set in
    172      * associated BeanInfo class.)
    173      */
    174     public String getStyleClassExpr() {
    175         return (styleClassExpr);
    176     }
    177
    178     /**
    179      * Getter method for "styleId" tag attribute. (Mapping set in associated
    180      * BeanInfo class.)
    181      */
    182     public String getStyleIdExpr() {
    183         return (styleIdExpr);
    184     }
    185
    186     /**
    187      * Getter method for "value" tag attribute. (Mapping set in associated
    188      * BeanInfo class.)
    189      */
    190     public String getValueExpr() {
    191         return (valueExpr);
    192     }
    193
    194     /**
    195      * Setter method for "bundle" tag attribute. (Mapping set in associated
    196      * BeanInfo class.)
    197      */
    198     public void setBundleExpr(String bundleExpr) {
    199         this.bundleExpr = bundleExpr;
    200     }
    201
    202     /**
    203      * Setter method for "dir" tag attribute. (Mapping set in associated
    204      * BeanInfo class.)
    205      */
    206     public void setDirExpr(String dirExpr) {
    207         this.dirExpr = dirExpr;
    208     }
    209
    210     /**
    211      * Setter method for "disabled" tag attribute. (Mapping set in associated
    212      * BeanInfo class.)
    213      */
    214     public void setDisabledExpr(String disabledExpr) {
    215         this.disabledExpr = disabledExpr;
    216     }
    217
    218     /**
    219      * Setter method for "filter" tag attribute. (Mapping set in associated
    220      * BeanInfo class.)
    221      */
    222     public void setFilterExpr(String filterExpr) {
    223         this.filterExpr = filterExpr;
    224     }
    225
    226     /**
    227      * Setter method for "key" tag attribute. (Mapping set in associated
    228      * BeanInfo class.)
    229      */
    230     public void setKeyExpr(String keyExpr) {
    231         this.keyExpr = keyExpr;
    232     }
    233
    234     /**
    235      * Setter method for "lang" tag attribute. (Mapping set in associated
    236      * BeanInfo class.)
    237      */
    238     public void setLangExpr(String langExpr) {
    239         this.langExpr = langExpr;
    240     }
    241
    242     /**
    243      * Setter method for "locale" tag attribute. (Mapping set in associated
    244      * BeanInfo class.)
    245      */
    246     public void setLocaleExpr(String localeExpr) {
    247         this.localeExpr = localeExpr;
    248     }
    249
    250     /**
    251      * Setter method for "style" tag attribute. (Mapping set in associated
    252      * BeanInfo class.)
    253      */
    254     public void setStyleExpr(String styleExpr) {
    255         this.styleExpr = styleExpr;
    256     }
    257
    258     /**
    259      * Setter method for "styleClass" tag attribute. (Mapping set in
    260      * associated BeanInfo class.)
    261      */
    262     public void setStyleClassExpr(String styleClassExpr) {
    263         this.styleClassExpr = styleClassExpr;
    264     }
    265
    266     /**
    267      * Setter method for "styleId" tag attribute. (Mapping set in associated
    268      * BeanInfo class.)
    269      */
    270     public void setStyleIdExpr(String styleIdExpr) {
    271         this.styleIdExpr = styleIdExpr;
    272     }
    273
    274     /**
    275      * Setter method for "value" tag attribute. (Mapping set in associated
    276      * BeanInfo class.)
    277      */
    278     public void setValueExpr(String valueExpr) {
    279         this.valueExpr = valueExpr;
    280     }
    281
    282     /**
    283      * Resets attribute values for tag reuse.
    284      */
    285     public void release() {
    286         super.release();
    287         setBundleExpr(null);
    288         setDirExpr(null);
    289         setDisabledExpr(null);
    290         setFilterExpr(null);
    291         setLangExpr(null);
    292         setKeyExpr(null);
    293         setLocaleExpr(null);
    294         setStyleExpr(null);
    295         setStyleClassExpr(null);
    296         setStyleIdExpr(null);
    297         setValueExpr(null);
    298     }
    299
    300     /**
    301      * Process the start tag.
    302      *
    303      * @throws JspException if a JSP exception has occurred
    304      */
    305     public int doStartTag() throws JspException {
    306         evaluateExpressions();
    307
    308         return (super.doStartTag());
    309     }
    310
    311     /**
    312      * Processes all attribute values which use the JSTL expression evaluation
    313      * engine to determine their values.
    314      *
    315      * @throws JspException if a JSP exception has occurred
    316      */
    317     private void evaluateExpressions()
    318         throws JspException {
    319         String string = null;
    320         Boolean bool = null;
    321
    322         if ((string =
    323                 EvalHelper.evalString("bundle", getBundleExpr(), this,
    324                     pageContext)) != null) {
    325             setBundle(string);
    326         }
    327
    328         if ((string =
    329         		EvalHelper.evalString("dir", getDirExpr(), this,
    330         			pageContext)) != null) {
    331         	setDir(string);
    332         }
    333
    334         if ((bool =
    335                 EvalHelper.evalBoolean("disabled", getDisabledExpr(), this,
    336                     pageContext)) != null) {
    337             setDisabled(bool.booleanValue());
    338         }
    339
    340         if ((bool =
    341                 EvalHelper.evalBoolean("filter", getFilterExpr(), this,
    342                     pageContext)) != null) {
    343             setFilter(bool.booleanValue());
    344         }
    345
    346         if ((string =
    347             	EvalHelper.evalString("lang", getLangExpr(), this,
    348             		pageContext)) != null) {
    349         	setLang(string);
    350         }
    351
    352         if ((string =
    353                 EvalHelper.evalString("key", getKeyExpr(), this, pageContext)) != null) {
    354             setKey(string);
    355         }
    356
    357         if ((string =
    358                 EvalHelper.evalString("locale", getLocaleExpr(), this,
    359                     pageContext)) != null) {
    360             setLocale(string);
    361         }
    362
    363         if ((string =
    364                 EvalHelper.evalString("style", getStyleExpr(), this, pageContext)) != null) {
    365             setStyle(string);
    366         }
    367
    368         if ((string =
    369                 EvalHelper.evalString("styleClass", getStyleClassExpr(), this,
    370                     pageContext)) != null) {
    371             setStyleClass(string);
    372         }
    373
    374         if ((string =
    375                 EvalHelper.evalString("styleId", getStyleIdExpr(), this,
    376                     pageContext)) != null) {
    377             setStyleId(string);
    378         }
    379
    380         if ((string =
    381                 EvalHelper.evalString("value", getValueExpr(), this, pageContext)) != null) {
    382             setValue(string);
    383         }
    384     }
    385 }