<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 15103 -->
<!-- Reviewed: no -->
<sect2 id="zend.dojo.form.elements">
    <title>Elementos de Formularios Dijit-Specific</title>

    <para>
        Cada formulario dijit para el que se provee un ayudante tiene un 
        elemento correspondiente <classname>Zend_Form</classname>. 
        Todos ellos tienen los siguientes métodos disponibles para manipular 
        los parámetros dijit:
    </para>

    <itemizedlist>
        <listitem><para>
                <methodname>setDijitParam($key, $value)</methodname>: establecer un único 
                parámetro dijit. Si el parámetro dijit ya existe, se borrará y 
                se reemplazará por el nuevo.
        </para></listitem>

        <listitem><para>
                <methodname>setDijitParams(array $params)</methodname>: establecer varios 
                parámetros dijit a la vez. Cualquiera de los  parámetros pasados 
                que concuerden con los ya presentes se sobreescribirán. 
        </para></listitem>

        <listitem><para>
                <methodname>hasDijitParam($key)</methodname>: si un determinado parámetro 
                dijit está definido y presente, devolverá TRUE, de lo contrario 
                devolverá FALSE.
        </para></listitem>

        <listitem><para>
                <methodname>getDijitParam($key)</methodname>: recupera el parámetro dijit. 
                Si no está disponible, se devuelve un valor null.
        </para></listitem>

        <listitem><para>
                <methodname>getDijitParams()</methodname>: recupera todos los parámetros 
                dijit.
        </para></listitem>

        <listitem><para>
                <methodname>removeDijitParam($key)</methodname>: elimina el parámetro 
                dijit dado.
        </para></listitem>

        <listitem><para>
                <methodname>clearDijitParams()</methodname>: borra todos los parámetros 
                dijit actualmente definidos. 
        </para></listitem>
    </itemizedlist>

    <para>
        Los parámetros Dijit se almacenan en la propiedad pública 
        <methodname>dijitParams</methodname>. Así, puede habilitar dijit para un elemento 
        de un formulario existente simplemente estableciendo esta propiedad 
        en el elemento; sencillamante no tendrá los accessors anteriores a fin 
        de facilitar la manipulación de parámetros.
    </para>

    <para>
        Además, los elementos específicos de dijit implementan una lista 
        diferente de decoradores, correspondientes a lo siguiente:
    </para>

     <programlisting language="php"><![CDATA[
$element->addDecorator('DijitElement')
        ->addDecorator('Errors')
        ->addDecorator('HtmlTag', array('tag' => 'dd'))
        ->addDecorator('Label', array('tag' => 'dt'));
]]></programlisting>

    <para>
        En efecto, el decorador DijitElement es utilizado en lugar del 
        decorador standard ViewHelper.
    </para>

    <para>
        Finalmente, el elemento base Dijit asegura que el path del ayudante de 
        vista de Dojo se establezca en la vista.
    </para>

    <para>
        Una variante de DijitElement, DijitMulti, ofrece la funcionalidad del  
        elemento abstracto del formulario <methodname>Multi</methodname>, permitiendo al  
        desarrollador especificar 'multiOptions' -- típicamente opciones 
        "select" u opciones de "radio".
    </para>

    <para>
        Los siguientes elementos dijit están incluídos en la distribución 
        standard de Zend Framework.
    </para>

    <sect3 id="zend.dojo.form.elements.button">
        <title>Button</title>

        <para>
            Si bien no derivan del elemento standard Button <link
                linkend="zend.form.standardElements.button"></link>, implementan  
            la misma funcionalidad, y pueden ser utilizados como una sustitución 
            de drop-in, como se expone en la siguiente funcionalidad:
        </para>

        <itemizedlist>
            <listitem><para>
                <methodname>getLabel()</methodname> utilizará el nombre del elemento como el 
                rótulo del botón si no se ha provisto el nombre. 
                Además, traducirá el nombre si un adaptador de traducción 
                encuentra concordancia con un mensaje disponible.
            </para></listitem>

            <listitem><para>
                <methodname>isChecked()</methodname> determina si el valor enviado  
                coincide con la etiqueta; si así fuera, devuelve true. 
                Esto es útil para determinar qué botón se utilizó cuando se  
                envió un formulario.
            </para></listitem>
        </itemizedlist>

        <para>
            Además, sólo los decoradores <methodname>DijitElement</methodname> y
            <methodname>DtDdWrapper</methodname> se utilizan para elementos Button.
        </para>

        <example id="zend.dojo.form.elements.button.example">
            <title>Ejemplo de Uso del Elemento Button dijit</title>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'Button',
    'foo',
    array(
        'label' => 'Button Label',
    )
);
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.checkBox">
        <title>CheckBox</title>

        <para>
            Si bien no derivan del elemento standard Checkbox <link
                linkend="zend.form.standardElements.checkbox"></link>, 
            aplican la misma funcionalidad. Esto significa exponer los 
            siguientes métodos:
        </para>

        <itemizedlist>
            <listitem><para>
                <methodname>setCheckedValue($value)</methodname>: establecer el valor a usar 
                cuando el elemento está marcado (checked).
            </para></listitem>

            <listitem><para>
                <methodname>getCheckedValue()</methodname>: obtener el valor del item a 
                usar cuando está comprobado (checked).
            </para></listitem>

            <listitem><para>
                <methodname>setUncheckedValue($value)</methodname>: establecer el valor del 
                item a utilizar cuando está desactivado (unchecked).
            </para></listitem>

            <listitem><para>
                <methodname>getUncheckedValue()</methodname>: obtener el valor del 
                item a utilizar cuando está desactivado (unchecked).
            </para></listitem>

            <listitem><para>
                <methodname>setChecked($flag)</methodname>: marcar el elemento como 
                activado (checked) o desactivado (unchecked).
            </para></listitem>

            <listitem><para>
                <methodname>isChecked()</methodname>: determina si el elemento está 
                activo (checked) actualmente.
            </para></listitem>
        </itemizedlist>

        <example id="zend.dojo.form.elements.checkBox.example">
            <title>Ejemplo de Uso de Elementos CheckBox dijit</title>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'CheckBox',
    'foo',
    array(
        'label'          => 'A check box',
        'checkedValue'   => 'foo',
        'uncheckedValue' => 'bar',
        'checked'        => true,
    )
);
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.comboBox">
        <title>ComboBox y FilteringSelect</title>

        <para>
            Como se señaló en la documentación del ayudante de vista de 
            ComboBox dijit <link
                linkend="zend.dojo.view.dijit.form"></link>, los ComboBoxes 
            son un híbrido entre "select" y "text input", permitiendo el 
            autocompletado y la capacidad para especificar una alternativa a las 
            opciones provistas. 
            FilteringSelects es lo mismo, pero no permite entradas arbitrarias.
        </para>

        <note>
            <title>ComboBoxes que Devuelven los Valores de los Labels</title>

            <para>
                Los ComboBoxes devuelven los valores de los rótulos (labels), 
                y no los valores de opción, que pueden llevar a una 
                desvinculación de las expectativas. 
                Por esta razón, los ComboBoxes no auto-registran un validador 
                <methodname>InArray</methodname> (aunque los FilteringSelects si lo hacen).
            </para>
        </note>

        <para>
            Los elementos de forms de ComboBox y FilteringSelect proporcionan 
            accessors y mutators para examinar y establecer las opciones 
            seleccionadas, así como para especificar un datastore dojo.data 
            (si se usa). Se extienden desde DijitMulti, que le permite 
            especificar opciones de selección vía los métodos 
            <methodname>setMultiOptions()</methodname> y <methodname>setMultiOption()</methodname>.
            Además, están disponibles los siguientes métodos:
        </para>

        <itemizedlist>
            <listitem><para>
                <methodname>getStoreInfo()</methodname>: Obtener del datastore toda la 
                información establecida actualmente. 
                Devuelve un array vacío si no hay datos actualmente establecidos.
            </para></listitem>

            <listitem><para>
                <methodname>setStoreId($identifier)</methodname>: establece la variable del 
                identificador (generalmente referenciado por el atributo 
                'jsId' en Dojo). 
                Este debe ser un nombre de variable válido para javascript.
            </para></listitem>

            <listitem><para>
                <methodname>getStoreId()</methodname>: recupera el nombre de la variable del 
                identificador del datastore.
            </para></listitem>

            <listitem><para>
                <methodname>setStoreType($dojoType)</methodname>: establece la clase del 
                datastore a usar; por ejemplo, "dojo.data.ItemFileReadStore".
            </para></listitem>

            <listitem><para>
                <methodname>getStoreType()</methodname>: obtiene la clase del datastore a 
                usar.
            </para></listitem>

            <listitem><para>
                <methodname>setStoreParams(array $params)</methodname>: establece cualquiera 
                de los parámetros utilizados para configurar el objeto datastore. 
                Como ejemplo, el datastore dojo.data.ItemFileReadStore esperaría 
                un parámetro 'url' apuntando a un lugar que devolvería el objeto 
                dojo.data.
            </para></listitem>

            <listitem><para>
                <methodname>getStoreParams()</methodname>: obtiene cualquiera de los 
                parámetros del datastore actualmente establecido; si no hay 
                ninguno, se devuelve un array vacío.
            </para></listitem>

            <listitem><para>
                <methodname>setAutocomplete($flag)</methodname>: indica si será usado o no  
                el elemento seleccionado una vez que el usuario deje el 
                elemento.
            </para></listitem>

            <listitem><para>
                <methodname>getAutocomplete()</methodname>: obtener el valor del flag de 
                autocomplete.
            </para></listitem>
        </itemizedlist>

        <para>
            Por defecto, si no hay ningún dojo.data registrado con el 
            elemento, este elemento registra un validador <methodname>InArray</methodname> 
            que valida contra las claves del array de las opciones registradas. 
            Puede desactivar este comportamiento ya sea llamando a 
            <methodname>setRegisterInArrayValidator(false)</methodname>, o pasando un valor 
            false a la clave de configuración <methodname>registerInArrayValidator</methodname>.
        </para>

        <example id="zend.dojo.form.elements.comboBox.selectExample">
            <title>Elemento de ComboBox dijit Usado como select input</title>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'ComboBox',
    'foo',
    array(
        'label'        => 'ComboBox (select)',
        'value'        => 'blue',
        'autocomplete' => false,
        'multiOptions' => array(
            'red'    => 'Rouge',
            'blue'   => 'Bleu',
            'white'  => 'Blanc',
            'orange' => 'Orange',
            'black'  => 'Noir',
            'green'  => 'Vert',
        ),
    )
);
]]></programlisting>
        </example>

        <example id="zend.dojo.form.elements.comboBox.datastoreExample">
            <title>Elemento de ComboBox dijit Usado con datastore</title>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'ComboBox',
    'foo',
    array(
        'label'       => 'ComboBox (datastore)',
        'storeId'     => 'stateStore',
        'storeType'   => 'dojo.data.ItemFileReadStore',
        'storeParams' => array(
            'url' => '/js/states.txt',
        ),
        'dijitParams' => array(
            'searchAttr' => 'name',
        ),
    )
);
]]></programlisting>
        </example>

        <para>
            Los ejemplos anteriores también podrían utilizar 
            <methodname>FilteringSelect</methodname> en vez de <methodname>ComboBox</methodname>.
        </para>
    </sect3>

    <sect3 id="zend.dojo.form.elements.currencyTextBox">
        <title>CurrencyTextBox</title>

        <para>
            El CurrencyTextBox principalmente brinda apoyo a la entrada de 
            moneda. La moneda puede ser localizada, y puede manejar tanto a 
            valores fraccionarios como no fraccionarios.
        </para>

        <para>
            Internamente, CurrencyTextBox deriva de <link
                linkend="zend.dojo.form.elements.numberTextBox">NumberTextBox</link>,
            <link
                linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link>,
            y <link linkend="zend.dojo.form.elements.textBox">TextBox</link>;
            todos los métodos disponibles a esas clases están disponibles. 
            Además, pueden utilizarse los siguientes métodos restrictivos:
        </para>

        <itemizedlist>
            <listitem><para>
                <methodname>setCurrency($currency)</methodname>: establecer el tipo de 
                moneda a usar; y debe seguir la especificación <ulink
                    url="http://en.wikipedia.org/wiki/ISO_4217">ISO-4217</ulink>
            </para></listitem>

            <listitem><para>
                <methodname>getCurrency()</methodname>: recupera el tipo de moneda actual.
            </para></listitem>

            <listitem><para>
                <methodname>setSymbol($symbol)</methodname>: establece el símbolo de 
                3 letras <ulink
                    url="http://en.wikipedia.org/wiki/ISO_4217">ISO-4217</ulink>
                de la moneda a usar.
            </para></listitem>

            <listitem><para>
                <methodname>getSymbol()</methodname>: recupera el símbolo de la moneda actual.
            </para></listitem>

            <listitem><para>
                <methodname>setFractional($flag)</methodname>: establece si la moneda 
                debería permitir o no valores fraccionarios.
            </para></listitem>

            <listitem><para>
                <methodname>getFractional()</methodname>: recupera el status del flag 
                fraccional.
            </para></listitem>
        </itemizedlist>

        <example id="zend.dojo.form.elements.currencyTextBox.example">
            <title>Ejemplo de Uso del Elemento CurrencyTextBox dijit</title>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'CurrencyTextBox',
    'foo',
    array(
        'label'          => 'Currency:',
        'required'       => true,
        'currency'       => 'USD',
        'invalidMessage' => 'Invalid amount. ' .
                            'Include dollar sign, commas, and cents.',
        'fractional'     => false,
    )
);
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.dateTextBox">
        <title>DateTextBox</title>

        <para>
            DateTextBox establece un calendario desplegable (drop-down) para 
            seleccionar una fecha, así como validación y formateo de fechas del 
            lado del clente.
        </para>

        <para>
            Internamente, DateTextBox deriva de <link
                linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link>
            y <link linkend="zend.dojo.form.elements.textBox">TextBox</link>;
            todos los métodos disponibles a esas clases están disponibles. 
            Además, los siguientes métodos pueden utilizarse para establecer 
            restricciones individuales:
        </para>

        <itemizedlist>
            <listitem><para>
                <methodname>setAmPm($flag)</methodname> y <methodname>getAmPm()</methodname>: Cuándo 
                usar o no los strings AM/PM en los fortmatos de horas.
            </para></listitem>

            <listitem><para>
                <methodname>setStrict($flag)</methodname> y <methodname>getStrict()</methodname>:
                Cuándo usar o no el matching para una expresión regular estricta 
                al validar la entrada. Si es falso, que es el valor por defecto, 
                será indulgente sobre espacios en blanco y algunas abreviaturas.
            </para></listitem>

            <listitem><para>
                <methodname>setLocale($locale)</methodname> y <methodname>getLocale()</methodname>:
                Establece y recupera la localidad a utilizar con este elemento 
                específico.
            </para></listitem>

            <listitem><para>
                <methodname>setDatePattern($pattern)</methodname> y
                <methodname>getDatePattern()</methodname>: provee y recupera el <ulink
                    url="http://www.unicode.org/reports/tr35/#Date_Format_Patterns"> patrón
                    de formato de fechas unicode</ulink> para el formateo de 
                    fechas.
            </para></listitem>

            <listitem><para>
                <methodname>setFormatLength($formatLength)</methodname> y
                <methodname>getFormatLength()</methodname>: proporciona y recupera la 
                longitud del tipo de formato a usar; debe ser uno de los 
                siguientes: "long", "short", "medium" o "full".
            </para></listitem>

            <listitem><para>
                <methodname>setSelector($selector)</methodname> y
                <methodname>getSelector()</methodname>: proporciona y recupera el estilo del 
                selector; debe ser "date" o "time".
            </para></listitem>
        </itemizedlist>

        <example id="zend.dojo.form.elements.dateTextBox.example">
            <title>Ejemplo de Uso del Elemento DateTextBox dijit</title>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'DateTextBox',
    'foo',
    array(
        'label'          => 'Date:',
        'required'       => true,
        'invalidMessage' => 'Invalid date specified.',
        'formatLength'   => 'long',
    )
);
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.editor">
        <title>Editor</title>

        <para>
            Editor proporciona un editor WYSIWYG que puede ser utilizado tanto 
            para crear como para editar contenidos HTML ricos. 
            dijit.Editor es pluggable y podrá ampliarse con plugins 
            personalizados si lo desea; para más detalles vea en 
            <ulink url="http://dojotoolkit.org/book/dojo-book-0-9/part-2-dijit/advanced-editing-and-display/editor-rich-text">  
            la documentación de dijit.Editor</ulink>.
        </para>

        <para>
            El elemento form de Editor proporciona un número de accessors y 
            mutators para manipular diversos parámetros dijit, tal como sigue:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>captureEvents</emphasis> son eventos que se 
                    conectan al área de edición en si. 
                    Los siguientes accessors y mutators están disponibles para 
                    manipular la captura de eventos:
                </para>

                <itemizedlist>
                    <listitem><para><methodname>addCaptureEvent($event)</methodname></para></listitem>
                    <listitem><para><methodname>addCaptureEvents(array $events)</methodname></para></listitem>
                    <listitem><para><methodname>setCaptureEvents(array $events)</methodname></para></listitem>
                    <listitem><para><methodname>getCaptureEvents()</methodname></para></listitem>
                    <listitem><para><methodname>hasCaptureEvent($event)</methodname></para></listitem>
                    <listitem><para><methodname>removeCaptureEvent($event)</methodname></para></listitem>
                    <listitem><para><methodname>clearCaptureEvents()</methodname></para></listitem>
                </itemizedlist>
            </listitem>

            <listitem>
                <para>
                    <emphasis>events</emphasis> son eventos DOM estándar, como 
                    onClick, onKeyup, etc. Los siguientes accessors y mutators 
                    están disponibles para manipular eventos:
                </para>

                <itemizedlist>
                    <listitem><para><methodname>addEvent($event)</methodname></para></listitem>
                    <listitem><para><methodname>addEvents(array $events)</methodname></para></listitem>
                    <listitem><para><methodname>setEvents(array $events)</methodname></para></listitem>
                    <listitem><para><methodname>getEvents()</methodname></para></listitem>
                    <listitem><para><methodname>hasEvent($event)</methodname></para></listitem>
                    <listitem><para><methodname>removeEvent($event)</methodname></para></listitem>
                    <listitem><para><methodname>clearEvents()</methodname></para></listitem>
                </itemizedlist>
            </listitem>

            <listitem>
                <para>
                    <emphasis>plugins</emphasis> añaden funcionalidad al Editor 
                    -- herramientas adicionales para la barra de herramientas, 
                    estilos adicionales a permitir, etc. 
                    Los siguientes accessors y mutators están disponibles para 
                    manipular plugins:
                </para>

                <itemizedlist>
                    <listitem><para><methodname>addPlugin($plugin)</methodname></para></listitem>
                    <listitem><para><methodname>addPlugins(array $plugins)</methodname></para></listitem>
                    <listitem><para><methodname>setPlugins(array $plugins)</methodname></para></listitem>
                    <listitem><para><methodname>getPlugins()</methodname></para></listitem>
                    <listitem><para><methodname>hasPlugin($plugin)</methodname></para></listitem>
                    <listitem><para><methodname>removePlugin($plugin)</methodname></para></listitem>
                    <listitem><para><methodname>clearPlugins()</methodname></para></listitem>
                </itemizedlist>
            </listitem>

            <listitem>
                <para>
                    <emphasis>editActionInterval</emphasis> se utiliza para 
                    agrupar eventos para deshacer operaciones. Por defecto, 
                    este valor es de 3 segundos. El método 
                    <methodname>setEditActionInterval($interval)</methodname> puede ser 
                    usado para establecer el valor, mientras que 
                    <methodname>getEditActionInterval()</methodname> lo recuperará.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>focusOnLoad</emphasis> se utiliza para determinar 
                    si este editor en particular recibirá atención cuando la página 
                    se haya cargado. Por defecto, esto es falso. El método
                    <methodname>setFocusOnLoad($flag)</methodname> puede usarse para 
                    establecer el valor, mientras que <methodname>getFocusOnLoad()</methodname>
                    lo recuperará.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>height</emphasis> especifica la altura del editor; 
                    por defecto, es de 300px. El método 
                    <methodname>setHeight($height)</methodname> puede ser utilizado para 
                    establecer el valor, mientras que <methodname>getHeight()</methodname> 
                    lo recupera.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>inheritWidth</emphasis> se utiliza para determinar 
                    si el editor utilizará el ancho del contenedor padre o 
                    simplemente toma por defecto el 100% del ancho. 
                    Por defecto, esto es falso (es decir, llenará el ancho de la 
                    ventana). El método <methodname>setInheritWidth($flag)</methodname> 
                    puede ser utilizado para establecer el valor, mientras que 
                    <methodname>getInheritWidth()</methodname> lo recuperará.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>minHeight</emphasis> indica la altura mínima del 
                    editor; por defecto, es de 1em. El método 
                    <methodname>setMinHeight($height)</methodname> puede ser utilizado para 
                    establecer el valor, mientras que <methodname>getMinHeight()</methodname> 
                    lo recuperará.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>styleSheets</emphasis> indica qué otras hojas de 
                    estilo CSS deberían ser utilizadas para incidir sobre la 
                    pantalla del Editor. Por defecto, ninguna está registrada, 
                    y hereda la página de estilos. Los siguientes accessors 
                    y mutators están disponibles para manipular al editor de 
                    hojas de estilo (stylesheets):
                </para>

                <itemizedlist>
                    <listitem><para><methodname>addStyleSheet($styleSheet)</methodname></para></listitem>
                    <listitem><para><methodname>addStyleSheets(array $styleSheets)</methodname></para></listitem>
                    <listitem><para><methodname>setStyleSheets(array $styleSheets)</methodname></para></listitem>
                    <listitem><para><methodname>getStyleSheets()</methodname></para></listitem>
                    <listitem><para><methodname>hasStyleSheet($styleSheet)</methodname></para></listitem>
                    <listitem><para><methodname>removeStyleSheet($styleSheet)</methodname></para></listitem>
                    <listitem><para><methodname>clearStyleSheets()</methodname></para></listitem>
                </itemizedlist>
            </listitem>
        </itemizedlist>

        <example id="zend.dojo.form.elements.editor.example">
            <title>Ejemplo de Uso del Elemento Editor dijit</title>

             <programlisting language="php"><![CDATA[
$form->addElement('editor', 'content', array(
    'plugins'            => array('undo', '|', 'bold', 'italic'),
    'editActionInterval' => 2,
    'focusOnLoad'        => true,
    'height'             => '250px',
    'inheritWidth'       => true,
    'styleSheets'        => array('/js/custom/editor.css'),
));]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.horizontalSlider">
        <title>HorizontalSlider</title>

        <para>
            HorizontalSlider proporciona un widget deslizador de UI para 
            seleccionar un valor numérico dentro de un rango. 
            Internamente, establece el valor de un elemento oculto que es 
            enviado por el formulario.
        </para>

        <para>
            HorizontalSlider proviene del elemento abstracto <link
                linkend="zend.dojo.form.elements.slider">Slider dijit</link>. 
            Además, tiene una variedad de métodos de ajuste y configuración 
            de reglas deslizantes y etiquetas para esas reglas.
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <methodname>setTopDecorationDijit($dijit)</methodname> y
                    <methodname>setBottomDecorationDijit($dijit)</methodname>: establecen el 
                    nombre de la dijit a utilizar bien para la parte superior o 
                    inferior de la barra deslizante. 
                    Esto no debería incluir el prefijo "dijit.form.", 
                    sino sólo el último nombre -- "HorizontalRule" o 
                    "HorizontalRuleLabels".
                </para>
            </listitem>

            <listitem>
                <para>
                    <methodname>setTopDecorationContainer($container)</methodname> y
                    <methodname>setBottomDecorationContainer($container)</methodname>:
                    especifican el nombre a utilizar para el elemento 
                    contenedor de las reglas; por ejemplo 'Toprule', 
                    'topContainer', etc.
                </para>
            </listitem>

            <listitem>
                <para>
                    <methodname>setTopDecorationLabels(array $labels)</methodname> y
                    <methodname>setBottomDecorationLabels(array $labels)</methodname>: 
                    establecen las etiquetas a usar por uno de los tipos 
                    RuleLabels dijit. Debe ser un array indexado; especificar un 
                    único espacio vacío para saltar a la posición de una  
                    determinada etiqueta (como ser al comienzo o al final).
                </para>
            </listitem>

            <listitem>
                <para>
                    <methodname>setTopDecorationParams(array $params)</methodname> y
                    <methodname>setBottomDecorationParams(array $params)</methodname>:
                    parámetros dijit para utilizar al configurar la Regla o 
                    RuleLabels dijit.
                </para>
            </listitem>

            <listitem>
                <para>
                    <methodname>setTopDecorationAttribs(array $attribs)</methodname> y
                    <methodname>setBottomDecorationAttribs(array $attribs)</methodname>:
                    atributos HTML para especificar una Regla dada o el 
                    elemento contenedor de HTML RuleLabels.
                </para>
            </listitem>

            <listitem>
                <para>
                    <methodname>getTopDecoration()</methodname> y
                    <methodname>getBottomDecoration()</methodname>: recuperar todos los 
                    metadatos para una determinada Regla o definición de 
                    RuleLabels, tal como han sido provistos por los mutators 
                    anteriores.
                </para>
            </listitem>
        </itemizedlist>

        <example id="zend.dojo.form.elements.horizontalSlider.example">
            <title>Ejemplo de Uso del Elemento HorizontalSlider dijit</title>

            <para>
                Lo siguiente creará un deslizador horizontal de selección con 
                valores enteros que van desde -10 a 10. La parte superior tendrá 
                etiquetas en las marcas del 20%, 40%, 60%, y 80%. 
                La parte inferior será una regla con marcas en el 0, 50%, y 100%. 
                Cada vez que se cambie el valor, el elemento oculto almacenará  
                el valor actualizado.
            </para>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'HorizontalSlider',
    'horizontal',
    array(
        'label'                     => 'HorizontalSlider',
        'value'                     => 5,
        'minimum'                   => -10,
        'maximum'                   => 10,
        'discreteValues'            => 11,
        'intermediateChanges'       => true,
        'showButtons'               => true,
        'topDecorationDijit'        => 'HorizontalRuleLabels',
        'topDecorationContainer'    => 'topContainer',
        'topDecorationLabels'       => array(
                ' ',
                '20%',
                '40%',
                '60%',
                '80%',
                ' ',
        ),
        'topDecorationParams'      => array(
            'container' => array(
                'style' => 'height:1.2em; font-size=75%;color:gray;',
            ),
            'list' => array(
                'style' => 'height:1em; font-size=75%;color:gray;',
            ),
        ),
        'bottomDecorationDijit'     => 'HorizontalRule',
        'bottomDecorationContainer' => 'bottomContainer',
        'bottomDecorationLabels'    => array(
                '0%',
                '50%',
                '100%',
        ),
        'bottomDecorationParams'   => array(
            'list' => array(
                'style' => 'height:1em; font-size=75%;color:gray;',
            ),
        ),
    )
);
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.numberSpinner">
        <title>NumberSpinner</title>

        <para>
            Un número spinner es un elemento de texto para introducir valores 
            numéricos; también incluye elementos de incremento y decremento 
            del valor por una cantidad fija.
        </para>

        <para>
            Se encuentran disponibles los siguientes métodos:
        </para>

        <itemizedlist>
            <listitem><para>
                <methodname>setDefaultTimeout($timeout)</methodname> y
                <methodname>getDefaultTimeout()</methodname>: establece y recupera el 
                tiempo de espera predeterminado en milisegundos, entre cuando 
                el botón se mantiene presionado y cambia el valor.
            </para></listitem>

            <listitem><para>
                <methodname>setTimeoutChangeRate($rate)</methodname> y
                <methodname>getTimeoutChangeRate()</methodname>: establece y recupera la 
                tasa en milisegundos, en la que se harán cambios cuando un botón 
                se mantiene presionado.
            </para></listitem>

            <listitem><para>
                <methodname>setLargeDelta($delta)</methodname> y
                <methodname>getLargeDelta()</methodname>: establece y recupera la cantidad  
                en la que el valor numérico debería cambiar cuando un botón se 
                mantiene presionado.
            </para></listitem>

            <listitem><para>
                <methodname>setSmallDelta($delta)</methodname> y
                <methodname>getSmallDelta()</methodname>: establece y recupera el delta con                
                la que el número debería cambiar cuando se pulsa un botón una vez.
            </para></listitem>

            <listitem><para>
                <methodname>setIntermediateChanges($flag)</methodname> y
                <methodname>getIntermediateChanges()</methodname>: establece y recupera el 
                flag que indica si debe o no ser mostrado cada cambio de valor 
                cuando un botón se mantiene presionado.
            </para></listitem>

            <listitem><para>
                <methodname>setRangeMessage($message)</methodname> y
                <methodname>getRangeMessage()</methodname>: establece y recupera el mensaje 
                indicando el rango de valores disponibles.
            </para></listitem>

            <listitem><para>
                <methodname>setMin($value)</methodname> y <methodname>getMin()</methodname>: 
                establece y recupera el valor mínimo posible.
            </para></listitem>

            <listitem><para>
                <methodname>setMax($value)</methodname> y <methodname>getMax()</methodname>: 
                establece y recupera el valor máximo posible.
            </para></listitem>
        </itemizedlist>

        <example id="zend.dojo.form.elements.numberSpinner.example">
            <title>Ejemplo de Uso del Elemento NumberSpinner dijit</title>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'NumberSpinner',
    'foo',
    array(
        'value'             => '7',
        'label'             => 'NumberSpinner',
        'smallDelta'        => 5,
        'largeDelta'        => 25,
        'defaultTimeout'    => 500,
        'timeoutChangeRate' => 100,
        'min'               => 9,
        'max'               => 1550,
        'places'            => 0,
        'maxlength'         => 20,
    )
);
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.numberTextBox">
        <title>NumberTextBox</title>

        <para>
            Un cuadro de texto numérico es un elemento de texto de introducción 
            de valores numéricos; a diferencia de NumberSpinner, se introducen 
            manualmente. Se pueden proporcionar validaciones y restricciones para  
            garantizar que el número permanece en un rango o formato particular.
        </para>

        <para>
            Internmente, NumberTextBox proviene de <link
                linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link>
            y <link linkend="zend.dojo.form.elements.textBox">TextBox</link>;
            todos los métodos disponibles a esas clases están disponibles. 
            Además, los siguientes métodos pueden utilizarse para establecer 
            restricciones individuales:
        </para>

        <itemizedlist>
            <listitem><para>
                <methodname>setLocale($locale)</methodname> y <methodname>getLocale()</methodname>:
                especifica y recupera un "locale" determinado o alternativo para 
                usar con este dijit.
            </para></listitem>

            <listitem><para>
                <methodname>setPattern($pattern)</methodname> y
                <methodname>getPattern()</methodname>: establece y recupera un <ulink
                    url="http://www.unicode.org/reports/tr35/#Number_Format_Patterns"> 
                    patrón de formato numérico </ulink> a usar en el formateo de 
                    números.
            </para></listitem>

            <listitem><para>
                <methodname>setType($type)</methodname> y <methodname>getType()</methodname>: 
                establece y recupera el tipo de formato numérico a utilizar 
                (deberán ser uno de 'decimal', 'percent', o 'currency').
            </para></listitem>

            <listitem><para>
                <methodname>setPlaces($places)</methodname> y <methodname>getPlaces()</methodname>:
                establece y recupera el número de decimales que soportará.
            </para></listitem>

            <listitem><para>
                <methodname>setStrict($flag)</methodname> y <methodname>getStrict()</methodname>: 
                establece y recupera el valor estricto del flag, que indica 
                cuánta indulgencia es permitida en relación con espacios en 
                blanco y con caracteres no numéricos.
            </para></listitem>
        </itemizedlist>

        <example id="zend.dojo.form.elements.numberTextBox.example">
            <title>Ejemplo de Uso del Elemento NumberTextBox dijit</title>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'NumberTextBox',
    'elevation',
    array(
        'label'          => 'NumberTextBox',
        'required'       => true,
        'invalidMessage' => 'Invalid elevation.',
        'places'         => 0,
        'constraints'    => array(
            'min'    => -20000,
            'max'    => 20000,
        ),
    )
);
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.passwordTextBox">
        <title>PasswordTextBox</title>

        <para>
            PasswordTextBox es simplemente un ValidationTextBox que está ligado 
            a una contraseña; su único objetivo es permitir la entrada de texto 
            de contraseñas de dijit que también proporciona validación del 
            lado del cliente.
        </para>

        <para>
            Internmente, NumberTextBox proviene de <link
                linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link>
            y <link linkend="zend.dojo.form.elements.textBox">TextBox</link>;
            todos los métodos disponibles a esas clases están disponibles.
        </para>

        <example id="zend.dojo.form.elements.passwordTextBox.example">
            <title>Ejemplo de Uso del Elemento PasswordTextBox dijit</title>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'PasswordTextBox',
    'password',
    array(
        'label'          => 'Password',
        'required'       => true,
        'trim'           => true,
        'lowercase'      => true,
        'regExp'         => '^[a-z0-9]{6,}$',
        'invalidMessage' => 'Invalid password; ' .
                            'must be at least 6 alphanumeric characters',
    )
);
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.radioButton">
        <title>RadioButton</title>

        <para>
            RadioButton envuelve a elementos standard de entrada tipo radio para 
            brindar un look-and-feel consistente con otros dojo dijits.
        </para>

        <para>
            RadioButton se extiende desde DijitMulti, que le permite especificar 
            la selección de opciones vía los métodos 
            <methodname>setMultiOptions()</methodname> y <methodname>setMultiOption()</methodname>.
        </para>

        <para>
            Por defecto, este elemento registra un validador <methodname>InArray</methodname> 
            que valida contra las calves del array de las opciones registradas. 
            Puede desactivar este comportamiento ya sea llamando a 
            <methodname>setRegisterInArrayValidator(false)</methodname>, o pasando un valor 
            falso a la clave de configuración <methodname>registerInArrayValidator</methodname>.
        </para>

        <example id="zend.dojo.form.elements.radioButton.example">
            <title>Ejemplo de Uso del Elemento RadioButton dijit</title>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'RadioButton',
    'foo',
    array(
        'label' => 'RadioButton',
        'multiOptions'  => array(
            'foo' => 'Foo',
            'bar' => 'Bar',
            'baz' => 'Baz',
        ),
        'value' => 'bar',
    )
);
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.simpletextarea">
        <title>SimpleTextarea</title>

        <para>
            SimpleTextarea actúa principalmente como un textarea estándar de HTML. 
            Sin embargo, no permite establecer filas ni columnas. 
            En su lugar, el ancho de textarea debe especificarse utilizando 
            medidas CSS estándar. A diferencia de Textarea, esta no aumentará 
            automáticamente.
        </para>

        <example id="zend.dojo.form.elements.simpletextarea.example">
            <title>Ejemplo de Uso del Elemento SimpleTextarea dijit</title>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'SimpleTextarea',
    'simpletextarea',
    array(
        'label'    => 'SimpleTextarea',
        'required' => true,
        'style'    => 'width: 80em; height: 25em;',
    )
);
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.slider">
        <title>Elemento abstracto Slider</title>

        <para>
            Slider es un elemento abstracto que proviene de ambos  
            <link linkend="zend.dojo.form.elements.horizontalSlider">HorizontalSlider</link>
            y
            <link linkend="zend.dojo.form.elements.verticalSlider">VerticalSlider</link>. 
            Expone una serie de métodos comunes para configurar sus deslizadores, 
            incluyendo a:
        </para>

        <itemizedlist>
            <listitem><para>
                <methodname>setClickSelect($flag)</methodname> y
                <methodname>getClickSelect()</methodname>: establece y recupera el flag 
                que indica cuando al presionar el botón deslizante cambia o no 
                el valor.
            </para></listitem>

            <listitem><para>
                <methodname>setIntermediateChanges($flag)</methodname> y
                <methodname>getIntermediateChanges()</methodname>: establece y recupera el 
                flag que indica si dijit enviará o no una notificación sobre 
                cada evento de cambio del deslizador.
            </para></listitem>

            <listitem><para>
                <methodname>setShowButtons($flag)</methodname> y
                <methodname>getShowButtons()</methodname>: establece y recupera el flag que  
                indica si los botones de uno u otro extremo se mostrarán o no; 
                si es así, el usuario puede hacer clic sobre éstos para cambiar 
                el valor de la barra deslizante.
            </para></listitem>

            <listitem><para>
                <methodname>setDiscreteValues($value)</methodname> y
                <methodname>getDiscreteValues()</methodname>: establece y recupera el número 
                de valores discretos representados por el deslizador.
            </para></listitem>

            <listitem><para>
                <methodname>setMaximum($value)</methodname> y <methodname>getMaximum()</methodname>:
                establece y recupera el valor máximo del deslizador.
            </para></listitem>

            <listitem><para>
                <methodname>setMinimum($value)</methodname> y <methodname>getMinimum()</methodname>:
                establece y recupera el valor mínimo del deslizador.
            </para></listitem>

            <listitem><para>
                <methodname>setPageIncrement($value)</methodname> y
                <methodname>getPageIncrement()</methodname>: establece la cantidad en que  
                cambiará el deslizador por eventos del teclado.</para>
                </listitem>
        </itemizedlist>

        <para>
            Ejemplos de uso provistos con cada clase extendida concretamente.
        </para>
    </sect3>

    <sect3 id="zend.dojo.form.elements.submitButton">
        <title>SubmitButton</title>

        <para>
            Si bien no hay Dijit llamado SubmitButton, incluimos uno aquí para 
            proporcionar un botón dijit capaz de enviar un formulario sin que se 
            exijan ligaduras con javascript. 
            Funciona exactamente igual que el  
            <link linkend="zend.dojo.form.elements.button">Button dijit</link>.
        </para>

        <example id="zend.dojo.form.elements.submitButton.example">
            <title>Ejemplo de Uso del Elemento SubmitButton dijit</title>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'SubmitButton',
    'foo',
    array(
        'required'   => false,
        'ignore'     => true,
        'label'      => 'Submit Button!',
    )
);
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.textBox">
        <title>TextBox</title>

        <para>
            Textbox se incluyó principalmente para proporcionar una entrada de 
            texto con apariencia coherente y con el look-and-feel de los demás dijits. 
            Sin embargo, también incluye algunas pequeñas capacidades de 
            filtrado y validación, representadas en los métodos siguientes:
        </para>

        <itemizedlist>
            <listitem><para>
                <methodname>setLowercase($flag)</methodname> y
                <methodname>getLowercase()</methodname>: establece y recupera el flag que 
                indica si la entrada debe o no ser presentada en minúsculas.
            </para></listitem>

            <listitem><para>
                <methodname>setPropercase($flag)</methodname> y
                <methodname>getPropercase()</methodname>: establece y recupera el flag que 
                indica si la entrada debe ser o no ser presentada como Proper 
                Case.
            </para></listitem>

            <listitem><para>
                <methodname>setUppercase($flag)</methodname> y <methodname>getUppercase()</methodname>: 
                establece y recupera el flag que indica si la entrada debe ser 
                presentada como mayúsculas (UPPERCASE).
            </para></listitem>

            <listitem><para>
                <methodname>setTrim($flag)</methodname> y <methodname>getTrim()</methodname>: 
                establece y recupera el flag que indica si los espacios al 
                comienzo o al final deben ser eliminados o no.
            </para></listitem>

            <listitem><para>
                <methodname>setMaxLength($length)</methodname> y
                <methodname>getMaxLength()</methodname>: establece y recupera la longitud 
                máxima del input.
            </para></listitem>
        </itemizedlist>

        <example id="zend.dojo.form.elements.textBox.example">
            <title>Ejemplo de Uso del Elemento TextBox dijit</title>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'TextBox',
    'foo',
    array(
        'value'      => 'some text',
        'label'      => 'TextBox',
        'trim'       => true,
        'propercase' => true,
    )
);
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.textarea">
        <title>Textarea</title>

        <para>
            Textarea actúa principalmente como un textarea estándar de HTML. 
            Sin embargo, no permite establecer filas y columnas. 
            En su lugar, el ancho de la textarea debe especificarse utilizando 
            medidas CSS estándar; las filas debe omitirse totalmente. 
            Luego, la textarea crecerá verticalmente tanto como texto se añada 
            a ella.
        </para>

        <example id="zend.dojo.form.elements.textarea.example">
            <title>Ejemplo de Uso del Elemento Textarea dijit</title>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'Textarea',
    'textarea',
    array(
        'label'    => 'Textarea',
        'required' => true,
        'style'    => 'width: 200px;',
    )
);
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.timeTextBox">
        <title>TimeTextBox</title>

        <para>
            TimeTextBox es una entrada de texto que proporciona una lista 
            desplegable (drop-down) para seleccionar un tiempo (fecha y hora). 
            La lista desplegable, puede ser configurada para mostrar una cierta 
            ventana de tiempo, con incrementos especificados.
        </para>

        <para>
            Internamente, TimeTextBox proviene de <link
                linkend="zend.dojo.form.elements.dateTextBox">DateTextBox</link>,
            <link
                linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link>
            y <link linkend="zend.dojo.form.elements.textBox">TextBox</link>;
            todos los métodos disponibles a esas clases están disponibles. 
            Además, los siguientes métodos pueden utilizarse para establecer 
            restricciones individuales:
        </para>

        <itemizedlist>
            <listitem><para>
                <methodname>setTimePattern($pattern)</methodname> y
                <methodname>getTimePattern()</methodname>: establece y recupera el <ulink
                    url="http://www.unicode.org/reports/tr35/#Date_Format_Patterns">patrón 
                    de formato de fecha y hora unicode</ulink> para el formato 
                    correspondiente.
            </para></listitem>

            <listitem><para>
                <methodname>setClickableIncrement($format)</methodname> y
                <methodname>getClickableIncrement()</methodname>: establece y recupera el 
                string <ulink
                    url="http://en.wikipedia.org/wiki/ISO_8601">ISO-8601</ulink>
                representando la cantidad de tiempo a incrementar cada vez que 
                se recolecta un elemento clickable.
            </para></listitem>

            <listitem><para>
                <methodname>setVisibleIncrement($format)</methodname> y
                <methodname>getVisibleIncrement()</methodname>: establece y recupera el 
                incremento visible en el selector de tiempo; debe seguir los 
                formatos ISO-8601.
            </para></listitem>

            <listitem><para>
                <methodname>setVisibleRange($format)</methodname> y
                <methodname>getVisibleRange()</methodname>: establece y recupera el intervalo 
                de tiempo visible en el selector de tiempo en cualquier momento; 
                debe seguir los formatos ISO-8601.
            </para></listitem>
        </itemizedlist>

        <example id="zend.dojo.form.elements.timeTextBox.example">
            <title>Ejemplo de Uso del Elemento TimeTextBox dijit</title>

            <para>
                Lo siguiente creará un TimeTextBox que muestra 2 horas a la vez, 
                con incrementos de 10 minutos.
            </para>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'TimeTextBox',
    'foo',
    array(
        'label'              => 'TimeTextBox',
        'required'           => true,
        'visibleRange'       => 'T04:00:00',
        'visibleIncrement'   => 'T00:10:00',
        'clickableIncrement' => 'T00:10:00',
    )
);
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.validationTextBox">
        <title>ValidationTextBox</title>

        <para>
            ValidationTextBox ofrece la posibilidad de añadir validaciones y 
            limitaciones a una entrada de texto. Internamente, proviene de
            <link linkend="zend.dojo.form.elements.textBox">TextBox</link>, 
            y añade los siguientes accessors y mutators para manejar 
            parámetros dijit:
        </para>

        <itemizedlist>
            <listitem><para>
                <methodname>setInvalidMessage($message)</methodname> y
                <methodname>getInvalidMessage()</methodname>: establece y recupera el mensaje 
                de tooltip para mostrar cuando el valor no se validó.
            </para></listitem>

            <listitem><para>
                <methodname>setPromptMessage($message)</methodname> y
                <methodname>getPromptMessage()</methodname>: establece y recupera el mensaje 
                de tooltip a mostrar para el uso del elemento.
            </para></listitem>

            <listitem><para>
                <methodname>setRegExp($regexp)</methodname> y <methodname>getRegExp()</methodname>:
                establece y recupera la expresión regular a utilizar para validar 
                el elemento. La expresión regular no necesita límites 
                (a diferencia de la familia de funciones preg*, de PHP).
            </para></listitem>

            <listitem><para>
                <methodname>setConstraint($key, $value)</methodname> y
                <methodname>getConstraint($key)</methodname>: establece y recupera 
                restricciones adicionales para utilizar al validar el elemento; 
                se utiliza principalmente con subclases. Las restricciones son 
                almacenados en la clave 'constraints' de los parámetros dijit.
            </para></listitem>

            <listitem><para>
                <methodname>setConstraints(array $constraints)</methodname> y
                <methodname>getConstraints()</methodname>: establece y recupera las 
                restricciones para utilizar al validar el elemento; se utiliza 
                principalmente con subclases.
            </para></listitem>

            <listitem><para>
                <methodname>hasConstraint($key)</methodname>: prueba si una restricción 
                dada existe.
            </para></listitem>

            <listitem><para>
                <methodname>removeConstraint($key)</methodname> y
                <methodname>clearConstraints()</methodname>: elimina una restricción 
                individual o todas las restricciones para el elemento.
            </para></listitem>
        </itemizedlist>

        <example id="zend.dojo.form.elements.validationTextBox.example">
            <title>Ejemplo de Uso del Elemento ValidationTextBox dijit</title>

            <para>
                Lo siguiente creará un ValidationTextBox que requiere un solo 
                string compuesto exclusivamente por caracteres de palabra 
                (es decir, sin espacios, la mayor parte de la puntuación es inválida).
            </para>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'ValidationTextBox',
    'foo',
    array(
        'label'          => 'ValidationTextBox',
        'required'       => true,
        'regExp'         => '[\w]+',
        'invalidMessage' => 'Invalid non-space text.',
    )
);
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.dojo.form.elements.verticalSlider">
        <title>VerticalSlider</title>

        <para>
            VerticalSlider es el hermano de <link
                linkend="zend.dojo.form.elements.horizontalSlider">HorizontalSlider</link>,
            y opera en todos los sentidos como ese elemento. 
            La única diferencia real es que los métodos 'top*' y 'bottom*' son 
            sustituidos por 'left*' y 'right*', y en lugar de utilizar 
            HorizontalRule y HorizontalRuleLabels, debe usarse VerticalRule y 
            VerticalRuleLabels.
        </para>

        <example id="zend.dojo.form.elements.verticalSlider.example">
            <title>Ejemplo de Uso del Elemento VerticalSlider dijit</title>

            <para>
                Lo siguiente creará una selección deslizante vertical con valores 
                enteros desde -10 a 10. La izquierda tendrá etiquetas en las 
                marcas correspondientes al 20%, 40%, 60%, y 80%. El derecho  
                tiene reglas en un 0, 50%, y 100%. Cada vez que se cambie el 
                valor, se actualizará el elemento oculto que almacena el valor.
            </para>

             <programlisting language="php"><![CDATA[
$form->addElement(
    'VerticalSlider',
    'foo',
    array(
        'label'                    => 'VerticalSlider',
        'value'                    => 5,
        'style'                    => 'height: 200px; width: 3em;',
        'minimum'                  => -10,
        'maximum'                  => 10,
        'discreteValues'           => 11,
        'intermediateChanges'      => true,
        'showButtons'              => true,
        'leftDecorationDijit'      => 'VerticalRuleLabels',
        'leftDecorationContainer'  => 'leftContainer',
        'leftDecorationLabels'     => array(
                ' ',
                '20%',
                '40%',
                '60%',
                '80%',
                ' ',
        ),
        'rightDecorationDijit' => 'VerticalRule',
        'rightDecorationContainer' => 'rightContainer',
        'rightDecorationLabels' => array(
                '0%',
                '50%',
                '100%',
        ),
    )
);
]]></programlisting>
        </example>
    </sect3>
</sect2>
<!--
vim:se ts=4 sw=4 et:
-->
