001    // Copyright 2006, 2007, 2008, 2011 The Apache Software Foundation
002    //
003    // Licensed under the Apache License, Version 2.0 (the "License");
004    // you may not use this file except in compliance with the License.
005    // 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
010    // distributed under the License is distributed on an "AS IS" BASIS,
011    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012    // See the License for the specific language governing permissions and
013    // limitations under the License.
014    
015    package org.apache.tapestry5.corelib.components;
016    
017    import org.apache.tapestry5.MarkupWriter;
018    import org.apache.tapestry5.corelib.base.AbstractTextField;
019    
020    /**
021     * TextField component corresponds to <input type="text"> element. The value parameter will be editted. TextField
022     * is generally used with string values, but other values are acceptible, as long as they can be freely converted back
023     * and forth to strings.
024     * <p/>
025     * Includes the <code>size</code> attribute, if a {@link org.apache.tapestry5.beaneditor.Width} annotation is present on
026     * the property bound to the value parameter.
027     *
028     * @tapestrydoc
029     */
030    public class TextField extends AbstractTextField
031    {
032        @Override
033        protected void writeFieldTag(MarkupWriter writer, String value)
034        {
035            writer.element("input",
036    
037                           "type", "text",
038    
039                           "name", getControlName(),
040    
041                           "id", getClientId(),
042    
043                           "value", value,
044    
045                           "size", getWidth());
046        }
047    
048        final void afterRender(MarkupWriter writer)
049        {
050            writer.end(); // input
051        }
052    
053    }