001// ***************************************************************************************************************************
002// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
003// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
004// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
005// * with the License.  You may obtain a copy of the License at                                                              *
006// *                                                                                                                         *
007// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
008// *                                                                                                                         *
009// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
010// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
011// * specific language governing permissions and limitations under the License.                                              *
012// ***************************************************************************************************************************
013package org.apache.juneau.dto.html5;
014
015import org.apache.juneau.annotation.*;
016
017/**
018 * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#the-textarea-element">&lt;textarea&gt;</a>
019 * element.
020 * 
021 * <h5 class='section'>See Also:</h5>
022 * <ul class='doctree'>
023 *    <li class='link'><a class='doclink' href='../../../../../overview-summary.html#juneau-dto.HTML5'>Overview &gt; juneau-dto &gt; HTML5</a>
024 * </ul>
025 */
026@Bean(typeName="textarea")
027public class Textarea extends HtmlElementRawText {
028
029   /**
030    * <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#attr-fe-autocomplete">autocomplete</a> attribute.
031    * 
032    * <p>
033    * Hint for form auto-fill feature.
034    * 
035    * @param autocomplete The new value for this attribute.
036    * @return This object (for method chaining).
037    */
038   public final Textarea autocomplete(String autocomplete) {
039      attr("autocomplete", autocomplete);
040      return this;
041   }
042
043   /**
044    * <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#attr-fe-autofocus">autofocus</a> attribute.
045    * 
046    * <p>
047    * Automatically focus the form control when the page is loaded.
048    * 
049    * @param autofocus
050    *    The new value for this attribute.
051    *    Typically a {@link Boolean} or {@link String}.
052    * @return This object (for method chaining).
053    */
054   public final Textarea autofocus(Boolean autofocus) {
055      attr("autofocus", autofocus);
056      return this;
057   }
058
059   /**
060    * <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#attr-textarea-cols">cols</a> attribute.
061    * 
062    * <p>
063    * Maximum number of characters per line.
064    * 
065    * @param cols
066    *    The new value for this attribute.
067    *    Typically a {@link Number} or {@link String}.
068    * @return This object (for method chaining).
069    */
070   public final Textarea cols(Object cols) {
071      attr("cols", cols);
072      return this;
073   }
074
075   /**
076    * <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#attr-fe-dirname">dirname</a> attribute.
077    * 
078    * <p>
079    * Name of form field to use for sending the element's directionality in form submission.
080    * 
081    * @param dirname The new value for this attribute.
082    * @return This object (for method chaining).
083    */
084   public final Textarea dirname(String dirname) {
085      attr("dirname", dirname);
086      return this;
087   }
088
089   /**
090    * <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#attr-fe-disabled">disabled</a> attribute.
091    * 
092    * <p>
093    * Whether the form control is disabled.
094    * 
095    * @param disabled
096    *    The new value for this attribute.
097    *    Typically a {@link Boolean} or {@link String}.
098    * @return This object (for method chaining).
099    */
100   public final Textarea disabled(Object disabled) {
101      attr("disabled", disabled);
102      return this;
103   }
104
105   /**
106    * <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#attr-fae-form">form</a> attribute.
107    * 
108    * <p>
109    * Associates the control with a form element.
110    * 
111    * @param form The new value for this attribute.
112    * @return This object (for method chaining).
113    */
114   public final Textarea form(String form) {
115      attr("form", form);
116      return this;
117   }
118
119   /**
120    * <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#inputmode">inputmode</a> attribute.
121    * 
122    * <p>
123    * Hint for selecting an input modality.
124    * 
125    * @param inputmode The new value for this attribute.
126    * @return This object (for method chaining).
127    */
128   public final Textarea inputmode(String inputmode) {
129      attr("inputmode", inputmode);
130      return this;
131   }
132
133   /**
134    * <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#attr-textarea-maxlength">maxlength</a> attribute.
135    * 
136    * <p>
137    * Maximum length of value.
138    * 
139    * @param maxlength
140    *    The new value for this attribute.
141    *    Typically a {@link Number} or {@link String}.
142    * @return This object (for method chaining).
143    */
144   public final Textarea maxlength(Object maxlength) {
145      attr("maxlength", maxlength);
146      return this;
147   }
148
149   /**
150    * <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#attr-textarea-minlength">minlength</a> attribute.
151    * 
152    * <p>
153    * Minimum length of value.
154    * 
155    * @param minlength
156    *    The new value for this attribute.
157    *    Typically a {@link Number} or {@link String}.
158    * @return This object (for method chaining).
159    */
160   public final Textarea minlength(Object minlength) {
161      attr("minlength", minlength);
162      return this;
163   }
164
165   /**
166    * <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#attr-fe-name">name</a> attribute.
167    * 
168    * <p>
169    * Name of form control to use for form submission and in the form.elements API.
170    * 
171    * @param name The new value for this attribute.
172    * @return This object (for method chaining).
173    */
174   public final Textarea name(String name) {
175      attr("name", name);
176      return this;
177   }
178
179   /**
180    * <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#attr-textarea-placeholder">placeholder</a>
181    * attribute.
182    * 
183    * <p>
184    * User-visible label to be placed within the form control.
185    * 
186    * @param placeholder The new value for this attribute.
187    * @return This object (for method chaining).
188    */
189   public final Textarea placeholder(String placeholder) {
190      attr("placeholder", placeholder);
191      return this;
192   }
193
194   /**
195    * <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#attr-textarea-readonly">readonly</a> attribute.
196    * 
197    * <p>
198    * Whether to allow the value to be edited by the user.
199    * 
200    * @param readonly
201    *    The new value for this attribute.
202    *    Typically a {@link Boolean} or {@link String}.
203    * @return This object (for method chaining).
204    */
205   public final Textarea readonly(Object readonly) {
206      attr("readonly", readonly);
207      return this;
208   }
209
210   /**
211    * <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#attr-textarea-required">required</a> attribute.
212    * 
213    * <p>
214    * Whether the control is required for form submission.
215    * 
216    * @param required
217    *    The new value for this attribute.
218    *    Typically a {@link Boolean} or {@link String}.
219    * @return This object (for method chaining).
220    */
221   public final Textarea required(Object required) {
222      attr("required", required);
223      return this;
224   }
225
226   /**
227    * <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#attr-textarea-rows">rows</a> attribute.
228    * 
229    * <p>
230    * Number of lines to show.
231    * 
232    * @param rows
233    *    The new value for this attribute.
234    *    Typically a {@link Number} or {@link String}.
235    * @return This object (for method chaining).
236    */
237   public final Textarea rows(Number rows) {
238      attr("rows", rows);
239      return this;
240   }
241
242   /**
243    * <a class="doclink" href="https://www.w3.org/TR/html5/forms.html#attr-textarea-wrap">wrap</a> attribute.
244    * 
245    * <p>
246    * How the value of the form control is to be wrapped for form submission.
247    * 
248    * @param wrap The new value for this attribute.
249    * @return This object (for method chaining).
250    */
251   public final Textarea wrap(String wrap) {
252      attr("wrap", wrap);
253      return this;
254   }
255
256
257   //--------------------------------------------------------------------------------
258   // Overridden methods
259   //--------------------------------------------------------------------------------
260
261   @Override /* HtmlElement */
262   public final Textarea _class(String _class) {
263      super._class(_class);
264      return this;
265   }
266
267   @Override /* HtmlElement */
268   public final Textarea id(String id) {
269      super.id(id);
270      return this;
271   }
272
273   @Override /* HtmlElement */
274   public final Textarea style(String style) {
275      super.style(style);
276      return this;
277   }
278
279   @Override /* HtmlElementText */
280   public Textarea text(Object text) {
281      super.text(text);
282      return this;
283   }
284}