View Javadoc

    1   /*
    2    * $Id: BaseInputTag.java 684382 2008-08-10 00:11:59Z niallp $
    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.struts.taglib.html;
    22
    23  import org.apache.struts.util.MessageResources;
    24
    25  import javax.servlet.jsp.JspException;
    26
    27  /**
    28   * Abstract base class for the various input tags.
    29   *
    30   * @version $Rev: 684382 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004)
    31   *          $
    32   */
    33  public abstract class BaseInputTag extends BaseHandlerTag {
    34      /**
    35       * The message resources for this package.
    36       */
    37      protected static MessageResources messages =
    38          MessageResources.getMessageResources(Constants.Package
    39              + ".LocalStrings");
    40
    41      // ----------------------------------------------------- Instance Variables
    42
    43      /**
    44       * Autocomplete non standard attribute
    45       */
    46      private String autocomplete = null;
    47
    48      /**
    49       * The number of character columns for this field, or negative for no
    50       * limit.
    51       */
    52      protected String cols = null;
    53
    54      /**
    55       * The maximum number of characters allowed, or negative for no limit.
    56       */
    57      protected String maxlength = null;
    58
    59      /**
    60       * The name of the field (and associated property) being processed.
    61       */
    62      protected String property = null;
    63
    64      /**
    65       * The number of rows for this field, or negative for no limit.
    66       */
    67      protected String rows = null;
    68
    69      /**
    70       * The value for this field, or <code>null</code> to retrieve the
    71       * corresponding property from our associated bean.
    72       */
    73      protected String value = null;
    74
    75      /**
    76       * The name of the bean containing our underlying property.
    77       */
    78      protected String name = Constants.BEAN_KEY;
    79
    80      // ------------------------------------------------------------- Properties
    81
    82      /**
    83       * Return autocomplete
    84       * @since 1.3.10
    85       */
    86      public String getAutocomplete() {
    87          return autocomplete;
    88      }
    89
    90      /**
    91       * Activate/disactivate autocompletion (on/off)
    92       * @since 1.3.10
    93       */
    94      public void setAutocomplete(String autocomplete) {
    95          this.autocomplete = autocomplete;
    96      }
    97
    98      public String getName() {
    99          return (this.name);
    100     }
    101
    102     public void setName(String name) {
    103         this.name = name;
    104     }
    105
    106     /**
    107      * Return the number of columns for this field.
    108      */
    109     public String getCols() {
    110         return (this.cols);
    111     }
    112
    113     /**
    114      * Set the number of columns for this field.
    115      *
    116      * @param cols The new number of columns
    117      */
    118     public void setCols(String cols) {
    119         this.cols = cols;
    120     }
    121
    122     /**
    123      * Return the maximum length allowed.
    124      */
    125     public String getMaxlength() {
    126         return (this.maxlength);
    127     }
    128
    129     /**
    130      * Set the maximum length allowed.
    131      *
    132      * @param maxlength The new maximum length
    133      */
    134     public void setMaxlength(String maxlength) {
    135         this.maxlength = maxlength;
    136     }
    137
    138     /**
    139      * Return the property name.
    140      */
    141     public String getProperty() {
    142         return (this.property);
    143     }
    144
    145     /**
    146      * Set the property name.
    147      *
    148      * @param property The new property name
    149      */
    150     public void setProperty(String property) {
    151         this.property = property;
    152     }
    153
    154     /**
    155      * Return the number of rows for this field.
    156      */
    157     public String getRows() {
    158         return (this.rows);
    159     }
    160
    161     /**
    162      * Set the number of rows for this field.
    163      *
    164      * @param rows The new number of rows
    165      */
    166     public void setRows(String rows) {
    167         this.rows = rows;
    168     }
    169
    170     /**
    171      * Return the size of this field (synonym for <code>getCols()</code>).
    172      */
    173     public String getSize() {
    174         return (getCols());
    175     }
    176
    177     /**
    178      * Set the size of this field (synonym for <code>setCols()</code>).
    179      *
    180      * @param size The new size
    181      */
    182     public void setSize(String size) {
    183         setCols(size);
    184     }
    185
    186     /**
    187      * Return the field value (if any).
    188      */
    189     public String getValue() {
    190         return (this.value);
    191     }
    192
    193     /**
    194      * Set the field value (if any).
    195      *
    196      * @param value The new field value, or <code>null</code> to retrieve the
    197      *              corresponding property from the bean
    198      */
    199     public void setValue(String value) {
    200         this.value = value;
    201     }
    202
    203     // --------------------------------------------------------- Public Methods
    204
    205     /**
    206      * Process the start of this tag.  The default implementation does
    207      * nothing.
    208      *
    209      * @throws JspException if a JSP exception has occurred
    210      */
    211     public int doStartTag() throws JspException {
    212         return (EVAL_BODY_TAG);
    213     }
    214
    215     /**
    216      * Process the end of this tag.  The default implementation does nothing.
    217      *
    218      * @throws JspException if a JSP exception has occurred
    219      */
    220     public int doEndTag() throws JspException {
    221         return (EVAL_PAGE);
    222     }
    223
    224     /**
    225      * Prepare the name element
    226      *
    227      * @return The element name.
    228      */
    229     protected String prepareName()
    230         throws JspException {
    231         if (property == null) {
    232             return null;
    233         }
    234
    235         // * @since Struts 1.1
    236         if (indexed) {
    237             StringBuffer results = new StringBuffer();
    238
    239             prepareIndex(results, name);
    240             results.append(property);
    241
    242             return results.toString();
    243         }
    244
    245         return property;
    246     }
    247
    248     /**
    249      * Release any acquired resources.
    250      */
    251     public void release() {
    252         super.release();
    253         autocomplete = null;
    254         name = Constants.BEAN_KEY;
    255         cols = null;
    256         maxlength = null;
    257         property = null;
    258         rows = null;
    259         value = null;
    260     }
    261 }