001    // Copyright 2006, 2007, 2008 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    public class TextField extends AbstractTextField
029    {
030        @Override
031        protected void writeFieldTag(MarkupWriter writer, String value)
032        {
033            writer.element("input",
034    
035                           "type", "text",
036    
037                           "name", getControlName(),
038    
039                           "id", getClientId(),
040    
041                           "value", value,
042    
043                           "size", getWidth());
044        }
045    
046        final void afterRender(MarkupWriter writer)
047        {
048            writer.end(); // input
049        }
050    
051    }