<!--
Tbis HTML document provides a base template for Component Reference pages.

* All ??? text should be replaced.

* Examples should illustrate near real world use of the component, see other
  existing component page examples for formatting and style guidelines.
  
* Use Tapestry 2.2 Beta 1+ "expression" binding syntax instead of 
  "property-path" syntax.
  
* Include links to Tapestry Javadoc API where appropriate.

* Include Tapestry Developers Guide multi-page version where appropriate.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- $Id$ --> 
<html>
<head>
<title>???</title>
<link rel="stylesheet" type="text/css" href="Tapestry.css" title="style">
</head>

<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
 <tr>
  <!-- Previous component in alphabetical order. -->
  <td align="left"><a href="???.html"><img alt="???" 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>
  <!-- Next component in alphabetical order. -->
  <td align="right"><a href="???.html"><img alt="???" 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>???</b></font></td>
   </tr>
   <tr>
    <td>
     <A href="../api/org/apache/tapestry/???/???.html">org.apache.tapestry.???.???</a>
    </td>
   </tr>
  </table>
 </td>
 <td>
  <table align="right" valign="middle" bgcolor="#c0c0c0" cellpadding="8">
   <tr>
    <td>Visual / Non Visual Component</td>
   </tr>
  </table>
 </td>
</tr>

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

<tr>
 <td colspan="2">
  <b>Description</b>
  <br> 
  Provides a HTML ??? element. ??? 
 </td>
</tr>

<tr>
 <td colspan="2">
  <b>See Also</b>
  <br>
  <A href="???.html">???</a>, 
  <A href="???.html">???</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>???</td>
    <td>String</td>
    <td>in</td>
    <td>yes</td>
    <td>&nbsp;</td>
    <td>???</td>
   </tr>
   <tr>
    <td>???</td>
    <td>String</td>
    <td>in</td>
    <td>no</td>
    <td>&nbsp;</td>
    <td>???</td>
   </tr>
  </table>
  <p>
  Body: <strong>removed</strong><br>
  Informal parameters: <strong>allowed</strong><br>
  <!-- component-specification "reserved-parameter" -->
  Reserved parameters: none
  </p>    
 </td>
</tr>

<tr>
 <td colspan="2">
  <b>Examples</b>
  <p>
  This example is under construction.
  </p>
      

 </td></tr></table>
</td></tr>
<tr>
 <td colspan="3"><hr></td>  
</tr>
<tr>
 <!-- Previous component in alphabetical order. -->
 <td align="left"><a href="???.html"><img alt="???" 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>
 <!-- Next component in alphabetical order. -->
 <td align="right"><a href="???.html"><img alt="???" src="common-images/next.png"></a></td>  
</tr>
</table>

</body>
</html>