<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright 2004 The Apache Software Foundation
  
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
  
       http://www.apache.org/licenses/LICENSE-2.0
  
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<!-- $Id$ -->
<!DOCTYPE component-specification PUBLIC 
  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
	
<component-specification class="org.apache.tapestry.valid.ValidField" allow-body="no">

  <description>
  A text input field that can validate input.
  </description>

  <parameter name="value" type="java.lang.Object" required="yes" direction="auto"/>
  
  <parameter name="disabled" type="boolean" direction="in"/>
  
  <parameter name="hidden" type="boolean" direction="in"/>
    
  <parameter name="validator" type="org.apache.tapestry.valid.IValidator" required="yes" direction="auto">
    <description>
    Converts value to a string and parses strings back into object values.
    </description>
  </parameter>
    
  <parameter name="displayName" type="java.lang.String" required="yes" direction="auto">
    <description>
    Name used by FieldLabel and when generating validation error messages.
    </description>
  </parameter>
  
  <reserved-parameter name="type"/>
  <reserved-parameter name="value"/>
  <reserved-parameter name="name"/>

  <property-specification name="name" type="java.lang.String"/>
  <property-specification name="form" type="org.apache.tapestry.IForm"/>
  
</component-specification>
