Saltar a contenido

4.18 Autocomplete

Componente interactivo que proporciona sugerencias en tiempo real al usuario mientras escribe en un campo de entrada. Este componente facilita la selección de opciones al mostrar coincidencias posibles, lo que mejora la eficiencia y precisión en la entrada de datos.

Este componente está asociado a un repositorio definido en "repo", permitiendo la vinculación directa de datos.

Además presenta la funcionalidad de ser filtrado a través del componente "repofilter", lo que proporciona la capacidad de mostrar datos específicos basados en criterios de filtrado predefinidos.

Atributo Valor por defecto Tipo Descripción
Comunes id null String Identificador único del componente. Si no tiene id, se le asigna con nomenclatura ${tag}${num}.
render true Boolean o JEXLExpression Expresión EL para evaluar si el componente debe mostrarse.
onBeforeRender null String Método JS a ejecutar antes de que el componente actual sea renderizado.
onAfterRender null String Método JS que se ejecutará una vez renderizado el componente actual.
action null String Identificador de la acción a realizar cuando el usuario interactúa con este componente.
allowsPartialRestore false Boolean Si el estado del componente actual debe restaurarse cuando el usuario vuelva a la vista.
Comunes input label null String Etiqueta del componente.
validator null String Tipo de validación del componente: required, short, long, decimal, double, float, email, iban.
hint null String Texto a modo de ayuda o información. Se mostará un botón de información que al ser pulsado mostrará un panel con el texto aportado.
readonly false Boolean o JEXLExpression Evaluar si el componente debe ser de sólo lectura o no.
placeHolder null String o JEXLExpression Valor del componente cuando el componente no tiene valor.
inputType null Integer Valor inputType de Android que soportará el componente. Ver documentación de Android InputType. Por ejemplo, para PHONE_CLASS, establezca input_type = 3. En el caso de la imagen, mostrará la botonera asociada a la imagen:
  • 1 cámara
  • 2 galería
  • 4 sketch
  • 3 galería y cámara
  • 5 sketch y cámara
  • 6 sketch y galería
  • 7 cámara, galería y sketch
hasDeleteButton true Boolean Indica si se mostrará el botón de borrado del componente.
converter null String Instancia del conversor a aplicar a la propiedad de la entidad.
value null String o JEXLExpression Expresión EL para calcular el valor del componente.
repo null String Identificador del repositorio utilizado para recoger los datos.
forceSelection false Boolean Si se establece en true, obliga al usuario a seleccionar una de las opciones disponibles y no se admite texto libre. En este caso, si el usuario inserta algún texto que no se ajusta a ninguna de las opciones, el componente borrará la entrada y se establecerá null como valor de la propiedad entity.

4.18.1 Options

Atributo Valor por defecto Tipo Descripción
labelExpression null String o JEXLExpression Expresión EL utilizada para crear la etiqueta a partir de los datos de la entidad..
valueProperty null String Nombre de la propiedad de la entidad utilizada para identificar la opción seleccionada, típicamente el pk de la entidad.
labelFilteringProperty null String Nombre de la propiedad de la entidad utilizada para filtrar los resultados de la lista con la entrada del usuario.

4.18.2 Repofilter

Atributo Valor por defecto Tipo Descripción
id null String Identificador único del componente. Si no tiene id, se le asigna con nomenclatura ${tag}${num}.

La etiqueta repoFilter no tiene atributos, la expresión se define anidando etiquetas de predicado como and|or|.

  • Operadores: EQ, LT, GT, LE, GE, IN, NOT_IN, IS_NULL, NOT_NULL, LIKE, CONTAINS, STARTS_WITH, ENDS_WITH.
  • Criterios: and, or
Atributo Valor por defecto Tipo Descripción
property null String Nombre de la propiedad de la entidad utilizada para filtrar los resultados.
mandatory false Boolean Un operador puede incluir el parámetro “mandatory=True” para indicar que la consulta no se puede ejecutar si ese valor no está disponible.
value null String o JEXLExpression Expresión EL utilizada como valor.
<autocomplete forceSelection="true" id="c_provincia_id" label="Provincia: " repo="provinciaRepo" value="${entity.c_provincia_id}">
    <options labelExpression="${entity.d_provincia}" labelFilteringProperty="d_provincia" valueProperty="c_provincia_id" />
</autocomplete>
<autocomplete forceSelection="true" id="c_provmuni_id" label="Municipio: " repo="municipioRepo" value="${entity.c_provmuni_id}">
    <options labelExpression="${entity.d_nombre}" labelFilteringProperty="d_nombre" valueProperty="c_provmuni_id" />
    <repofilter>
        <eq property="c_provincia_id" value="${view.c_provincia_id}" mandatory="true"/>
        <contains property="d_nombre" value="${this.value}"/>
    </repofilter>
</autocomplete>

Imagen 1 Imagen 2