<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- $Id$ --> 
<html>
<head>
<title>FieldLabel</title>
<link rel="stylesheet" type="text/css" href="Tapestry.css" title="style">
</head>

<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
 <tr>
  <td align="left"><A href="ExternalLink.html"><IMG alt="ExternalLink" src="common-images/prev.png"></a></td>  
  <td align="middle"><A href="index.html"><IMG alt="Component Index" src="common-images/home.png" ></a></td>  
  <td align="right"><A href="Foreach.html"><IMG alt=Foreach src="common-images/next.png"></a></td>  
 <tr>
 <tr>
  <td colspan="3"><hr></td>  
 </tr>
 <tr>
  <td colspan="3">
   <table border="0" cellpadding="4" cellspacing="4" width="100%">

<tr valign="top">
 <td>
  <table>
	 <tr>
	  <td><font size="+2"><b>FieldLabel</b></font></td>
	 </tr>
	 <tr>
	  <td>
		 <A href="../api/org/apache/tapestry/valid/FieldLabel.html">org.apache.tapestry.valid.FieldLabel</a>
		</td>
	 </tr>
  </table>
 </td>
 <td>
  <table align="right" valign="middle" bgcolor="#c0c0c0" cellpadding="8">
	 <tr>
	  <td><b>Field Label</b>&nbsp;<input size="10" 
             ></td>
	 </tr>
  </table>
 </td>
</tr>

<tr valign="center">
 <td colspan="2">&nbsp;</td>
</tr>

<tr>
 <td colspan="2">
  <b>Description</b>
	<br>
  A component, used with a <A href="ValidField.html">ValidField</a> that 
  provides the label for the field.
  <p>
  A <A href="../api/org/apache/tapestry/valid/IValidationDelegate.html">delegate</a> 
  object may be specified that will change the visual formatting of the label 
  to reflect the state of the field, for instance, to make the label red when 
  the field itself is in error.
  <p>
  This component may NOT wrap around other 
            components or static HTML.</p>
             
 </td>
</tr>

<tr>
 <td colspan="2">
  <b>See Also</b>
	<br>
	<A href="Form.html">Form</a>, 
	<A href="ValidField.html">ValidField</a> 
 </td>
</tr>

<tr>
 <td colspan="2">
  <b>Parameters</b>
	<br>
  <table border="1" cellpadding="4" cellspacing="4" class="parameters">
  <tr> 
    <th>Name</th>
    <th>Type</th>
	  <th>Direction</th>
    <th>Required</th> 
    <th>Default</th>
    <th>Description</th>
  </tr>
  <tr>
    <td>field</td>
    <td><A href="../api/org/apache/tapestry/form/IFormComponent.html"><tt>IFormComponent</tt></a></td>
    <td>in</td>
   	<td>yes</td>
		<td>&nbsp;</td>
		<td>The component to be labeled.
    </td>
	</tr>
  <tr>
    <td>displayName</td>
    <td>String</td>
    <td>in</td>
   	<td>no</td>
		<td>&nbsp;</td>
		<td>
    Allows the display name to be overriden from the value supplied by 
    the <tt>IFormComponent</tt>. Most implementations of <tt>IFormComponent</tt> 
    provide a null displayName, and it is necessary to set one using this 
    parameter. 
    </td>
	</tr>
  <tr>
    <td>raw</td>
    <td>boolean</td>
    <td>in</td>
   	<td>no</td>
		<td>false</td>
    <td>
        If false (the default), then HTML characters in the value are escaped.  If
        true, then value is emitted exactly as is.
    </td>
	</tr>
	</table>
            <P>Body: <STRONG>removed</STRONG><BR>Informal parameters: 
            <STRONG>forbidden</STRONG>
     <br>
  Reserved 
            parameters: <EM>none</EM> </P>
    
 </td>
</tr>

<tr>
 <td colspan="2">
  <b>Examples</b>
	<p>
  Please see the documentation for the <A href="ValidField.html">ValidField</a> component.</p>
      

 </td></tr></table>
</td></tr>
<tr>
 <td colspan="3"><hr></td>  
</tr>
<tr>
  <td align="left"><A href="ExternalLink.html"><IMG alt="ExternalLink" src="common-images/prev.png"></a></td>  
 <td align="middle"><A href="index.html"><IMG alt="Component Index" src="common-images/home.png" ></a></td>  
 <td align="right"><A href="Foreach.html"><IMG alt=Foreach src="common-images/next.png"></a></td>  
</tr>
</table>

</body>
</html>