
<h1>
    Input Control Arquitecture
</h1>

<p>
    C1 MVC's input controls are composed of standard HTML elements.
    Many have an inner input element where the user can type,
    buttons used to show drop-down editors, or clickable/seletable
    areas.
</p>
<p>
    All C1 MVC input controls were designed to make data-entry easy
    and effective by providing early validation whenever possible.
    Users cannot, for example, clear the content of any controls if
    the <b>isRequired</b> property is set to true, or type
    alphabetical characters in numeric input controls.
</p>
<p>
    Most of C1 MVC's input controls have a set of common properties
    that reflect basic HTML attributes:
</p>
<ul>
    <li>isRequired <span class="detail">"required" attribute</span></li>
    <li>isDisabled <span class="detail">"disabled" attribute</span></li>
</ul>
<p>
    The "is" prefix prevents conflicts in markup between the names
    of control properties and HTML attributes.
</p>

<p>
    Input controls based on HTML input elements have more properties
    in common:
</p>
<ul>
    <li>inputElement <span class="detail">reference to the inner input element</span></li>
    <li>isReadOnly <span class="detail">"readonly" attribute</span></li>
    <li>text <span class="detail">formatted value</span></li>
    <li>value <span class="detail">parsed text</span></li>
    <li>format <span class="detail">format used to convert between text and value</span></li>
</ul>

<p>
    And controls used to input numbers, dates, and times have the
    folowing properties in common:
</p>
<ul>
    <li>min <span class="detail">minimum value</span></li>
    <li>max <span class="detail">maximum value</span></li>
    <li>step <span class="detail">increment applied with mouse wheel or spinner buttons</span></li>
</ul>