<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en" xmlns:vdldoc="http://vdldoc.omnifaces.org" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:jakartaee="https://jakarta.ee/xml/ns/jakartaee">
    <head>
        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>tc (Tobago Core VDL Documentation)
			</title>
        <link rel="stylesheet" type="text/css" title="Style" href="../stylesheet.css">
    </head>
    <body>
        <noscript>
            <div>JavaScript is disabled on your browser.</div>
        </noscript>
        <div class="topNav">
            <a name="navbar_top"></a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"></a>
            <ul class="navList" title="Navigation">
                <li>
                    <a href="../overview-summary.html">Overview</a>
                </li>
                <li class="navBarCell1Rev">Library</li>
                <li>Tag</li>
                <li>
                    <a href="../help-doc.html">Help</a>
                </li>
            </ul>
        </div>
        <div class="subNav">
            <ul class="navList">
                <li>
                    <a target="_top" href="../index.html?tc/tld-summary.html">
									Frames
								</a>
                </li>
                <li>
                    <a href="tld-summary.html" target="_top">No Frames</a>
                </li>
            </ul>
            <ul class="navList" id="alltags_navbar_top">
                <li>
                    <a href="../alltags-noframe.html">All Tags</a>
                </li>
            </ul>
            <div>
                <script type="text/javascript">
								document.getElementById("alltags_navbar_top").style.display = (window == top) ? "block" : "none";
							</script>
            </div>
            <a name="skip-navbar_top"></a>
        </div>
        <div class="header">
            <h1 title="Library" class="title">tc</h1>
        </div>
        <div class="contentContainer">
            <div class="description">
                <ul class="blockList">
                    <li class="blockList">
                        <dl>
                            <dt>XML Declaration Syntax:</dt>
                            <dd>
                                <code>
													&lt;anyxmlelement xmlns:tc="http://myfaces.apache.org/tobago/component"/&gt;
												</code>
                            </dd>
                        </dl>
                        <dl>
                            <dt>Description:</dt>
                            <dd>
                                <div class="block">
                                    <i>No Description</i>
                                </div>
                            </dd>
                        </dl>
                    </li>
                </ul>
            </div>
            <div class="summary">
                <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Library Summary table, listing library information">
                    <caption>
                        <span>Tag Library Information</span><span class="tabEnd">&nbsp;</span>
                    </caption>
                    <thead>
                        <tr>
                            <th class="colFirst" scope="col">Info</th><th class="colLast" scope="col">Value</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr class="rowColor">
                            <td class="colFirst">ID (tag prefix)</td><td class="colLast"><code>tc</code></td>
                        </tr>
                        <tr class="altColor">
                            <td class="colFirst">URI</td><td class="colLast"><code>http://myfaces.apache.org/tobago/component</code></td>
                        </tr>
                    </tbody>
                </table>
            </div>
            <div class="summary">
                <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Tag Summary table, listing tag information">
                    <caption>
                        <span>Tag Summary</span><span class="tabEnd">&nbsp;</span>
                    </caption>
                    <thead>
                        <tr>
                            <th class="colOne" scope="col">Tag</th><th class="colLast" scope="col">Description</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="attribute.html">attribute</a></b></td><td class="colLast">
      Add an attribute on the UIComponent
 associated with the closest parent UIComponent custom action.
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="badge.html">badge</a></b></td><td class="colLast">
      Renders a badge element.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIBadge</p><p><b>RendererType: </b><ul><li>Badge (default)</li><li>BadgeInsideButtons</li></ul></p><p><b>Supported markups:</b></p><dl><dt><b>pill</b></dt><dd>Make badges more rounded.</dd><dt><b>primary</b></dt><dd>Set badge color to primary color of the theme.</dd><dt><b>secondary</b></dt><dd>Set badge color to secondary color of the theme.</dd><dt><b>danger</b></dt><dd>Set badge color to danger color of the theme.</dd><dt><b>warning</b></dt><dd>Set badge color to warning color of the theme.</dd><dt><b>success</b></dt><dd>Set badge color to success color of the theme.</dd><dt><b>info</b></dt><dd>Set badge color to info color of the theme.</dd><dt><b>light</b></dt><dd>Set badge color to light color of the theme.</dd><dt><b>dark</b></dt><dd>Set badge color to dark color of the theme.</dd><dt><b>none</b></dt><dd>Colorless badge.</dd></dl>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="bar.html">bar</a></b></td><td class="colLast">
      Defines a container for navigation elements, branding, ...<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIBar</p><p><b>RendererType: </b><ul><li>Bar (default)</li></ul></p><p><b>Supported facets:</b></p><dl><dt><b>brand</b></dt><dd>Contains an element which will get a 'navbar-brand' style, e.g. use <tc:link> </dd><dt><b>after</b></dt><dd>Content will be rendered usually at the right end of the bar.</dd></dl><p><b>Supported markups:</b></p><dl><dt><b>dark</b></dt><dd>Theming for dark backgrounds</dd><dt><b>light</b></dt><dd>Theming for light backgrounds</dd><dt><b>small</b></dt><dd>Bar collapse at a small size.</dd><dt><b>medium</b></dt><dd>Bar collapse at a medium size.</dd><dt><b>large</b></dt><dd>Bar collapse at a large size.</dd><dt><b>extraLarge</b></dt><dd>Bar collapse at a extra large size.</dd></dl>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="box.html">box</a></b></td><td class="colLast">
      Renders a panel with border and title.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIBox</p><p><b>RendererType: </b><ul><li>Box (default)</li></ul></p><p><b>Supported facets:</b></p><dl><dt><b>bar</b></dt><dd>Contains some code to be placed in the header at the bar position.</dd><dt><b>label</b></dt><dd>Contains some code to be placed in the header at the label position.</dd><dt><b>layout</b></dt><dd>Deprecated! Contains an layout manager. The layout manager tag should surround the content instead.</dd></dl><p><b>Supported markups:</b></p><dl><dt><b>spread</b></dt><dd>Use the full height for the HTML content.</dd></dl>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="button.html">button</a></b></td><td class="colLast">
      Renders a button element.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIButton</p><p><b>RendererType: </b><ul><li>Button (default)</li><li>ButtonInsideButtons</li><li>ButtonInsideIn</li><li>ButtonInsideInAfter</li></ul></p><p><b>Supported facets:</b></p><dl><dt><b>confirmation</b></dt><dd>Contains a UIOutput instance with the confirmation message.</dd></dl><p><b>Supported markups:</b></p><dl><dt><b>primary</b></dt><dd>Set button color to primary color of the theme.</dd><dt><b>secondary</b></dt><dd>Set button color to secondary color of the theme.</dd><dt><b>success</b></dt><dd>Set button color to success color of the theme.</dd><dt><b>danger</b></dt><dd>Set button color to danger color of the theme.</dd><dt><b>warning</b></dt><dd>Set button color to warning color of the theme.</dd><dt><b>info</b></dt><dd>Set button color to info color of the theme.</dd><dt><b>light</b></dt><dd>Set button color to light color of the theme.</dd><dt><b>dark</b></dt><dd>Set button color to dark color of the theme.</dd><dt><b>none</b></dt><dd>Colorless button.</dd><dt><b>badge</b></dt><dd>Display the button as a badge.</dd><dt><b>pill</b></dt><dd>Make badges more rounded if button is displayed as a badge.</dd></dl>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="buttons.html">buttons</a></b></td><td class="colLast">
      Renders a group of buttons.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIButtons</p><p><b>RendererType: </b><ul><li>Buttons (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="columnNode.html">columnNode</a></b></td><td class="colLast">
      Creates a tree node inside of a sheet (also known as tree table).
 This component represents a single node inside a tree structure.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIColumnNode</p><p><b>RendererType: </b><ul><li>TreeNode (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="columnSelector.html">columnSelector</a></b></td><td class="colLast">
      Renders a column with checkboxes to mark selected rows.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIColumnSelector</p><p><b>RendererType: </b><ul><li>ColumnSelector (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="column.html">column</a></b></td><td class="colLast">
      Renders a UIComponent that represents a single column of data within a
 parent UISheet component.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIColumn</p><p><b>RendererType: </b><ul><li>Column (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="convertDateTime.html">convertDateTime</a></b></td><td class="colLast">
      Register a DateTimeConverter instance on the UIComponent associated with the closest parent UIComponent custom
 action.
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="converter.html">converter</a></b></td><td class="colLast">
      Register an Converter instance on the UIComponent
 associated with the closest parent UIComponent.
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="dataAttribute.html">dataAttribute</a></b></td><td class="colLast">
      Add an data attribute on the UIComponent
 associated with the closest parent UIComponent custom action.
 Data attributes will be passed through the renderers into the DOM of the user agent and
 can be used by scripts.
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="date.html">date</a></b></td><td class="colLast">
      Renders a date input field.
 <p>
 For a time input field set you'll need to set the &lt;f:convertDateTime type="time"&gt; inside the &lt;tc:date&gt;.
 <p>
 If there is no converter given, a default instance of {@link javax.faces.convert.DateTimeConverter} will be used.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIDate</p><p><b>RendererType: </b><ul><li>Date (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="event.html">event</a></b></td><td class="colLast">
      Add an event behavior to the component.
 It can contain f:ajax and tc:operation tags.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIEvent</p><p><b>RendererType: </b><ul><li>Event (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="figure.html">figure</a></b></td><td class="colLast">
      Use figure to show e. g. images or videos inside.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIFigure</p><p><b>RendererType: </b><ul><li>Figure (default)</li></ul></p><p><b>Supported facets:</b></p><dl><dt><b>label</b></dt><dd>Contains some code to be placed in the header at the label position.</dd></dl>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="file.html">file</a></b></td><td class="colLast">
      <p>
 Renders a file input field.
 </p>
 <p>
 For content constraints please use <a href="validateFileItem.html">tc:validateFileItem</a>.
 </p><p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIFile</p><p><b>RendererType: </b><ul><li>File (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="flexLayout.html">flexLayout</a></b></td><td class="colLast">
      Renders a <a href=https://www.w3.org/TR/css-flexbox-1/>Flexible Box Layout</a>.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIFlexLayout</p><p><b>RendererType: </b><ul><li>FlexLayout (default)</li></ul></p><p><b>Supported markups:</b></p><dl><dt><b>spread</b></dt><dd>Use the full height for the HTML content.</dd></dl>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="flowLayout.html">flowLayout</a></b></td><td class="colLast">
      Renders a FlowLayout that positions the content components in there natural order.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIFlowLayout</p><p><b>RendererType: </b><ul><li>FlowLayout (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="footer.html">footer</a></b></td><td class="colLast">
      Defines a footer of its parent (like page, box, ...)<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIFooter</p><p><b>RendererType: </b><ul><li>Footer (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="form.html">form</a></b></td><td class="colLast">
      If an action is preformed, everything within the next parent form belongs to the submit-area.
 An action could be a button which is pressed.
 tc:page is a form.
 Everything in the submit-area is written into the model, even other forms.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIForm</p><p><b>RendererType: </b><ul><li>Form (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="gridLayoutConstraint.html">gridLayoutConstraint</a></b></td><td class="colLast">
      Set grid layout specific contraints to the parent component.
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="gridLayout.html">gridLayout</a></b></td><td class="colLast">
      <p>**** Preliminary. Maybe subject to changed in a future version **** </p>Renders a grid-layout. The grid is defined by the columns and rows attributes. You can adjust the
 widths of the columns and rows by value of the tokens. The number of tokens describe the number of
 columns and rows.
 <pre>
 columns/rows ::= LAYOUT
 LAYOUT       ::= TOKEN [" " TOKEN]+
 TOKEN        ::= "auto" | MEASURE | FRACTION
 MEASURE      ::= [NUMBER] ("px" | "em" | "ex" | "rem" | ...)
 FRACTION     ::= [POSITIVE_INTEGER] "fr"
 </pre><p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIGridLayout</p><p><b>RendererType: </b><ul><li>GridLayout (default)</li></ul></p><p><b>Supported markups:</b></p><dl><dt><b>spread</b></dt><dd>Use the full height for the HTML content.</dd></dl>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="header.html">header</a></b></td><td class="colLast">
      Defines a header of its parent (like page, box, ...)<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIHeader</p><p><b>RendererType: </b><ul><li>Header (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="hidden.html">hidden</a></b></td><td class="colLast">
      Renders a hidden input element.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIHidden</p><p><b>RendererType: </b><ul><li>Hidden (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="image.html">image</a></b></td><td class="colLast">
      Renders an image.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIImage</p><p><b>RendererType: </b><ul><li>Image (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="in.html">in</a></b></td><td class="colLast">
      Renders a text input field.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIIn</p><p><b>RendererType: </b><ul><li>In (default)</li></ul></p><p><b>Supported facets:</b></p><dl><dt><b>before</b></dt><dd>This facet can contain a part for input groups.</dd><dt><b>after</b></dt><dd>This facet can contain a part for input groups.</dd></dl><p><b>Supported markups:</b></p><dl><dt><b>localMenu</b></dt><dd>If a suggest menu is available, it will be rendered on the component, not in the '.tobago-page-menuStore'.</dd></dl>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="label.html">label</a></b></td><td class="colLast">
      Renders a label component.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UILabel</p><p><b>RendererType: </b><ul><li>Label (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="link.html">link</a></b></td><td class="colLast">
      Renders a link element, i. e. an anchor &lt;a&gt; tag.
 For a &lt;link&gt; tag, please use &lt;tc:metaLink&gt; tag.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UILink</p><p><b>RendererType: </b><ul><li>Link (default)</li><li>LinkInsideCommand</li><li>LinkInsideLinks</li></ul></p><p><b>Supported facets:</b></p><dl><dt><b>confirmation</b></dt><dd>Contains a UIOutput instance with the confirmation message.</dd></dl>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="links.html">links</a></b></td><td class="colLast">
      Defines a navigation element, which contains a menu-like structure<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UILinks</p><p><b>RendererType: </b><ul><li>Links (default)</li><li>LinksInsideBar</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="messages.html">messages</a></b></td><td class="colLast">
      Renders error/validation messages.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIMessages</p><p><b>RendererType: </b><ul><li>Messages (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="metaLink.html">metaLink</a></b></td><td class="colLast">
      This tag renders a link tag in the header of the HTML output.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIMetaLink</p><p><b>RendererType: </b><ul><li>MetaLink (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="meta.html">meta</a></b></td><td class="colLast">
      This tag a meta tag in the header of the HTML output.
 It's not possible to add more than one tag with the same
 <ul>
 <li>name + lang combination</li>
 <li>httpEquiv</li>
 <li>charset</li>
 </ul>
 The last inserted wins.
 So, you may override the default Tobago meta tag in this way.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIMeta</p><p><b>RendererType: </b><ul><li>Meta (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="object.html">object</a></b></td><td class="colLast">
      Show external content inside of an application.
 This will typically renders an iframe tag.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIObject</p><p><b>RendererType: </b><ul><li>Object (default)</li></ul></p><p><b>Supported markups:</b></p><dl><dt><b>spread</b></dt><dd>Use the full height for the HTML content.</dd></dl>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="operation.html">operation</a></b></td><td class="colLast">
      <p>**** Preliminary. Maybe subject to changed in a future version **** </p>An operation describes an Tobago command, which will usually executed on client side.

 ********************* &lt;br/&gt;
 WARNING &lt;br/&gt;
 ********************* &lt;br/&gt;
 This feature is preliminary and may be subject of change in later versions!  &lt;br/&gt;<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIOperation</p><p><b>RendererType: </b><ul><li>Operation (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="out.html">out</a></b></td><td class="colLast">
      Renders a text<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIOut</p><p><b>RendererType: </b><ul><li>Out (default)</li><li>OutInsideBoxLabel</li><li>OutInsideIn</li><li>OutInsideSectionLabel</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="page.html">page</a></b></td><td class="colLast">
      <p>
 Renders a page element.
 </p>
 <p>
 The markup {@link org.apache.myfaces.tobago.context.Markup#SPREAD}
 means the page should spread over the hole available area.
 So the content will use the full height of the browser window.
 <b>Warning: This feature is preliminary and may change, if necessary, in minor releases!</b>
 </p><p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIPage</p><p><b>RendererType: </b><ul><li>Page (default)</li></ul></p><p><b>Supported facets:</b></p><dl><dt><b>layout</b></dt><dd>Deprecated! Contains an layout manager. The layout manager tag should surround the content instead.</dd></dl><p><b>Supported markups:</b></p><dl><dt><b>spread</b></dt><dd>Use the full browser height for the HTML content.</dd></dl>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="panel.html">panel</a></b></td><td class="colLast">
      Intended for use in situations when only one UIComponent child can be
 nested, such as in the case of facets.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIPanel</p><p><b>RendererType: </b><ul><li>Panel (default)</li></ul></p><p><b>Supported facets:</b></p><dl><dt><b>reload</b></dt><dd>Contains an instance of UIReload</dd><dt><b>layout</b></dt><dd>Deprecated. Contains an layout manager. The layout manager tag should surround the content instead.</dd></dl><p><b>Supported markups:</b></p><dl><dt><b>spread</b></dt><dd>Use the full height for the HTML content.</dd></dl>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="popup.html">popup</a></b></td><td class="colLast">
      Renders a popup panel.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIPopup</p><p><b>RendererType: </b><ul><li>Popup (default)</li></ul></p><p><b>Supported markups:</b></p><dl><dt><b>large</b></dt><dd>Large popup</dd><dt><b>small</b></dt><dd>Small popup</dd></dl>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="progress.html">progress</a></b></td><td class="colLast">
      Renders a progress bar.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIProgress</p><p><b>RendererType: </b><ul><li>Progress (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="reload.html">reload</a></b></td><td class="colLast">
      <p>**** Preliminary. Maybe subject to changed in a future version **** </p>Update the parent component

 ********************* &lt;br/&gt;
 WARNING &lt;br/&gt;
 ********************* &lt;br/&gt;
 This feature is preliminary and may be subject of change in later versions!  &lt;br/&gt;<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIReload</p><p><b>RendererType: </b><ul></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="resetInputActionListener.html">resetInputActionListener</a></b></td><td class="colLast">
      A ResetInputActionListener is a declarative way to allow an action source to reset all EditableValueHolder
 of a page or in a sub-form or part of the component tree.
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="row.html">row</a></b></td><td class="colLast">
      This component creates a representative in a UISheet for each row.
 The tag must be a subtag of &lt;tc:sheet&gt;<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIRow</p><p><b>RendererType: </b><ul><li>Row (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="script.html">script</a></b></td><td class="colLast">
      This tag adds script files to include into the rendered page.
 <br>
 Some features are deprecated (because of CSP): This tag adds client side script to the rendered page.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIScript</p><p><b>RendererType: </b><ul><li>Script (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="section.html">section</a></b></td><td class="colLast">
      Renders a section or subsection.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISection</p><p><b>RendererType: </b><ul><li>Section (default)</li></ul></p><p><b>Supported facets:</b></p><dl><dt><b>label</b></dt><dd>Contains some code to be placed in the header at the label position.</dd><dt><b>bar</b></dt><dd>Contains some code to be placed in the header at the bar position.</dd></dl>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="segmentLayoutConstraint.html">segmentLayoutConstraint</a></b></td><td class="colLast">
      Set a offset for the parent UIComponent withing a segment layout.
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="segmentLayout.html">segmentLayout</a></b></td><td class="colLast">
      Renders a layout using a 12 columns grid.
 Find more information on how the grid works in the Twitter Bootstrap documentation.

 If no attribute is defined, extraSmall="12seg" will be used as default.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISegmentLayout</p><p><b>RendererType: </b><ul><li>SegmentLayout (default)</li></ul></p><p><b>Supported markups:</b></p><dl><dt><b>spread</b></dt><dd>Use the full height for the HTML content.</dd></dl>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="selectBooleanCheckbox.html">selectBooleanCheckbox</a></b></td><td class="colLast">
      Renders a checkbox.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISelectBooleanCheckbox</p><p><b>RendererType: </b><ul><li>SelectBooleanCheckbox (default)</li><li>SelectBooleanCheckboxInsideCommand</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="selectBooleanToggle.html">selectBooleanToggle</a></b></td><td class="colLast">
      Renders a checkbox as toggle.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISelectBooleanToggle</p><p><b>RendererType: </b><ul><li>SelectBooleanToggle (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="selectItem.html">selectItem</a></b></td><td class="colLast">
      Add a child UISelectItem component to the UIComponent
 associated with the closed parent UIComponent custom
 action.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISelectItem</p><p><b>RendererType: </b><ul></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="selectItems.html">selectItems</a></b></td><td class="colLast">
      Add a child UISelectItems component to the UIComponent
 associated with the closed parent UIComponent custom
 action.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISelectItems</p><p><b>RendererType: </b><ul></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="selectManyCheckbox.html">selectManyCheckbox</a></b></td><td class="colLast">
      Render a group of checkboxes.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISelectManyCheckbox</p><p><b>RendererType: </b><ul><li>SelectManyCheckbox (default)</li><li>SelectManyCheckboxInsideCommand</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="selectManyListbox.html">selectManyListbox</a></b></td><td class="colLast">
      Render a multi selection option listbox.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISelectManyListbox</p><p><b>RendererType: </b><ul><li>SelectManyListbox (default)</li></ul></p><p><b>Supported markups:</b></p><dl><dt><b>spread</b></dt><dd>Use the full height for the HTML content.</dd></dl>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="selectManyShuttle.html">selectManyShuttle</a></b></td><td class="colLast">
      <p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISelectManyShuttle</p><p><b>RendererType: </b><ul><li>SelectManyShuttle (default)</li></ul></p><p><b>Supported markups:</b></p><dl><dt><b>spread</b></dt><dd>Use the full height for the HTML content.</dd></dl>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="selectOneChoice.html">selectOneChoice</a></b></td><td class="colLast">
      Render a single selection dropdown list.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISelectOneChoice</p><p><b>RendererType: </b><ul><li>SelectOneChoice (default)</li><li>SelectOneChoiceInsideIn</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="selectOneListbox.html">selectOneListbox</a></b></td><td class="colLast">
      Render a single selection option listbox.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISelectOneListbox</p><p><b>RendererType: </b><ul><li>SelectOneListbox (default)</li></ul></p><p><b>Supported markups:</b></p><dl><dt><b>spread</b></dt><dd>Use the full height for the HTML content.</dd></dl>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="selectOneRadio.html">selectOneRadio</a></b></td><td class="colLast">
      Render a set of radio buttons.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISelectOneRadio</p><p><b>RendererType: </b><ul><li>SelectOneRadio (default)</li><li>SelectOneRadioInsideCommand</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="selectReference.html">selectReference</a></b></td><td class="colLast">
      Renders a set of option related to and same type as the <strong>for</strong>
 component.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISelectReference</p><p><b>RendererType: </b><ul><li>SelectReference (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="separator.html">separator</a></b></td><td class="colLast">
      Renders a separator.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISeparator</p><p><b>RendererType: </b><ul><li>Separator (default)</li><li>SeparatorInsideCommand</li></ul></p><p><b>Supported facets:</b></p><dl><dt><b>label</b></dt><dd>This facet contains a UILabel</dd></dl>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="sheet.html">sheet</a></b></td><td class="colLast">
      Render a sheet element.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISheet</p><p><b>RendererType: </b><ul><li>Sheet (default)</li></ul></p><p><b>Supported facets:</b></p><dl><dt><b>reload</b></dt><dd>Contains an instance of UIReload</dd></dl><p><b>Supported markups:</b></p><dl><dt><b>bordered</b></dt><dd>Add borders to the table cells.</dd><dt><b>dark</b></dt><dd>Set dark background.</dd><dt><b>hover</b></dt><dd>Background of row changed on hovering.</dd><dt><b>small</b></dt><dd>Small margins for table cells.</dd><dt><b>striped</b></dt><dd>Zebra-striping for table rows.</dd><dt><b>spread</b></dt><dd>Use the full height for the HTML content.</dd></dl>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="span.html">span</a></b></td><td class="colLast">
      <p>**** @deprecated. Will be removed in a future version **** </p><p>Since Tobago 4.0.0. Please use &lt;tc:gridLayoutConstraint&gt;
 from {</p>Add a column span or row span to the parent UIComponent, useful for a grid layout.
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="splitLayout.html">splitLayout</a></b></td><td class="colLast">
      <p>**** Preliminary. Maybe subject to changed in a future version **** </p><p>
 WARNING: This component is preliminary and may be changed without a major release.
 </p>

 Renders a SplitLayout.
 A area with two child components rendered horizontally or vertically and allows to change the
 layout relation of this two components on the client.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISplitLayout</p><p><b>RendererType: </b><ul><li>SplitLayout (default)</li></ul></p><p><b>Supported markups:</b></p><dl><dt><b>spread</b></dt><dd>Use the full height for the HTML content.</dd></dl>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="stars.html">stars</a></b></td><td class="colLast">
      Renders a star rating component.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIStars</p><p><b>RendererType: </b><ul><li>Stars (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="style.html">style</a></b></td><td class="colLast">
      <p>
 Add a style tag with the given file name to the header (using file attribute) or add
 some CSS styles to the parent component.
 </p><p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIStyle</p><p><b>RendererType: </b><ul><li>Style (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="suggest.html">suggest</a></b></td><td class="colLast">
      Renders a list of suggested texts for a given input field.

 Basic features:
 <ul>
   <li>provide a list directly while rendering (not AJAX needed) [todo]</li>
   <li>update by typing (AJAX)</li>
   <li>minimum number of typed characters (to avoid useless requests)</li>
   <li>update delay (useful for optimization)</li>
   <li>filter on client side (useful for optimization) [todo]</li>
 </ul><p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISuggest</p><p><b>RendererType: </b><ul><li>Suggest (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="tabChangeListener.html">tabChangeListener</a></b></td><td class="colLast">
      Register an TabChangedListener instance on the UIComponent
 associated with the closest parent UIComponent custom action.
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="tabGroup.html">tabGroup</a></b></td><td class="colLast">
      Renders a tab group which contains tab panels.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UITabGroup</p><p><b>RendererType: </b><ul><li>TabGroup (default)</li></ul></p><p><b>Supported markups:</b></p><dl><dt><b>spread</b></dt><dd>Use the full height for the HTML content.</dd></dl>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="tab.html">tab</a></b></td><td class="colLast">
      Renders a tab within a tab group.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UITab</p><p><b>RendererType: </b><ul><li>Tab (default)</li></ul></p><p><b>Supported facets:</b></p><dl><dt><b>bar</b></dt><dd>Contains some code to be placed in the header at the bar position.</dd><dt><b>label</b></dt><dd>Contains some code to be placed in the header at the label position.</dd></dl>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="textarea.html">textarea</a></b></td><td class="colLast">
      Renders a multi line text input control.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UITextarea</p><p><b>RendererType: </b><ul><li>Textarea (default)</li></ul></p><p><b>Supported markups:</b></p><dl><dt><b>spread</b></dt><dd>Use the full height for the HTML content.</dd></dl>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="treeCommand.html">treeCommand</a></b></td><td class="colLast">
      <p>**** @deprecated. Will be removed in a future version **** </p><p>since 4.0.0, please use tc:link</p>Renders a command inside of a tree.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UITreeCommand</p><p><b>RendererType: </b><ul><li>TreeCommand (default)</li></ul></p><p><b>Supported facets:</b></p><dl><dt><b>confirmation</b></dt><dd>Contains a UIOutput instance with the confirmation message.</dd></dl>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="treeIcon.html">treeIcon</a></b></td><td class="colLast">
      Renders an image beside a tree node.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UITreeIcon</p><p><b>RendererType: </b><ul><li>TreeIcon (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="treeIndent.html">treeIndent</a></b></td><td class="colLast">
      Renders an indent beside a tree node.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UITreeIndent</p><p><b>RendererType: </b><ul><li>TreeIndent (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="treeLabel.html">treeLabel</a></b></td><td class="colLast">
      Renders a label inside of a tree.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UITreeLabel</p><p><b>RendererType: </b><ul><li>TreeLabel (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="treeListbox.html">treeListbox</a></b></td><td class="colLast">
      A tree data structure displayed as a set of list boxes.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UITreeListbox</p><p><b>RendererType: </b><ul><li>TreeListbox (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="treeMenu.html">treeMenu</a></b></td><td class="colLast">
      <p>**** @deprecated. Will be removed in a future version **** </p><p>since 4.2.1. Please use {</p>A tree which will be displayed like a flat menu.
 This menu is often used for navigation on the left side of an application.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UITreeMenu</p><p><b>RendererType: </b><ul><li>TreeMenu (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="treeNode.html">treeNode</a></b></td><td class="colLast">
      Creates a tree node. This component represents a single node inside a tree structure.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UITreeNode</p><p><b>RendererType: </b><ul><li>TreeNode (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="treeSelect.html">treeSelect</a></b></td><td class="colLast">
      Makes a tree node selectable.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UITreeSelect</p><p><b>RendererType: </b><ul><li>TreeSelect (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="tree.html">tree</a></b></td><td class="colLast">
      A tree with classical look.
 Usually used with icons and junction lines to open folder, etc.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UITree</p><p><b>RendererType: </b><ul><li>Tree (default)</li></ul></p>
    </td>
                        </tr>
                        <tr class="altColor">
                            <td class="colOne"><b><a href="validateFileItem.html">validateFileItem</a></b></td><td class="colLast">
      Register an {@link FileItemValidator} instance on the UIComponent
 associated with the closest parent UIComponent custom action.
    </td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colOne"><b><a href="validateSubmittedValueLength.html">validateSubmittedValueLength</a></b></td><td class="colLast">
      Register an {@link SubmittedValueLengthValidator} instance on the UIComponent
 associated with the closest parent UIComponent custom action.
 The standard LengthValidator validate the length on the converted value.toString()
 not on the submitted value. Sometime you need to check the length of the submitted value.
    </td>
                        </tr>
                    </tbody>
                </table>
                <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Function Summary table, listing function information">
                    <caption>
                        <span>Function Summary</span><span class="tabEnd">&nbsp;</span>
                    </caption>
                    <thead>
                        <tr>
                            <th class="colFirst" scope="col">Type</th><th class="colOne" scope="col">Function</th><th class="colLast" scope="col">Description</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr class="rowColor">
                            <td class="colFirst"><code>java.lang.String</code></td><td class="colOne"><code><b><a href="format1.fn.html">format1</a></b>(java.lang.String, java.lang.Object)</code></td><td class="colLast"><i>No Description</i></td>
                        </tr>
                        <tr class="altColor">
                            <td class="colFirst"><code>java.lang.String</code></td><td class="colOne"><code><b><a href="format2.fn.html">format2</a></b>(java.lang.String, java.lang.Object, java.lang.Object)</code></td><td class="colLast"><i>No Description</i></td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colFirst"><code>java.lang.String</code></td><td class="colOne"><code><b><a href="format3.fn.html">format3</a></b>(java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object)</code></td><td class="colLast"><i>No Description</i></td>
                        </tr>
                        <tr class="altColor">
                            <td class="colFirst"><code>java.lang.String</code></td><td class="colOne"><code><b><a href="format4.fn.html">format4</a></b>(java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)</code></td><td class="colLast"><i>No Description</i></td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colFirst"><code>java.lang.String</code></td><td class="colOne"><code><b><a href="format5.fn.html">format5</a></b>(java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)</code></td><td class="colLast"><i>No Description</i></td>
                        </tr>
                        <tr class="altColor">
                            <td class="colFirst"><code>java.lang.String</code></td><td class="colOne"><code><b><a href="format6.fn.html">format6</a></b>(java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)</code></td><td class="colLast"><i>No Description</i></td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colFirst"><code>java.lang.String</code></td><td class="colOne"><code><b><a href="format7.fn.html">format7</a></b>(java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)</code></td><td class="colLast"><i>No Description</i></td>
                        </tr>
                        <tr class="altColor">
                            <td class="colFirst"><code>java.lang.String</code></td><td class="colOne"><code><b><a href="format8.fn.html">format8</a></b>(java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)</code></td><td class="colLast"><i>No Description</i></td>
                        </tr>
                        <tr class="rowColor">
                            <td class="colFirst"><code>java.lang.String</code></td><td class="colOne"><code><b><a href="format9.fn.html">format9</a></b>(java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)</code></td><td class="colLast"><i>No Description</i></td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
        <div class="bottomNav">
            <a name="navbar_bottom"></a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"></a>
            <ul class="navList" title="Navigation">
                <li>
                    <a href="../overview-summary.html">Overview</a>
                </li>
                <li class="navBarCell1Rev">Library</li>
                <li>Tag</li>
                <li>
                    <a href="../help-doc.html">Help</a>
                </li>
            </ul>
        </div>
        <div class="subNav">
            <ul class="navList">
                <li>
                    <a target="_top" href="../index.html?tc/tld-summary.html">
									Frames
								</a>
                </li>
                <li>
                    <a href="tld-summary.html" target="_top">No Frames</a>
                </li>
            </ul>
            <ul class="navList" id="alltags_navbar_bottom">
                <li>
                    <a href="../alltags-noframe.html">All Tags</a>
                </li>
            </ul>
            <script type="text/javascript">
							document.getElementById("alltags_navbar_bottom").style.display = (window == top) ? "block" : "none";
						</script><a name="skip-navbar_bottom"></a>
        </div>
        <p class="about">
            Output generated by <a href="http://vdldoc.omnifaces.org" target="_blank">Vdldoc</a> View Declaration Language Documentation Generator.
        </p>
    </body>
</html>
