SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
UDA – Utilidades de desarrollo de aplicaciones by EJIE is licensed under a Creative Commons Reconocimiento-
NoComercial-CompartirIgual 3.0 Unported License.
UDA - Utilidades de desarrollo de aplicaciones
Componentes RUP – Autocomplete
Fecha: 03/12/2014 Referencia:
EJIE S.A.
Mediterráneo, 14
Tel. 945 01 73 00*
Fax. 945 01 73 01
01010 Vitoria-Gasteiz
Posta-kutxatila / Apartado: 809
01080 Vitoria-Gasteiz
www.ejie.es
Componentes RUP – Autocomplete ii/18
Control de documentación
Título de documento: Componentes RUP – Autocomplete
Histórico de versiones
Código: Versión: Fecha: Resumen de cambios:
1.0.0 06/06/2011 Primera versión.
1.0.1 18/07/2011 Correcciones en los números de versión de ficheros.
1.1.0 14/09/2011
Actualización de las versiones de las librerías
JavaScript subyacentes.
Añadido el apartado Integración con UDA.
1.2.0 14/12/2011
Nuevos métodos getRupValue y setRupValue para la
interacción con los demás componentes RUP. Nuevas
propiedades labelName y valueName.
2.0.0 11/07/2012 Cambios de formato y correcciones ortográficas.
2.1.0 18/09/2012
Actualización de las versiones de las librerías
JavaScript subyacentes.
2.4.0 22/11/2013
Se distribuye la versión minimizada de los ficheros
javascript y de estilos de RUP.
2.4.1 13/03/2014 Nuevo método set.
2.4.4 03/12/2014
Nueva funcionalidad, combobox
Nuevos eventos, rupAutocomplete_loadComplete,
rupAutocomplete_change, rupAutocomplete_select.
Nuevas propiedades menuAppendTo y
menuMaxHeight.
Cambios producidos desde la última versión
Nueva funcionalidad, combobox
Nuevos eventos, rupAutocomplete_loadComplete, rupAutocomplete_change, rupAutocomplete_select.
Nuevas propiedades menuAppendTo y menuMaxHeight.
Componentes RUP – Autocomplete iii/18
Control de difusión
Responsable: Ander Martínez
Aprobado por:
Firma: Fecha:
Distribución:
Referencias de archivo
Autor:
Nombre archivo:
Localización:
Componentes RUP – Autocomplete iv/18
Contenido
Capítulo/sección Página
1. Introducción 5
2. Ejemplo 5
3. Casos de uso 5
4. Infraestructura 5
4.1. Ficheros 5
4.2. Dependencias 6
4.3. Versión minimizada 6
5. Invocación 6
6. Propiedades 7
7. Funciones 10
8. Eventos 12
9. Sobreescritura del theme 14
10. Internacionalización (i18n) 15
11. Integración con UDA 16
Componentes RUP – Autocomplete 5/18
1. Introducción
La descripción del Componente Autocomplete, visto desde el punto de vista de RUP, es la siguiente:
En cuanto el usuario comienza a escribir una búsqueda se le sugieren búsquedas relacionadas con lo
que ha escrito que pueden ser de su interés.
2. Ejemplo
Se presentan a continuación un ejemplo de este componente:
3. Casos de uso
Se recomienda el uso del componente:
• Cuando se desea mejorar la búsqueda ofreciendo sugerencias a los usuarios.
4. Infraestructura
A continuación se comenta la infraestructura necesaria para el correcto funcionamiento del componente.
• Únicamente se requiere la inclusión de los ficheros que implementan el componente (js y css)
comentados en los apartados Ficheros y Dependencias.
4.1. Ficheros
Ruta Javascript: rup/scripts/
Fichero de plugin: rup.autocomplete-x.y.z.js
Ruta theme: rup/basic-theme/
Fichero CSS del theme: theme.rup.autocomplete- x.y.z.css
Componentes RUP – Autocomplete 6/18
4.2. Dependencias
Por la naturaleza de desarrollo de los componentes (patrones) como plugins basados en la librería
JavaScript jQuery, es necesaria la inclusión del esta. La versión elegida para el desarrollo ha sido la
versión 1.8.0.
• jQuery 1.8.0: http://jquery.com/
La gestión de la ciertas partes visuales de los componentes, se han realizado mediante el plugin jQuery
UI que se basa en jQuery y se utiliza para construir aplicaciones web altamente interactivas. Este plugin,
proporciona abstracciones de bajo nivel de interacción y animación, efectos avanzados de alto nivel,
componentes personalizables (estilos) ente otros. La versión utilizada en el desarrollo ha sido la 1.8.23.
• jQuery UI 1.8.23: http://jqueryui.com/
Los ficheros necesarios para el correcto funcionamiento del componente son:
• jquery-1.8.0.js
• jquery-ui-1.8.23.custom.js
• jquery-ui-1.8.23.custom.css
• jquery.ui.autocomplete.js
• rup.base-x.y.z.js
• rup.autocomplete-x.y.z.js
• theme.rup.autocomplete-z.y.z.css
4.3. Versión minimizada
A partir de la versión v2.4.0 se distribuye la versión minimizada de los componentes RUP. Estos ficheros
contienen la versión compactada y minimizada de los ficheros javascript y de estilos necesarios para el
uso de todos los compontente RUP.
Los ficheros minimizados de RUP son los siguientes:
• rup/scripts/min/rup.min-x.y.z.js
• rup/basic-theme/rup.min-x.y.z.css
Estos ficheros son los que deben utilizarse por las aplicaciones. Las versiones individuales de cada uno
de los componentes solo deberán de emplearse en tareas de desarrollo o depuración.
5. Invocación
Este componente se invocará mediante un selector que indicará todos los elementos sobre los que se va a
aplicar el componente Autocomplete. Por ejemplo:
Componentes RUP – Autocomplete 7/18
$("#id_input").rup_autocomplete(properties);
Donde el parámetro “properties” es un objeto ( var properties = {}; ) o bien directamente la declaración de lo
valores directamente. Sus posibles valores se detallan en el siguiente apartado.
Para facilitar la gestión de los datos del formulario, el input sobre el que se aplica el componente pasará a
tener como nombre su nombre original seguido de “_label” y contendrá la descripción del valor seleccionado.
El valor interno se guardará en un campo oculto cuyo nombre será el nombre original del input sobre el que
se aplica el componente. Veámoslo con un ejemplo:
1. Se define el input sobre el que se aplica el componente:
<input id=lenguaje name=lenguaje />
2. Se invoca el componente sobre el input:
$("#lenguaje").rup_autocomplete({...});
3. Se modifica el código HTML y se convierte en:
<input id=”lenguaje_label” name=”lenguaje_label” ruptype=”autocomplete”... />
<hidden id=”lenguaje” name=”lenguaje” ” ruptype=”autocomplete”... />
6. Propiedades
A continuación se muestran los posibles parámetros de configuración que recibe el componente.
• source: este parámetro determina el tipo de autocomplete: local o remoto y define los datos
que va a tener el autocomplete.
o remoto se define la url a la que se solicitan los datos a cargar:
source : "autocomplete/remote"
Los datos devueltos por el servidor deberán seguir esta estructura JSON:
[
{label: "Autocomplete_es", value:"Autocomplete"},
{label: "Combo_es", value:"Combo"},
{label: "Dialog_es", value:"Dialog"},
...
]
o local puede ser de dos tipos si los literales a mostrar dependen del idioma o no:
sin dependencia: se define un array en JSON con los datos:
source : ["asp", "c", "c++", "coldfusion",
"groovy", "haskell", "java", "javascript", "perl",
"php", "python", "ruby", "scala"]
Componentes RUP – Autocomplete 8/18
con dependencia: se define un array en JSON de objetos con su valor (value) y
su literal a mostrar (i18nCaption):
source : [
{i18nCaption: "asp", value:"asp_value"},
{i18nCaption: "c", value:"c_value"},
{i18nCaption: "c++", value:"c++_value"},
{i18nCaption: "coldfusion", value:"coldfusion_value"},
...
]
• sourceParam: en el caso de un autocomplete remoto, deben configurarse los siguientes
datos:
o label: nombre de la columna de BBDD de la que se extrae la descripción (el literal a
mostrar).
o value: nombre de la columna de BBDD de la que se extrae el valor.
Por ejemplo:
sourceParam: {
label:"desc_"+$.rup.lang,
value:"code"
}
NOTA: En caso de utilizar una disposición horizontal para el idioma (varias columnas según
idioma) se podrá hacer uso de la función “$.rup.lang” que devuelve el idioma actual (es,
eu,…) para concatenarlo al nombre de la columna y obtener así el nombre de la columna
que se desea.
• minLength: define el número mínimo de caracteres a introducir antes de que se lance la
búsqueda de datos. El valor por defecto en la búsqueda local es de 1 carácter, mientras que
en remoto es de 3 caracteres mínimo, es decir que si se define un valor mayor se
sobrescribe pero no con un valor menor.
• menuAppendTo: permite especificar mediante un selector de jQuery el elemento del DOM
al que se añadirá el menú desplegable.
• menuMaxHeight: determina la altura máxima que podrá tener la capa del menú
desplegable antes de mostrar scroll.
• disabled: determina si se deshabilita el componente Autocomplete sobre el input al que se
aplica. De tal modo que por mucho que se interactué con el elemento no se hará una
búsqueda. Su valor por defecto es false.
• delay: indica en milisegundos el tiempo que se espera entre que se pulsa una tecla y se
lanza la búsqueda de los datos. Su valor por defecto es 300.
• defaultValue: valor que se cargará por defecto en el input y con el que se lanzará una
búsqueda para mostrar valores propuestos.
• contains: valor que determina si la búsqueda debe ser del tipo “contiene” (se buscarán
elementos que contengan en cualquier posición el literal introducido) o del tipo “comienza
Componentes RUP – Autocomplete 9/18
por” (se buscarán elementos que comiencen por el literal introducido). El valor por defecto
es true.
NOTA: Se tiene en cuenta que el valor indicado para lanzar sugerencias deba cumplir el
tamaño mínimo (minLength) o no se hará la búsqueda.
• valueName: determina el valor de la propiedad name del campo que utilizará internamente
el componente para almacenar el identificador del elemento seleccionado por el usuario. En
caso de no especificarse, se tomará como valor el valor de la propiedad name del elemento
sobre el cual se ha definido el componente.
• labelName: : determina el valor de la propiedad name del campo que utilizará internamente
el componente para almacenar el texto del elemento seleccionado por el usuario. En caso
de no especificarse, se tomará como valor el valor de la propiedad name del elemento sobre
el cual se ha definido el componente, añadiéndole el sufijo “_label”.
• combobox : Permite configurar el componente para que muestre junto a él un botón que
permite desplegar el menú de resultados. En caso de no haber introducido ningún texto por
el que se deba filtrar los resultados se mostrarán todos los posibles.
$("#autocomplete").rup_autocomplete({
// ...
combobox: true
});
Componentes RUP – Autocomplete 10/18
7. Funciones
A continuación se detallan las diferentes funciones que integran el componente Autocomplete:
• destroy: elimina el autocomplete. La invocación se realizará de la siguiente manera:
$(selector).rup_autocomplete("destroy");
• on: habilita el autocomplete (solo la parte de sugerencias). La invocación se realizará de la
siguiente manera:
$(selector).rup_autocomplete("on");
• off: deshabilita el autocomplete (solo la parte de sugerencias, el input sigue habilitado). La
invocación se realizará de la siguiente manera:
$(selector).rup_autocomplete("off");
• disable: deshabilita el autocomplete. Internamente invoca al método off. La invocación se realizará
de la siguiente manera:
$(selector).rup_autocomplete("disable");
• enable: habilita el autocomplete. Internamente invoca al método on. La invocación se realizará de la
siguiente manera:
$(selector).rup_autocomplete("enable");
• option: establece la configuración del autocomplete. La invocación se realizará de la siguiente
manera:
o Establecer una propiedad:
$(selector).rup_autocomplete("option", "minLegth", 2);
o Establecer varias propiedades:
$(selector).rup_autocomplete("option", {minLegth:2, delay:1000});
• search: lanza una búsqueda en el autocomplete con el parámetro indicado y el foco va a parar al
input. La invocación se realizará de la siguiente manera:
$(selector).rup_autocomplete("search", "java");
• close: oculta el autocomplete. La invocación se realizará de la siguiente manera:
$(selector).rup_autocomplete("close");
Componentes RUP – Autocomplete 11/18
• val: devuelve el valor del autocomplete. Este es el valor que se guarda en el campo oculto antes
descrito al final del apartado 7. La invocación se realizará de la siguiente manera:
$(selector).rup_autocomplete("val");
Para obtener la descripción (dato que se muestra en el input) se invocará a la función estándar de
jQuery:
$(selector).val();
• getRupValue: método utilizado para obtener el valor del componente. Este método es el utilizado
por el resto de componentes RUP para estandarizar la obtención del valor del Autocomplete.
$(selector).rup_autocomplete("getRupValue");
• setRupValue: método utilizado para asignar el valor al componente. Este método es el utilizado por
el resto de componentes RUP para estandarizar la asignación del valor al Autocomplete.
$(selector).rup_autocomplete("setRupValue",value);
• set: método utilizado para asignar el valor y el literal al componente. El valor se almacena en el
campo hidden creado por el componente. El contenido indicado en la propiedad label se mostrará
en el campo input del componente.
$(selector).rup_autocomplete("set",value, label);
Componentes RUP – Autocomplete 12/18
8. Eventos
A continuación se detallan los eventos asociados al componente:
• create: permite asociar una función que se ejecutará cuando se cree el autocomplete. Se configura
de la siguiente manera:
$(selector).rup_autocomplete({ create: function(){...} });
• search: permite asociar una función que se ejecutará antes de lanzar la búsqueda del
autocomplete. Se configura de la siguiente manera:
$(selector).rup_autocomplete({ search: function(){...} });
• open: permite asociar una función que se ejecutará cuando se muestre el autocomplete. Se
configura de la siguiente manera:
$(selector).rup_autocomplete({ open: function(){...} });
• focus: permite asociar una función que se ejecutará cuando se reciba el foco en el autocomplete.
Se configura de la siguiente manera:
$(selector).rup_autocomplete({ focus: function(){...} });
• select: permite asociar una función que se ejecutará cuando se seleccione un valor del
autocomplete. Se configura de la siguiente manera:
$(selector).rup_autocomplete({ select: function(){...} });
• close: permite asociar una función que se ejecutará cuando se oculte el autocomplete. Se configura
de la siguiente manera:
$(selector).rup_autocomplete({ close: function(){...} });
• rupAutocomplete_loadComplete: permite asociar una función que se ejecutará cuando se
complete la carga de los registros correspondientes al texto de búsqueda introducido.
$("#autocomplete").on("rupAutocomplete_loadComplete", function(event, data){
});
• rupAutocomplete_change: permite asociar una función que se ejecutará cuando se produzca un
cambio en el valor seleccionado del comonente.
$("#autocomplete").on("rupAutocomplete_change", function(event){
});
• rupAutocomplete_select: permite asociar una función que se ejecutará cuando se produzca la
selección de un registro de entre la lista de resultados.
Componentes RUP – Autocomplete 13/18
$("#autocomplete").on("rupAutocomplete_select", function(event, ui){
});
Componentes RUP – Autocomplete 14/18
9. Sobreescritura del theme
El componente autocomplete se presenta con una apariencia visual definida en el fichero de estilos
theme.rup.autocomplete-x.y.z.css.
Si se quiere modificar la apariencia del componente, se recomienda redefinir el/los estilos necesarios en un
fichero de estilos propio de la aplicación situado dentro del proyecto de estáticos
(codAppStatics/WebContent/codApp/styles).
Los estilos del componente se basan en los estilos básicos de los widgets de jQuery UI, con lo que los
cambios que se realicen sobre su fichero de estilos manualmente o mediante el uso de la herramienta
Theme Roller podrán tener repercusión sobre todos los componentes que compartan esos mismos estilos
(pudiendo ser el nivel de repercusión general o ajustado a un subconjunto de componentes).
Ejemplo base de la estructura generada por el componente:
<input class="ui-autocomplete-input"/>
<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-
all">
<li class="ui-menu-item">
<a class="ui-corner-all">item 1</a>
</li>
<li class="ui-menu-item">
<a class="ui-corner-all">item 2</a>
</li>
<li class="ui-menu-item">
<a class="ui-corner-all">item 3</a>
</li>
</ul>
Componentes RUP – Autocomplete 15/18
10. Internacionalización (i18n)
La internacionalización se realiza mediante el fichero de recursos definido para la aplicación que se
encontrará en la parte estática bajo codAplic/resources/codAplic.i18n.json (con sus variantes según
idioma ej: codAplic/resources/codAplic.i18n_es.json). En dicho fichero se deberá declarar un objeto
JSON cuyo nombre sea el mismo que el id del elemento html sobre el que se aplica el componente.
Ejemplo:
"lenguaje" : {
"asp":"asp_es",
"c":"c_es",
"c++":"c++_es",
"coldfusion":"coldfusion_es",
"groovy":"groovy_es",
"haskell":"haskell_es",
"java":"java_es",
"javascript":"javascript_es",
"perl":"perl_es",
"php":"php_es",
"python":"python_es",
"ruby":"ruby_es",
"scala":"scala_es"
}
Componentes RUP – Autocomplete 16/18
11. Integración con UDA
El componente Autocomplete permite recuperar los datos almacenados en base de datos. Para ello se
requiere cierta configuración en el Controller al que se invoca.
Se deben declarar dos parámetros (que el componente envía automáticamente):
q: termino introducido en el input. El termino introducido podría contener comodines (wildcards) que
podrían obtener datos no deseados como son el carácter “_” que equivale a cualquier carácter o el
carácter “%” que equivale a cualquier literal. Por ello en la petición al servidor se envía escapados
automáticamente. Ejemplo de una petición con los caracteres escapados:
http://localhost:7001/x21aDemoWAR/fase3/autocomplete/remote?q=%%%%&c=false
c: booleano que determina si la búsqueda es del tipo “contiene” (true) o del tipo “empieza por”
(false).
El Service que invoca el Controller tendrá el método findAllLike (entidad, paginación, c) (si se ha
generado con el plugin UDA) que se empleará para realizar la búsqueda. Sus parámetros son los
siguientes:
entidad: objeto creado por el desarrollador que contendrá en el campo por el que se desea buscar el
termino introducido:
MiEntidad miEntidad = new Entidad();
miEntidad.setCampoBusqueda(q);
paginación: objeto empleado para hacer filtrados/paginaciones. En el ejemplo actual se manda null
ya que no se requiere esta funcionalidad.
c: parámetro enviado por el componente que determina el tipo de búsqueda.
A continuación se muestra un ejemplo (se destacan con fondo gris los elementos a configurar):
@RequestMapping(value = "autocomplete/remote", method=RequestMethod.GET)
public @ResponseBody List<Patrones> getRemoteAutocomplete(
@RequestParam(value = "q", required = true) String q,
@RequestParam(value = "c", required = true) Boolean c){
//Idioma
Locale locale = LocaleContextHolder.getLocale();
//Filtro según idioma
Patrones patrones = new Patrones();
if (com.ejie.x38.util.Constants.EUSKARA.equals(locale.getLanguage())
){
patrones.setDescEu(q);
}else{
patrones.setDescEs(q);
}
Componentes RUP – Autocomplete 17/18
return patronesService.findAllLike(patrones, null, c);
}
El método devuelve una lista de entidades en este caso List<Patrones> donde cada entidad tendrá todos y
cada uno de los atributos cargados con los valores de la Base de Datos. Al devolver la lista con la anotación
@ResponseBody, entrará en funcionamiento Jackson (parseador de JSON de Spring) para convertir la lista
JAVA en una lista JSON:
JAVA:
patronesList :
patronesList [0] code = Autocomplete
descEs = Autocomplete_es
descEu = Autocomplete_eu
css = filter
patronesList [1] code = Combo
descEs = Combo_es
descEu = Combo_eu
css = print
…
JSON:
[
{code="Autocomplete", descEs="Autocomplete_es",
descdescEu="Autcomplete_eu", css="filter" },
{code="Combo", descEs="Combo_es",
descEu="Combo_eu", css="print" },
…
]
Como se ha explicado en anteriormente en el atributo source en el apartado 8 (propiedades) el componente
requiere de una estructura de terminada para cargar el combo:
[
{label: "Autocomplete_es", value:"Autocomplete", style:"aaa"},
{label: "Combo_es", value:"Combo ", style:"bbb"},
{label: "Dialog_es", value:"Dialog", style:"ccc"},
...
]
La traducción entre la estructura devuelta por el controller y la que espera el componente se realiza
mediante un serializador propio de UDA. Para que este entre en funcionamiento simplemente se deberá
configurar el fichero mvc-config del WAR (/xxxWAR/WebContent/WEB-INF/spring/mvc-config.xml)
indicando que el modelo utilizado utilice el serializador de UDA:
<bean id="jacksonJsonCustomSerializerFactory"
class="com.ejie.x38.serialization.CustomSerializerFactoryRegistry">
<property name="serializers">
Componentes RUP – Autocomplete 18/18
<map>
<entry key="com.ejie.x21a.model.Patrones" value-ref="customSerializer" />
...
</map>
</property>
</bean>
Para que la serialización se realice correctamente, el componente envía en la petición una cabecera de RUP
con la información necesaria para realizar la serialización.
{"label":"descEs","value":"code","style":"css"}
NOTA: Al generar el código con el plugin de UDA, se añade este serializador para todos los objetos del
modelo creados.

Más contenido relacionado

La actualidad más candente

UDA-Componentes RUP. Validación
UDA-Componentes RUP. ValidaciónUDA-Componentes RUP. Validación
UDA-Componentes RUP. ValidaciónAnder Martinez
 
UDA-Componentes RUP. Mantenimiento (v2.1.1 deprecado)
UDA-Componentes RUP. Mantenimiento  (v2.1.1 deprecado)UDA-Componentes RUP. Mantenimiento  (v2.1.1 deprecado)
UDA-Componentes RUP. Mantenimiento (v2.1.1 deprecado)Ander Martinez
 
UDA-Componentes RUP. Formulario
UDA-Componentes RUP. FormularioUDA-Componentes RUP. Formulario
UDA-Componentes RUP. FormularioAnder Martinez
 
UDA-Componentes RUP. Pestañas
UDA-Componentes RUP. PestañasUDA-Componentes RUP. Pestañas
UDA-Componentes RUP. PestañasAnder Martinez
 
UDA-Componentes RUP. Botonera
UDA-Componentes RUP. BotoneraUDA-Componentes RUP. Botonera
UDA-Componentes RUP. BotoneraAnder Martinez
 
UDA-Componentes RUP. Accordion
UDA-Componentes RUP. AccordionUDA-Componentes RUP. Accordion
UDA-Componentes RUP. AccordionAnder Martinez
 
UDA-Componentes RUP. Upload
UDA-Componentes RUP. UploadUDA-Componentes RUP. Upload
UDA-Componentes RUP. UploadAnder Martinez
 
UDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrolloUDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrolloAnder Martinez
 
UDA-Componentes RUP. Tabla.v2.4.6
UDA-Componentes RUP. Tabla.v2.4.6UDA-Componentes RUP. Tabla.v2.4.6
UDA-Componentes RUP. Tabla.v2.4.6Ander Martinez
 
UDA-Guia de desarrollo
UDA-Guia de desarrolloUDA-Guia de desarrollo
UDA-Guia de desarrolloAnder Martinez
 
UDA-Plugin UDA. Guia de uso del plugin.
UDA-Plugin UDA. Guia de uso del plugin.UDA-Plugin UDA. Guia de uso del plugin.
UDA-Plugin UDA. Guia de uso del plugin.Ander Martinez
 
UDA-Anexo gestión de seguridad
UDA-Anexo gestión de seguridadUDA-Anexo gestión de seguridad
UDA-Anexo gestión de seguridadAnder Martinez
 
UDA-Anexo configuración y uso de jackson
UDA-Anexo configuración y uso de jacksonUDA-Anexo configuración y uso de jackson
UDA-Anexo configuración y uso de jacksonAnder Martinez
 
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleLiferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleAntonio Musarra
 
Angular Notes.pdf
Angular Notes.pdfAngular Notes.pdf
Angular Notes.pdfsagarpal60
 
Introduction to JSX
Introduction to JSXIntroduction to JSX
Introduction to JSXMicah Wood
 

La actualidad más candente (20)

UDA-Componentes RUP. Validación
UDA-Componentes RUP. ValidaciónUDA-Componentes RUP. Validación
UDA-Componentes RUP. Validación
 
UDA-Componentes RUP. Mantenimiento (v2.1.1 deprecado)
UDA-Componentes RUP. Mantenimiento  (v2.1.1 deprecado)UDA-Componentes RUP. Mantenimiento  (v2.1.1 deprecado)
UDA-Componentes RUP. Mantenimiento (v2.1.1 deprecado)
 
UDA-Componentes RUP. Formulario
UDA-Componentes RUP. FormularioUDA-Componentes RUP. Formulario
UDA-Componentes RUP. Formulario
 
UDA-Componentes RUP. Pestañas
UDA-Componentes RUP. PestañasUDA-Componentes RUP. Pestañas
UDA-Componentes RUP. Pestañas
 
UDA-Componentes RUP. Botonera
UDA-Componentes RUP. BotoneraUDA-Componentes RUP. Botonera
UDA-Componentes RUP. Botonera
 
UDA-Componentes RUP. Accordion
UDA-Componentes RUP. AccordionUDA-Componentes RUP. Accordion
UDA-Componentes RUP. Accordion
 
UDA-Componentes RUP. Upload
UDA-Componentes RUP. UploadUDA-Componentes RUP. Upload
UDA-Componentes RUP. Upload
 
UDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrolloUDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrollo
 
UDA-Componentes RUP. Tabla.v2.4.6
UDA-Componentes RUP. Tabla.v2.4.6UDA-Componentes RUP. Tabla.v2.4.6
UDA-Componentes RUP. Tabla.v2.4.6
 
UDA-Guia de desarrollo
UDA-Guia de desarrolloUDA-Guia de desarrollo
UDA-Guia de desarrollo
 
UDA-Plugin UDA. Guia de uso del plugin.
UDA-Plugin UDA. Guia de uso del plugin.UDA-Plugin UDA. Guia de uso del plugin.
UDA-Plugin UDA. Guia de uso del plugin.
 
UDA-Anexo gestión de seguridad
UDA-Anexo gestión de seguridadUDA-Anexo gestión de seguridad
UDA-Anexo gestión de seguridad
 
UDA-Anexo configuración y uso de jackson
UDA-Anexo configuración y uso de jacksonUDA-Anexo configuración y uso de jackson
UDA-Anexo configuración y uso de jackson
 
What’s New in Angular 14?
What’s New in Angular 14?What’s New in Angular 14?
What’s New in Angular 14?
 
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleLiferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
 
Reflection in C#
Reflection in C#Reflection in C#
Reflection in C#
 
Angular Notes.pdf
Angular Notes.pdfAngular Notes.pdf
Angular Notes.pdf
 
Pengenalan ReactJS
Pengenalan ReactJS Pengenalan ReactJS
Pengenalan ReactJS
 
Selenium-Locators
Selenium-LocatorsSelenium-Locators
Selenium-Locators
 
Introduction to JSX
Introduction to JSXIntroduction to JSX
Introduction to JSX
 

Destacado

UDA-Anexo uso de webDAV
UDA-Anexo uso de webDAVUDA-Anexo uso de webDAV
UDA-Anexo uso de webDAVAnder Martinez
 
UDA-Componentes RUP. Mensajes
UDA-Componentes RUP. MensajesUDA-Componentes RUP. Mensajes
UDA-Componentes RUP. MensajesAnder Martinez
 
Arinbide Adaptativo. Pila de producto.v1.0
Arinbide Adaptativo. Pila de producto.v1.0Arinbide Adaptativo. Pila de producto.v1.0
Arinbide Adaptativo. Pila de producto.v1.0Ander Martinez
 
UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)
UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)
UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)Ander Martinez
 
UDA-Componentes RUP. Idioma
UDA-Componentes RUP. IdiomaUDA-Componentes RUP. Idioma
UDA-Componentes RUP. IdiomaAnder Martinez
 
UDA-Componentes RUP. Tooltip
UDA-Componentes RUP. TooltipUDA-Componentes RUP. Tooltip
UDA-Componentes RUP. TooltipAnder Martinez
 
UDA-Componentes RUP. Reporting
UDA-Componentes RUP. ReportingUDA-Componentes RUP. Reporting
UDA-Componentes RUP. ReportingAnder Martinez
 
Arinbide Adaptativo. Pila de impedimentos.v1.1
Arinbide Adaptativo. Pila de impedimentos.v1.1Arinbide Adaptativo. Pila de impedimentos.v1.1
Arinbide Adaptativo. Pila de impedimentos.v1.1Ander Martinez
 
Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0
Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0
Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0Ander Martinez
 
UDA-Componentes RUP. Menú contextual
UDA-Componentes RUP. Menú contextualUDA-Componentes RUP. Menú contextual
UDA-Componentes RUP. Menú contextualAnder Martinez
 
UDA-Componentes RUP. Menú
UDA-Componentes RUP. MenúUDA-Componentes RUP. Menú
UDA-Componentes RUP. MenúAnder Martinez
 
Arinbide Adaptativo. Acta de reunión.v1.1
Arinbide Adaptativo. Acta de reunión.v1.1Arinbide Adaptativo. Acta de reunión.v1.1
Arinbide Adaptativo. Acta de reunión.v1.1Ander Martinez
 
Arinbide Adaptativo. Manual de usuario.v1.0
Arinbide Adaptativo. Manual de usuario.v1.0Arinbide Adaptativo. Manual de usuario.v1.0
Arinbide Adaptativo. Manual de usuario.v1.0Ander Martinez
 
UDA-Componentes RUP. Migas
UDA-Componentes RUP. MigasUDA-Componentes RUP. Migas
UDA-Componentes RUP. MigasAnder Martinez
 
Arinbide Adaptativo. Plan de entregas.v1.0
Arinbide Adaptativo. Plan de entregas.v1.0Arinbide Adaptativo. Plan de entregas.v1.0
Arinbide Adaptativo. Plan de entregas.v1.0Ander Martinez
 
Arinbide Adaptativo. Pila de sprint.v1.0
Arinbide Adaptativo. Pila de sprint.v1.0Arinbide Adaptativo. Pila de sprint.v1.0
Arinbide Adaptativo. Pila de sprint.v1.0Ander Martinez
 
UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0Ander Martinez
 
Arinbide Adaptativo. Visión del producto.v1.0
Arinbide Adaptativo. Visión del producto.v1.0Arinbide Adaptativo. Visión del producto.v1.0
Arinbide Adaptativo. Visión del producto.v1.0Ander Martinez
 
UDA-Componentes RUP. Tabla 2.4.1 (deprecado)
UDA-Componentes RUP. Tabla 2.4.1 (deprecado)UDA-Componentes RUP. Tabla 2.4.1 (deprecado)
UDA-Componentes RUP. Tabla 2.4.1 (deprecado)Ander Martinez
 
Arinbide Adaptativo. Retrospectiva.v1.0
Arinbide Adaptativo. Retrospectiva.v1.0Arinbide Adaptativo. Retrospectiva.v1.0
Arinbide Adaptativo. Retrospectiva.v1.0Ander Martinez
 

Destacado (20)

UDA-Anexo uso de webDAV
UDA-Anexo uso de webDAVUDA-Anexo uso de webDAV
UDA-Anexo uso de webDAV
 
UDA-Componentes RUP. Mensajes
UDA-Componentes RUP. MensajesUDA-Componentes RUP. Mensajes
UDA-Componentes RUP. Mensajes
 
Arinbide Adaptativo. Pila de producto.v1.0
Arinbide Adaptativo. Pila de producto.v1.0Arinbide Adaptativo. Pila de producto.v1.0
Arinbide Adaptativo. Pila de producto.v1.0
 
UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)
UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)
UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)
 
UDA-Componentes RUP. Idioma
UDA-Componentes RUP. IdiomaUDA-Componentes RUP. Idioma
UDA-Componentes RUP. Idioma
 
UDA-Componentes RUP. Tooltip
UDA-Componentes RUP. TooltipUDA-Componentes RUP. Tooltip
UDA-Componentes RUP. Tooltip
 
UDA-Componentes RUP. Reporting
UDA-Componentes RUP. ReportingUDA-Componentes RUP. Reporting
UDA-Componentes RUP. Reporting
 
Arinbide Adaptativo. Pila de impedimentos.v1.1
Arinbide Adaptativo. Pila de impedimentos.v1.1Arinbide Adaptativo. Pila de impedimentos.v1.1
Arinbide Adaptativo. Pila de impedimentos.v1.1
 
Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0
Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0
Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0
 
UDA-Componentes RUP. Menú contextual
UDA-Componentes RUP. Menú contextualUDA-Componentes RUP. Menú contextual
UDA-Componentes RUP. Menú contextual
 
UDA-Componentes RUP. Menú
UDA-Componentes RUP. MenúUDA-Componentes RUP. Menú
UDA-Componentes RUP. Menú
 
Arinbide Adaptativo. Acta de reunión.v1.1
Arinbide Adaptativo. Acta de reunión.v1.1Arinbide Adaptativo. Acta de reunión.v1.1
Arinbide Adaptativo. Acta de reunión.v1.1
 
Arinbide Adaptativo. Manual de usuario.v1.0
Arinbide Adaptativo. Manual de usuario.v1.0Arinbide Adaptativo. Manual de usuario.v1.0
Arinbide Adaptativo. Manual de usuario.v1.0
 
UDA-Componentes RUP. Migas
UDA-Componentes RUP. MigasUDA-Componentes RUP. Migas
UDA-Componentes RUP. Migas
 
Arinbide Adaptativo. Plan de entregas.v1.0
Arinbide Adaptativo. Plan de entregas.v1.0Arinbide Adaptativo. Plan de entregas.v1.0
Arinbide Adaptativo. Plan de entregas.v1.0
 
Arinbide Adaptativo. Pila de sprint.v1.0
Arinbide Adaptativo. Pila de sprint.v1.0Arinbide Adaptativo. Pila de sprint.v1.0
Arinbide Adaptativo. Pila de sprint.v1.0
 
UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0
 
Arinbide Adaptativo. Visión del producto.v1.0
Arinbide Adaptativo. Visión del producto.v1.0Arinbide Adaptativo. Visión del producto.v1.0
Arinbide Adaptativo. Visión del producto.v1.0
 
UDA-Componentes RUP. Tabla 2.4.1 (deprecado)
UDA-Componentes RUP. Tabla 2.4.1 (deprecado)UDA-Componentes RUP. Tabla 2.4.1 (deprecado)
UDA-Componentes RUP. Tabla 2.4.1 (deprecado)
 
Arinbide Adaptativo. Retrospectiva.v1.0
Arinbide Adaptativo. Retrospectiva.v1.0Arinbide Adaptativo. Retrospectiva.v1.0
Arinbide Adaptativo. Retrospectiva.v1.0
 

Similar a UDA-Componentes RUP. Autocomplete

UDA-Componentes RUP. Autocomplete (v2.1.0 deprecado)
UDA-Componentes RUP. Autocomplete  (v2.1.0 deprecado)UDA-Componentes RUP. Autocomplete  (v2.1.0 deprecado)
UDA-Componentes RUP. Autocomplete (v2.1.0 deprecado)Ander Martinez
 
UDA-Componentes RUP. Wizard
UDA-Componentes RUP. WizardUDA-Componentes RUP. Wizard
UDA-Componentes RUP. WizardAnder Martinez
 
UDA-Componentes RUP. Jerarquía (v2.1.1 deprecado)
UDA-Componentes RUP. Jerarquía  (v2.1.1 deprecado)UDA-Componentes RUP. Jerarquía  (v2.1.1 deprecado)
UDA-Componentes RUP. Jerarquía (v2.1.1 deprecado)Ander Martinez
 
UDA-Componentes RUP. Árbol
UDA-Componentes RUP. ÁrbolUDA-Componentes RUP. Árbol
UDA-Componentes RUP. ÁrbolAnder Martinez
 
UDA-Componentes RUP. Formulario (v2.1.1 deprecado)
UDA-Componentes RUP. Formulario  (v2.1.1 deprecado)UDA-Componentes RUP. Formulario  (v2.1.1 deprecado)
UDA-Componentes RUP. Formulario (v2.1.1 deprecado)Ander Martinez
 
UDA-Componentes RUP. Hora
UDA-Componentes RUP. HoraUDA-Componentes RUP. Hora
UDA-Componentes RUP. HoraAnder Martinez
 
UDA-Componentes RUP. Hora (v2.1.0 deprecado)
UDA-Componentes RUP. Hora  (v2.1.0 deprecado)UDA-Componentes RUP. Hora  (v2.1.0 deprecado)
UDA-Componentes RUP. Hora (v2.1.0 deprecado)Ander Martinez
 
UDA-Componentes RUP. Combo (v2.1.1 deprecado)
UDA-Componentes RUP. Combo (v2.1.1 deprecado)UDA-Componentes RUP. Combo (v2.1.1 deprecado)
UDA-Componentes RUP. Combo (v2.1.1 deprecado)Ander Martinez
 
UDA-Componentes RUP. Botonera (v2.1.0 deprecado)
UDA-Componentes RUP. Botonera  (v2.1.0 deprecado)UDA-Componentes RUP. Botonera  (v2.1.0 deprecado)
UDA-Componentes RUP. Botonera (v2.1.0 deprecado)Ander Martinez
 
Manual analisis dominancia_1
Manual analisis dominancia_1Manual analisis dominancia_1
Manual analisis dominancia_1vilna2011
 
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)Ander Martinez
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios webjcarazo
 

Similar a UDA-Componentes RUP. Autocomplete (18)

UDA-Componentes RUP. Autocomplete (v2.1.0 deprecado)
UDA-Componentes RUP. Autocomplete  (v2.1.0 deprecado)UDA-Componentes RUP. Autocomplete  (v2.1.0 deprecado)
UDA-Componentes RUP. Autocomplete (v2.1.0 deprecado)
 
UDA-Componentes RUP. Wizard
UDA-Componentes RUP. WizardUDA-Componentes RUP. Wizard
UDA-Componentes RUP. Wizard
 
UDA-Componentes RUP. Jerarquía (v2.1.1 deprecado)
UDA-Componentes RUP. Jerarquía  (v2.1.1 deprecado)UDA-Componentes RUP. Jerarquía  (v2.1.1 deprecado)
UDA-Componentes RUP. Jerarquía (v2.1.1 deprecado)
 
UDA-Componentes RUP. Árbol
UDA-Componentes RUP. ÁrbolUDA-Componentes RUP. Árbol
UDA-Componentes RUP. Árbol
 
UDA-Componentes RUP. Formulario (v2.1.1 deprecado)
UDA-Componentes RUP. Formulario  (v2.1.1 deprecado)UDA-Componentes RUP. Formulario  (v2.1.1 deprecado)
UDA-Componentes RUP. Formulario (v2.1.1 deprecado)
 
UDA-Componentes RUP. Hora
UDA-Componentes RUP. HoraUDA-Componentes RUP. Hora
UDA-Componentes RUP. Hora
 
UDA-Componentes RUP. Hora (v2.1.0 deprecado)
UDA-Componentes RUP. Hora  (v2.1.0 deprecado)UDA-Componentes RUP. Hora  (v2.1.0 deprecado)
UDA-Componentes RUP. Hora (v2.1.0 deprecado)
 
UDA-Componentes RUP. Combo (v2.1.1 deprecado)
UDA-Componentes RUP. Combo (v2.1.1 deprecado)UDA-Componentes RUP. Combo (v2.1.1 deprecado)
UDA-Componentes RUP. Combo (v2.1.1 deprecado)
 
UDA-Componentes RUP. Botonera (v2.1.0 deprecado)
UDA-Componentes RUP. Botonera  (v2.1.0 deprecado)UDA-Componentes RUP. Botonera  (v2.1.0 deprecado)
UDA-Componentes RUP. Botonera (v2.1.0 deprecado)
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
 
Ajax
AjaxAjax
Ajax
 
Funcionesclase1
Funcionesclase1Funcionesclase1
Funcionesclase1
 
JSP
JSPJSP
JSP
 
Manual analisis dominancia_1
Manual analisis dominancia_1Manual analisis dominancia_1
Manual analisis dominancia_1
 
Google apps engine
Google apps engineGoogle apps engine
Google apps engine
 
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
 
Manual PHP 7
Manual PHP 7Manual PHP 7
Manual PHP 7
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
 

Más de Ander Martinez

Arinbide Adaptativo. Monitorización.v1.0
Arinbide Adaptativo. Monitorización.v1.0Arinbide Adaptativo. Monitorización.v1.0
Arinbide Adaptativo. Monitorización.v1.0Ander Martinez
 
Arinbide Adaptativo. Diseño técnico.v1.0
Arinbide Adaptativo. Diseño técnico.v1.0Arinbide Adaptativo. Diseño técnico.v1.0
Arinbide Adaptativo. Diseño técnico.v1.0Ander Martinez
 
Arinbide Adaptativo. Defectos y errores .v1.0
Arinbide Adaptativo. Defectos y errores .v1.0Arinbide Adaptativo. Defectos y errores .v1.0
Arinbide Adaptativo. Defectos y errores .v1.0Ander Martinez
 
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0Ander Martinez
 
Arinbide adaptativo.v1.0
Arinbide adaptativo.v1.0Arinbide adaptativo.v1.0
Arinbide adaptativo.v1.0Ander Martinez
 

Más de Ander Martinez (6)

Arinbide Adaptativo. Monitorización.v1.0
Arinbide Adaptativo. Monitorización.v1.0Arinbide Adaptativo. Monitorización.v1.0
Arinbide Adaptativo. Monitorización.v1.0
 
Arinbide Adaptativo. Diseño técnico.v1.0
Arinbide Adaptativo. Diseño técnico.v1.0Arinbide Adaptativo. Diseño técnico.v1.0
Arinbide Adaptativo. Diseño técnico.v1.0
 
Arinbide Adaptativo. Defectos y errores .v1.0
Arinbide Adaptativo. Defectos y errores .v1.0Arinbide Adaptativo. Defectos y errores .v1.0
Arinbide Adaptativo. Defectos y errores .v1.0
 
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
 
Arinbide adaptativo.v1.0
Arinbide adaptativo.v1.0Arinbide adaptativo.v1.0
Arinbide adaptativo.v1.0
 
Arinbide.v3.0
Arinbide.v3.0Arinbide.v3.0
Arinbide.v3.0
 

Último

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 

Último (20)

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 

UDA-Componentes RUP. Autocomplete

  • 1. UDA – Utilidades de desarrollo de aplicaciones by EJIE is licensed under a Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 Unported License. UDA - Utilidades de desarrollo de aplicaciones Componentes RUP – Autocomplete Fecha: 03/12/2014 Referencia: EJIE S.A. Mediterráneo, 14 Tel. 945 01 73 00* Fax. 945 01 73 01 01010 Vitoria-Gasteiz Posta-kutxatila / Apartado: 809 01080 Vitoria-Gasteiz www.ejie.es
  • 2. Componentes RUP – Autocomplete ii/18 Control de documentación Título de documento: Componentes RUP – Autocomplete Histórico de versiones Código: Versión: Fecha: Resumen de cambios: 1.0.0 06/06/2011 Primera versión. 1.0.1 18/07/2011 Correcciones en los números de versión de ficheros. 1.1.0 14/09/2011 Actualización de las versiones de las librerías JavaScript subyacentes. Añadido el apartado Integración con UDA. 1.2.0 14/12/2011 Nuevos métodos getRupValue y setRupValue para la interacción con los demás componentes RUP. Nuevas propiedades labelName y valueName. 2.0.0 11/07/2012 Cambios de formato y correcciones ortográficas. 2.1.0 18/09/2012 Actualización de las versiones de las librerías JavaScript subyacentes. 2.4.0 22/11/2013 Se distribuye la versión minimizada de los ficheros javascript y de estilos de RUP. 2.4.1 13/03/2014 Nuevo método set. 2.4.4 03/12/2014 Nueva funcionalidad, combobox Nuevos eventos, rupAutocomplete_loadComplete, rupAutocomplete_change, rupAutocomplete_select. Nuevas propiedades menuAppendTo y menuMaxHeight. Cambios producidos desde la última versión Nueva funcionalidad, combobox Nuevos eventos, rupAutocomplete_loadComplete, rupAutocomplete_change, rupAutocomplete_select. Nuevas propiedades menuAppendTo y menuMaxHeight.
  • 3. Componentes RUP – Autocomplete iii/18 Control de difusión Responsable: Ander Martínez Aprobado por: Firma: Fecha: Distribución: Referencias de archivo Autor: Nombre archivo: Localización:
  • 4. Componentes RUP – Autocomplete iv/18 Contenido Capítulo/sección Página 1. Introducción 5 2. Ejemplo 5 3. Casos de uso 5 4. Infraestructura 5 4.1. Ficheros 5 4.2. Dependencias 6 4.3. Versión minimizada 6 5. Invocación 6 6. Propiedades 7 7. Funciones 10 8. Eventos 12 9. Sobreescritura del theme 14 10. Internacionalización (i18n) 15 11. Integración con UDA 16
  • 5. Componentes RUP – Autocomplete 5/18 1. Introducción La descripción del Componente Autocomplete, visto desde el punto de vista de RUP, es la siguiente: En cuanto el usuario comienza a escribir una búsqueda se le sugieren búsquedas relacionadas con lo que ha escrito que pueden ser de su interés. 2. Ejemplo Se presentan a continuación un ejemplo de este componente: 3. Casos de uso Se recomienda el uso del componente: • Cuando se desea mejorar la búsqueda ofreciendo sugerencias a los usuarios. 4. Infraestructura A continuación se comenta la infraestructura necesaria para el correcto funcionamiento del componente. • Únicamente se requiere la inclusión de los ficheros que implementan el componente (js y css) comentados en los apartados Ficheros y Dependencias. 4.1. Ficheros Ruta Javascript: rup/scripts/ Fichero de plugin: rup.autocomplete-x.y.z.js Ruta theme: rup/basic-theme/ Fichero CSS del theme: theme.rup.autocomplete- x.y.z.css
  • 6. Componentes RUP – Autocomplete 6/18 4.2. Dependencias Por la naturaleza de desarrollo de los componentes (patrones) como plugins basados en la librería JavaScript jQuery, es necesaria la inclusión del esta. La versión elegida para el desarrollo ha sido la versión 1.8.0. • jQuery 1.8.0: http://jquery.com/ La gestión de la ciertas partes visuales de los componentes, se han realizado mediante el plugin jQuery UI que se basa en jQuery y se utiliza para construir aplicaciones web altamente interactivas. Este plugin, proporciona abstracciones de bajo nivel de interacción y animación, efectos avanzados de alto nivel, componentes personalizables (estilos) ente otros. La versión utilizada en el desarrollo ha sido la 1.8.23. • jQuery UI 1.8.23: http://jqueryui.com/ Los ficheros necesarios para el correcto funcionamiento del componente son: • jquery-1.8.0.js • jquery-ui-1.8.23.custom.js • jquery-ui-1.8.23.custom.css • jquery.ui.autocomplete.js • rup.base-x.y.z.js • rup.autocomplete-x.y.z.js • theme.rup.autocomplete-z.y.z.css 4.3. Versión minimizada A partir de la versión v2.4.0 se distribuye la versión minimizada de los componentes RUP. Estos ficheros contienen la versión compactada y minimizada de los ficheros javascript y de estilos necesarios para el uso de todos los compontente RUP. Los ficheros minimizados de RUP son los siguientes: • rup/scripts/min/rup.min-x.y.z.js • rup/basic-theme/rup.min-x.y.z.css Estos ficheros son los que deben utilizarse por las aplicaciones. Las versiones individuales de cada uno de los componentes solo deberán de emplearse en tareas de desarrollo o depuración. 5. Invocación Este componente se invocará mediante un selector que indicará todos los elementos sobre los que se va a aplicar el componente Autocomplete. Por ejemplo:
  • 7. Componentes RUP – Autocomplete 7/18 $("#id_input").rup_autocomplete(properties); Donde el parámetro “properties” es un objeto ( var properties = {}; ) o bien directamente la declaración de lo valores directamente. Sus posibles valores se detallan en el siguiente apartado. Para facilitar la gestión de los datos del formulario, el input sobre el que se aplica el componente pasará a tener como nombre su nombre original seguido de “_label” y contendrá la descripción del valor seleccionado. El valor interno se guardará en un campo oculto cuyo nombre será el nombre original del input sobre el que se aplica el componente. Veámoslo con un ejemplo: 1. Se define el input sobre el que se aplica el componente: <input id=lenguaje name=lenguaje /> 2. Se invoca el componente sobre el input: $("#lenguaje").rup_autocomplete({...}); 3. Se modifica el código HTML y se convierte en: <input id=”lenguaje_label” name=”lenguaje_label” ruptype=”autocomplete”... /> <hidden id=”lenguaje” name=”lenguaje” ” ruptype=”autocomplete”... /> 6. Propiedades A continuación se muestran los posibles parámetros de configuración que recibe el componente. • source: este parámetro determina el tipo de autocomplete: local o remoto y define los datos que va a tener el autocomplete. o remoto se define la url a la que se solicitan los datos a cargar: source : "autocomplete/remote" Los datos devueltos por el servidor deberán seguir esta estructura JSON: [ {label: "Autocomplete_es", value:"Autocomplete"}, {label: "Combo_es", value:"Combo"}, {label: "Dialog_es", value:"Dialog"}, ... ] o local puede ser de dos tipos si los literales a mostrar dependen del idioma o no: sin dependencia: se define un array en JSON con los datos: source : ["asp", "c", "c++", "coldfusion", "groovy", "haskell", "java", "javascript", "perl", "php", "python", "ruby", "scala"]
  • 8. Componentes RUP – Autocomplete 8/18 con dependencia: se define un array en JSON de objetos con su valor (value) y su literal a mostrar (i18nCaption): source : [ {i18nCaption: "asp", value:"asp_value"}, {i18nCaption: "c", value:"c_value"}, {i18nCaption: "c++", value:"c++_value"}, {i18nCaption: "coldfusion", value:"coldfusion_value"}, ... ] • sourceParam: en el caso de un autocomplete remoto, deben configurarse los siguientes datos: o label: nombre de la columna de BBDD de la que se extrae la descripción (el literal a mostrar). o value: nombre de la columna de BBDD de la que se extrae el valor. Por ejemplo: sourceParam: { label:"desc_"+$.rup.lang, value:"code" } NOTA: En caso de utilizar una disposición horizontal para el idioma (varias columnas según idioma) se podrá hacer uso de la función “$.rup.lang” que devuelve el idioma actual (es, eu,…) para concatenarlo al nombre de la columna y obtener así el nombre de la columna que se desea. • minLength: define el número mínimo de caracteres a introducir antes de que se lance la búsqueda de datos. El valor por defecto en la búsqueda local es de 1 carácter, mientras que en remoto es de 3 caracteres mínimo, es decir que si se define un valor mayor se sobrescribe pero no con un valor menor. • menuAppendTo: permite especificar mediante un selector de jQuery el elemento del DOM al que se añadirá el menú desplegable. • menuMaxHeight: determina la altura máxima que podrá tener la capa del menú desplegable antes de mostrar scroll. • disabled: determina si se deshabilita el componente Autocomplete sobre el input al que se aplica. De tal modo que por mucho que se interactué con el elemento no se hará una búsqueda. Su valor por defecto es false. • delay: indica en milisegundos el tiempo que se espera entre que se pulsa una tecla y se lanza la búsqueda de los datos. Su valor por defecto es 300. • defaultValue: valor que se cargará por defecto en el input y con el que se lanzará una búsqueda para mostrar valores propuestos. • contains: valor que determina si la búsqueda debe ser del tipo “contiene” (se buscarán elementos que contengan en cualquier posición el literal introducido) o del tipo “comienza
  • 9. Componentes RUP – Autocomplete 9/18 por” (se buscarán elementos que comiencen por el literal introducido). El valor por defecto es true. NOTA: Se tiene en cuenta que el valor indicado para lanzar sugerencias deba cumplir el tamaño mínimo (minLength) o no se hará la búsqueda. • valueName: determina el valor de la propiedad name del campo que utilizará internamente el componente para almacenar el identificador del elemento seleccionado por el usuario. En caso de no especificarse, se tomará como valor el valor de la propiedad name del elemento sobre el cual se ha definido el componente. • labelName: : determina el valor de la propiedad name del campo que utilizará internamente el componente para almacenar el texto del elemento seleccionado por el usuario. En caso de no especificarse, se tomará como valor el valor de la propiedad name del elemento sobre el cual se ha definido el componente, añadiéndole el sufijo “_label”. • combobox : Permite configurar el componente para que muestre junto a él un botón que permite desplegar el menú de resultados. En caso de no haber introducido ningún texto por el que se deba filtrar los resultados se mostrarán todos los posibles. $("#autocomplete").rup_autocomplete({ // ... combobox: true });
  • 10. Componentes RUP – Autocomplete 10/18 7. Funciones A continuación se detallan las diferentes funciones que integran el componente Autocomplete: • destroy: elimina el autocomplete. La invocación se realizará de la siguiente manera: $(selector).rup_autocomplete("destroy"); • on: habilita el autocomplete (solo la parte de sugerencias). La invocación se realizará de la siguiente manera: $(selector).rup_autocomplete("on"); • off: deshabilita el autocomplete (solo la parte de sugerencias, el input sigue habilitado). La invocación se realizará de la siguiente manera: $(selector).rup_autocomplete("off"); • disable: deshabilita el autocomplete. Internamente invoca al método off. La invocación se realizará de la siguiente manera: $(selector).rup_autocomplete("disable"); • enable: habilita el autocomplete. Internamente invoca al método on. La invocación se realizará de la siguiente manera: $(selector).rup_autocomplete("enable"); • option: establece la configuración del autocomplete. La invocación se realizará de la siguiente manera: o Establecer una propiedad: $(selector).rup_autocomplete("option", "minLegth", 2); o Establecer varias propiedades: $(selector).rup_autocomplete("option", {minLegth:2, delay:1000}); • search: lanza una búsqueda en el autocomplete con el parámetro indicado y el foco va a parar al input. La invocación se realizará de la siguiente manera: $(selector).rup_autocomplete("search", "java"); • close: oculta el autocomplete. La invocación se realizará de la siguiente manera: $(selector).rup_autocomplete("close");
  • 11. Componentes RUP – Autocomplete 11/18 • val: devuelve el valor del autocomplete. Este es el valor que se guarda en el campo oculto antes descrito al final del apartado 7. La invocación se realizará de la siguiente manera: $(selector).rup_autocomplete("val"); Para obtener la descripción (dato que se muestra en el input) se invocará a la función estándar de jQuery: $(selector).val(); • getRupValue: método utilizado para obtener el valor del componente. Este método es el utilizado por el resto de componentes RUP para estandarizar la obtención del valor del Autocomplete. $(selector).rup_autocomplete("getRupValue"); • setRupValue: método utilizado para asignar el valor al componente. Este método es el utilizado por el resto de componentes RUP para estandarizar la asignación del valor al Autocomplete. $(selector).rup_autocomplete("setRupValue",value); • set: método utilizado para asignar el valor y el literal al componente. El valor se almacena en el campo hidden creado por el componente. El contenido indicado en la propiedad label se mostrará en el campo input del componente. $(selector).rup_autocomplete("set",value, label);
  • 12. Componentes RUP – Autocomplete 12/18 8. Eventos A continuación se detallan los eventos asociados al componente: • create: permite asociar una función que se ejecutará cuando se cree el autocomplete. Se configura de la siguiente manera: $(selector).rup_autocomplete({ create: function(){...} }); • search: permite asociar una función que se ejecutará antes de lanzar la búsqueda del autocomplete. Se configura de la siguiente manera: $(selector).rup_autocomplete({ search: function(){...} }); • open: permite asociar una función que se ejecutará cuando se muestre el autocomplete. Se configura de la siguiente manera: $(selector).rup_autocomplete({ open: function(){...} }); • focus: permite asociar una función que se ejecutará cuando se reciba el foco en el autocomplete. Se configura de la siguiente manera: $(selector).rup_autocomplete({ focus: function(){...} }); • select: permite asociar una función que se ejecutará cuando se seleccione un valor del autocomplete. Se configura de la siguiente manera: $(selector).rup_autocomplete({ select: function(){...} }); • close: permite asociar una función que se ejecutará cuando se oculte el autocomplete. Se configura de la siguiente manera: $(selector).rup_autocomplete({ close: function(){...} }); • rupAutocomplete_loadComplete: permite asociar una función que se ejecutará cuando se complete la carga de los registros correspondientes al texto de búsqueda introducido. $("#autocomplete").on("rupAutocomplete_loadComplete", function(event, data){ }); • rupAutocomplete_change: permite asociar una función que se ejecutará cuando se produzca un cambio en el valor seleccionado del comonente. $("#autocomplete").on("rupAutocomplete_change", function(event){ }); • rupAutocomplete_select: permite asociar una función que se ejecutará cuando se produzca la selección de un registro de entre la lista de resultados.
  • 13. Componentes RUP – Autocomplete 13/18 $("#autocomplete").on("rupAutocomplete_select", function(event, ui){ });
  • 14. Componentes RUP – Autocomplete 14/18 9. Sobreescritura del theme El componente autocomplete se presenta con una apariencia visual definida en el fichero de estilos theme.rup.autocomplete-x.y.z.css. Si se quiere modificar la apariencia del componente, se recomienda redefinir el/los estilos necesarios en un fichero de estilos propio de la aplicación situado dentro del proyecto de estáticos (codAppStatics/WebContent/codApp/styles). Los estilos del componente se basan en los estilos básicos de los widgets de jQuery UI, con lo que los cambios que se realicen sobre su fichero de estilos manualmente o mediante el uso de la herramienta Theme Roller podrán tener repercusión sobre todos los componentes que compartan esos mismos estilos (pudiendo ser el nivel de repercusión general o ajustado a un subconjunto de componentes). Ejemplo base de la estructura generada por el componente: <input class="ui-autocomplete-input"/> <ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner- all"> <li class="ui-menu-item"> <a class="ui-corner-all">item 1</a> </li> <li class="ui-menu-item"> <a class="ui-corner-all">item 2</a> </li> <li class="ui-menu-item"> <a class="ui-corner-all">item 3</a> </li> </ul>
  • 15. Componentes RUP – Autocomplete 15/18 10. Internacionalización (i18n) La internacionalización se realiza mediante el fichero de recursos definido para la aplicación que se encontrará en la parte estática bajo codAplic/resources/codAplic.i18n.json (con sus variantes según idioma ej: codAplic/resources/codAplic.i18n_es.json). En dicho fichero se deberá declarar un objeto JSON cuyo nombre sea el mismo que el id del elemento html sobre el que se aplica el componente. Ejemplo: "lenguaje" : { "asp":"asp_es", "c":"c_es", "c++":"c++_es", "coldfusion":"coldfusion_es", "groovy":"groovy_es", "haskell":"haskell_es", "java":"java_es", "javascript":"javascript_es", "perl":"perl_es", "php":"php_es", "python":"python_es", "ruby":"ruby_es", "scala":"scala_es" }
  • 16. Componentes RUP – Autocomplete 16/18 11. Integración con UDA El componente Autocomplete permite recuperar los datos almacenados en base de datos. Para ello se requiere cierta configuración en el Controller al que se invoca. Se deben declarar dos parámetros (que el componente envía automáticamente): q: termino introducido en el input. El termino introducido podría contener comodines (wildcards) que podrían obtener datos no deseados como son el carácter “_” que equivale a cualquier carácter o el carácter “%” que equivale a cualquier literal. Por ello en la petición al servidor se envía escapados automáticamente. Ejemplo de una petición con los caracteres escapados: http://localhost:7001/x21aDemoWAR/fase3/autocomplete/remote?q=%%%%&c=false c: booleano que determina si la búsqueda es del tipo “contiene” (true) o del tipo “empieza por” (false). El Service que invoca el Controller tendrá el método findAllLike (entidad, paginación, c) (si se ha generado con el plugin UDA) que se empleará para realizar la búsqueda. Sus parámetros son los siguientes: entidad: objeto creado por el desarrollador que contendrá en el campo por el que se desea buscar el termino introducido: MiEntidad miEntidad = new Entidad(); miEntidad.setCampoBusqueda(q); paginación: objeto empleado para hacer filtrados/paginaciones. En el ejemplo actual se manda null ya que no se requiere esta funcionalidad. c: parámetro enviado por el componente que determina el tipo de búsqueda. A continuación se muestra un ejemplo (se destacan con fondo gris los elementos a configurar): @RequestMapping(value = "autocomplete/remote", method=RequestMethod.GET) public @ResponseBody List<Patrones> getRemoteAutocomplete( @RequestParam(value = "q", required = true) String q, @RequestParam(value = "c", required = true) Boolean c){ //Idioma Locale locale = LocaleContextHolder.getLocale(); //Filtro según idioma Patrones patrones = new Patrones(); if (com.ejie.x38.util.Constants.EUSKARA.equals(locale.getLanguage()) ){ patrones.setDescEu(q); }else{ patrones.setDescEs(q); }
  • 17. Componentes RUP – Autocomplete 17/18 return patronesService.findAllLike(patrones, null, c); } El método devuelve una lista de entidades en este caso List<Patrones> donde cada entidad tendrá todos y cada uno de los atributos cargados con los valores de la Base de Datos. Al devolver la lista con la anotación @ResponseBody, entrará en funcionamiento Jackson (parseador de JSON de Spring) para convertir la lista JAVA en una lista JSON: JAVA: patronesList : patronesList [0] code = Autocomplete descEs = Autocomplete_es descEu = Autocomplete_eu css = filter patronesList [1] code = Combo descEs = Combo_es descEu = Combo_eu css = print … JSON: [ {code="Autocomplete", descEs="Autocomplete_es", descdescEu="Autcomplete_eu", css="filter" }, {code="Combo", descEs="Combo_es", descEu="Combo_eu", css="print" }, … ] Como se ha explicado en anteriormente en el atributo source en el apartado 8 (propiedades) el componente requiere de una estructura de terminada para cargar el combo: [ {label: "Autocomplete_es", value:"Autocomplete", style:"aaa"}, {label: "Combo_es", value:"Combo ", style:"bbb"}, {label: "Dialog_es", value:"Dialog", style:"ccc"}, ... ] La traducción entre la estructura devuelta por el controller y la que espera el componente se realiza mediante un serializador propio de UDA. Para que este entre en funcionamiento simplemente se deberá configurar el fichero mvc-config del WAR (/xxxWAR/WebContent/WEB-INF/spring/mvc-config.xml) indicando que el modelo utilizado utilice el serializador de UDA: <bean id="jacksonJsonCustomSerializerFactory" class="com.ejie.x38.serialization.CustomSerializerFactoryRegistry"> <property name="serializers">
  • 18. Componentes RUP – Autocomplete 18/18 <map> <entry key="com.ejie.x21a.model.Patrones" value-ref="customSerializer" /> ... </map> </property> </bean> Para que la serialización se realice correctamente, el componente envía en la petición una cabecera de RUP con la información necesaria para realizar la serialización. {"label":"descEs","value":"code","style":"css"} NOTA: Al generar el código con el plugin de UDA, se añade este serializador para todos los objetos del modelo creados.