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:
|
|
| 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>
