<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Vaadin on Flowing Code</title><link>https://www.flowingcode.com/es/tag/vaadin/</link><description>Recent content in Vaadin on Flowing Code</description><generator>Hugo</generator><language>es-AR</language><lastBuildDate>Tue, 15 Jun 2021 11:51:23 +0000</lastBuildDate><atom:link href="https://www.flowingcode.com/es/tag/vaadin/index.xml" rel="self" type="application/rss+xml"/><item><title>Vaadin TreeGrid con carga diferida, filtrado y ordenamiento.</title><link>https://www.flowingcode.com/es/vaadin-treegrid-carga-diferida-filtrado-ordenamiento/</link><pubDate>Thu, 13 May 2021 14:24:02 +0000</pubDate><guid>https://www.flowingcode.com/es/vaadin-treegrid-carga-diferida-filtrado-ordenamiento/</guid><description>&lt;figure class="wp-block-image size-large is-resized">&lt;img alt="" class="wp-image-741" height="376" loading="lazy" src="https://www.flowingcode.com/images/uploads/2021/04/TreeGrid-1.png" width="841"/>&lt;/figure>
&lt;p class="wp-block-paragraph">Estoy dando mis primeros pasos en Vaadin 14 después de mucho, mucho tiempo de trabajar en proyectos de Vaadin 8 y quiero compartir mi experiencia cuando me tocó trabajar con el componente TreeGrid para mostrar datos en una estructura jerárquica. Me encontré con esta situación en la que necesitaba agregar filtrado y ordenamiento a un TreeGrid de Vaadin que estaba utilizando carga diferida. Como base, tenía &lt;a href="https://www.flowingcode.com/en/lazy-filtered-and-sorted-vaadin-grid-using-external-data-source/">este&lt;/a> artículo de similar implementación utilizando el componente Grid, pero algunas cuestiones son diferentes si hablamos de TreeGrid, así que pensé que sería una buena idea compartir todos los pasos necesarios y algunos tips a tener en cuenta para este tipo de implementación.&lt;/p></description></item><item><title>Repaso de otro año: La nueva normalidad</title><link>https://www.flowingcode.com/es/resumen-anual-nueva-normalidad/</link><pubDate>Wed, 07 Apr 2021 19:32:57 +0000</pubDate><guid>https://www.flowingcode.com/es/resumen-anual-nueva-normalidad/</guid><description>&lt;div class="wp-block-image">&lt;figure class="alignright size-large is-resized">&lt;img alt="" class="wp-image-656" height="269" loading="lazy" src="https://www.flowingcode.com/images/uploads/2021/04/happy_birthday_2.jpg" width="258"/>&lt;/figure>&lt;/div>
&lt;p class="wp-block-paragraph">Nuestra vida, modo de disfrutar, vivir y trabajar ha cambiado pero todavía estamos dando lo mejor para proveer los servicios de calidad que nuestros clientes necesitan. Este es un repaso de otro año contando nuestros más importantes hitos alcanzados.&lt;/p></description></item><item><title>Aplicación Demo Vaadin 10 + Spring: estadísticas de la Copa Mundial Rusia 2018</title><link>https://www.flowingcode.com/es/aplicacion-demo-vaadin-10-spring-estadisticas-de-la-copa-mundial-rusia-2018/</link><pubDate>Wed, 20 May 2020 18:06:58 +0000</pubDate><guid>https://www.flowingcode.com/es/aplicacion-demo-vaadin-10-spring-estadisticas-de-la-copa-mundial-rusia-2018/</guid><description>&lt;div style="clear: both; text-align: center;">&lt;img alt="" class="alignnone size-full wp-image-430" height="340" loading="lazy" src="https://www.flowingcode.com/images/uploads/2018/07/Vaadin-10-Spring-Demo-application_-World-Cup-Rusia-2018-stats-1.png" width="760"/>&lt;/div>
&lt;div>
&lt;div>&lt;/div>
&lt;div style="text-align: justify;">Para probar algunas nuevas e interesantes tecnologías web, decidimos crear una pequeña aplicación demo que muestre ideas que podrían ayudar a un desarrollador cuando intente decidir cuáles usar en un nuevo proyecto. Esto lo realizamos, teniendo en mente el objetivo de que sea responsiva, que permita mostrar información acumulada y en tiempo real del Mundial de Fútbol que actualmente se desarrolla en Rusia.&lt;/div>
&lt;/div>
&lt;h4>Tecnologías&lt;/h4>
&lt;div>Las tecnologías elegidas fueron:&lt;/div>
&lt;div>
&lt;ul>
&lt;li style="text-align: justify;">&lt;a href="https://vaadin.com/" rel="noopener noreferrer" target="_blank">Vaadin 10&lt;/a>: La nueva versión de este popular framework, basada en los nuevos estándares impulsados por los browsers más populares.&lt;/li>
&lt;li style="text-align: justify;">&lt;a href="https://spring.io/" rel="noopener noreferrer" target="_blank">Spring Framework&lt;/a>: El framework de inyección de dependencias estándar, que actúa como la columna vertebral de la mayoría de los proyectos en java actuales.&lt;/li>
&lt;li style="text-align: justify;">REST API: Nuestro proyecto utiliza la API que puede encontrarse &lt;a href="http://worldcup.sfg.io/" rel="noopener noreferrer" target="_blank">aquí&lt;/a>. La misma expone los datos como una API REST entregando la información en formato JSON.&lt;/li>
&lt;/ul>
&lt;/div>
&lt;h4>Características&lt;/h4>
&lt;div>Esta es la lista de las principales características de la aplicación:&lt;/div>
&lt;div>
&lt;ul>
&lt;li style="text-align: justify;">Es responsiva, mostrará correctamente la información independientemente del dispositivo que se utilice. Esto es posible gracias a Vaadin y Polymer.&lt;/li>
&lt;li style="text-align: justify;">Dependiendo del dispositivo en que navegues el sitio (especialmente dispositivos móviles), puedes agregar la aplicación a la pantalla de inicio, para que se vea como una aplicación nativa. El único inconveniente es que no funcionará en modo offline (aún, capaz pronto).&lt;/li>
&lt;li style="text-align: justify;">Se pueden seguir los resultados de los partidos en tiempo real. Utilizando WebSockets, la aplicación mantiene un canal de comunicación abierto entre el navegador y el servidor, por lo que las actualizaciones pueden ser informadas al cliente tan pronto como se reciban de la API&lt;/li>
&lt;/ul>
&lt;h4>Construcción&lt;/h4>
&lt;div style="text-align: justify;">Se necesita tener un buen punto de inicio para comenzar un nuevo proyecto. Para nosotros, ese punto de inicio fue el starter &lt;a href="https://vaadin.com/start/v10-project-base-spring" rel="noopener noreferrer" target="_blank">Vaadin Base Project with String&lt;/a>. Al seleccionar esta opción, nos beneficiamos del hecho de que ya tiene una configuración Spring probada y en funcionamiento, por lo que la decisión fue fácil.&lt;/div>
&lt;h4>Responsividad&lt;/h4>
&lt;div>
&lt;div style="text-align: justify;">Alcanzamos esta meta, trabajando en paralelo en el desarrollo de &lt;a href="https://vaadin.com/directory/component/app-layout-addon" rel="noopener noreferrer" target="_blank">un nuevo addon para Vaadin&lt;/a> que permite construir nuevas aplicaciones usando una estructura simple que se encarga de construir los elementos visuales habituales presentes en una aplicación responsiva: hamburger menu, paper-cards y más.&lt;/div>
&lt;/div>
&lt;div>
&lt;div style="text-align: justify;">Además, utilizamos algunas técnicas CSS como media queries para completar los toques finales.&lt;/div>
&lt;/div>
&lt;h4>PWA&lt;/h4>
&lt;div>
&lt;div style="text-align: justify;">Para permitir que la aplicación pueda agregarse a la pantalla de inicio de un dispositivo, y se muestre como una aplicación nativa, generamos un manifiesto PWA, con algunas propiedades que puede imitar fácilmente, utilizando una herramienta como el &lt;a href="https://app-manifest.firebaseapp.com/" rel="noopener noreferrer" target="_blank">App Manifest Generator&lt;/a>.&lt;/div>
&lt;/div>
&lt;h4>Actualizaciones en tiempo real&lt;/h4>
&lt;/div>
&lt;div style="clear: both; text-align: center;">&lt;/div>
&lt;div>
&lt;div style="text-align: justify;">Esto es realmente fácil de implementar, gracias a la tecnología @Push de Vaadin, la cual está basada en Websockets. Solamente agregando una simple anotación al layout principal y la aplicación cobrará vida.&lt;/div>
&lt;div style="text-align: justify;">Puede aprender más sobre esta tecnología en la &lt;a href="https://vaadin.com/docs/v10/flow/advanced/tutorial-push-configuration.html" rel="noopener noreferrer" target="_blank">documentación oficial de Vaadin&lt;/a>.&lt;/div>
&lt;h4>Roadmap&lt;/h4>
&lt;p>Estas son las funcionalidades que quisiéramos poder implementar en un futuro cercano:&lt;/p></description></item><item><title>Estilos CSS y temas en Vaadin 14</title><link>https://www.flowingcode.com/es/estilos-css-y-temas-en-vaadin-14/</link><pubDate>Mon, 11 May 2020 15:14:57 +0000</pubDate><guid>https://www.flowingcode.com/es/estilos-css-y-temas-en-vaadin-14/</guid><description>&lt;p>&lt;img alt="" class="alignnone size-full wp-image-375" height="340" loading="lazy" src="https://www.flowingcode.com/images/uploads/2019/08/CSS-Theming-Styling-in-Vaadin-14.png" width="760"/>&lt;/p>
&lt;p>Hace una semana fue publicada la nueva &lt;a href="https://vaadin.com/roadmap" rel="noopener noreferrer" target="_blank">version LTS&lt;/a> del framework de presentación.&lt;br/>
Mientras es posible encontrar toda la información de las &lt;a href="https://vaadin.com/blog/top-14-new-features-in-vaadin-14" rel="noopener noreferrer" target="_blank">nuevas caractrísticas&lt;/a> en el sitio oficial, me gustaría hacer foco en una característica en particular, a la que yo encuentro muy interesante: el manejo de estilos.&lt;br/>
A lo largo de los años vimos diferentes maneras de administrar los estilos en las aplicaciones Vaadin.&lt;br/>
En Vaadin 6 se podian modificar los estilos usando CSS simple. Por supuesto, tenías dos opciones: construir todo desde cero o heredar alguno de los temas ya integrados como Reindeer, Runo o Chameleon. Ese esquema de herencia se basó en la sentencia @import de CSS, que es la base del comportamiento en cascada de los estilos CSS.&lt;br/>
El problema con este enfoque es que dificulta la personalización por la complejidad del DOM renderizado y la falta de variables que pudieran ayudar a modificar ciertos aspectos de los temas base como tamaño y el espaciado, que varias reglas tenían en común.&lt;/p></description></item><item><title>Inauguración de oficinas y charlas de Vaadin</title><link>https://www.flowingcode.com/es/inauguracion-de-oficinas-y-charlas-de-vaadin/</link><pubDate>Mon, 11 May 2020 14:55:49 +0000</pubDate><guid>https://www.flowingcode.com/es/inauguracion-de-oficinas-y-charlas-de-vaadin/</guid><description>&lt;p>El martes pasado organizamos un pequeño evento, que tuvo dos objetivos principales. El primero de ellos fue el de darnos a conocer con los desarrolladores de la ciudad y de la zona, y presentarles nuestras instalaciones. El segundo objetivo, fue el de dar el puntapié inicial para una planificación de charlas de tecnología previstas para el año próximo.&lt;br/>En este primer encuentro, realizamos un par de presentaciones. Para comenzar, hablamos sobre &lt;a href="https://vaadin.com/docs/v8/index.html">Vaadin 8&lt;/a>, ofrecimos una descripción general del framework y su arquitectura, y una lista de las principales nuevas características desde &lt;a href="https://vaadin.com/docs/v7/index.html">Vaadin 7&lt;/a>.&lt;br/>Luego presentamos la nueva plataforma &lt;a href="https://vaadin.com/docs/v10/index.html">Vaadin 10&lt;/a>, explicando las nuevas tecnologías detrás del framework y las nuevas características disponibles en la versión de prueba para desarrolladores.&lt;br/>Para finalizar, invitamos a todos con bocaditos y bebidas en la terraza abierta, con un cielo estrellado como telón de fondo, donde pudimos hablar de nuevas tecnologías y generar nuevos contactos.&lt;br/>¡Compartimos algunas fotos del evento!&lt;/p></description></item><item><title>Implementación de Spring Security en una aplicación Vaadin</title><link>https://www.flowingcode.com/es/implementacion-de-spring-security-en-una-aplicacion-vaadin/</link><pubDate>Mon, 11 May 2020 14:46:54 +0000</pubDate><guid>https://www.flowingcode.com/es/implementacion-de-spring-security-en-una-aplicacion-vaadin/</guid><description>&lt;div style="clear: both; text-align: center;">&lt;img alt="" class="alignnone size-full wp-image-440" height="340" loading="lazy" src="https://www.flowingcode.com/images/uploads/2017/10/Implementing-Spring-Security-on-a-Vaadin-application.png" width="760"/>&lt;/div>
&lt;p>Hoy voy a escribir un poco sobre mi experiencia en tratar de dar seguridad a una aplicación simple de Vaadin usando uno de los frameworks de seguridad más populares: las extensiones de seguridad de SpringFramework.&lt;br/>
Esta publicación abordará la parte de realizar una configuración predeterminada para que funcione, por supuesto que después de esto, tendremos muchas cosas para hacer en el proyecto para terminar de implementarlo, como almacenar y recuperar los datos de usuario de la base de datos utilizada, elegir el algoritmo de encriptación de contraseña, etc. Pero al menos tendrás una visión general de lo que se debe hacer para lograr esto.&lt;/p></description></item><item><title>Capacidades de edición de la Grilla de Vaadin</title><link>https://www.flowingcode.com/es/capacidades-de-edicion-de-la-grilla-de-vaadin/</link><pubDate>Mon, 11 May 2020 14:37:51 +0000</pubDate><guid>https://www.flowingcode.com/es/capacidades-de-edicion-de-la-grilla-de-vaadin/</guid><description>&lt;div class="wp-block-group">&lt;div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
&lt;div>&lt;img alt="" class="alignnone size-full wp-image-442" height="340" loading="lazy" src="https://www.flowingcode.com/images/uploads/2017/10/Vaadins-Grid-editing-capabilities.png" width="760"/>&lt;/div>
&lt;div style="text-align: justify;">En esta oportunidad, me gustaría hablar un poco sobre algo que creo que es una de las funcionalidades más poderosas del componente “Vaadin Grid”: la función de edición. La vista predeterminada del componente es una vista de solo lectura, de los datos de la tabla cargados en este componente. Pero si habilitamos el editor, podremos modificar visualmente las celdas de la grilla y cambiar los datos que ésta mantiene en la memoria del servidor. Analicemos algunas dificultades en el uso esta función y cómo superarlas.&lt;/div>
&lt;h3>Edición en línea&lt;/h3>
&lt;div style="text-align: justify;">Si observamos la aplicación demo de ejemplo, veremos que el Editor es como un pequeño formulario que se abre cada vez que hacemos doble clic en una fila. Diferente al comportamiento previo del componente, en las versiones anteriores de Vaadin (Table). Con Table, cuando hacemos doble clic, la fila completa cambia a modo lectura/escritura, sin convertir la fila en un “mini-formulario” como ahora lo hace Grid. Por supuesto, este comportamiento es configurable, puedes deshabilitarlo simplemente invocando a &lt;span style="background-color: white; color: #464440; font-size: 14px;">&lt;span style="font-family: 'courier new' , 'courier' , monospace;">&lt;b>setBuffered(false)&lt;/b>&lt;/span>&lt;/span>&lt;span style="background-color: white; color: #464440; font-family: 'helvetica neue' , 'helvetica' , 'arial' , 'microsoft yahei new' , 'microsoft yahei' , 'simsun' , 'stxihei' , sans-serif; font-size: 14px; font-style: italic;">.&lt;/span>&lt;/div>
&lt;div style="text-align: justify;">A pesar de ser de alguna manera mucho más visual, este nuevo comportamiento podría no ser no deseado para aquellas aplicaciones empresariales que dependen más del teclado, y no tanto del mouse, para manejar la tabla o la grilla.&lt;/div>
&lt;div style="text-align: justify;">Pero si los usuarios desean este tipo de manejo de la grilla, entonces el complemento &lt;a href="https://vaadin.com/directory#!addon/gridfastnavigation-add-on" rel="noopener noreferrer" target="_blank">Grid Fast Navigation Addon&lt;/a> es lo ideal. Éste utiliza &lt;a href="https://vaadin.com/docs/-/part/framework/gwt/gwt-extension.html" rel="noopener noreferrer" target="_blank">Component Extension feature&lt;/a>para darle a la grilla una nueva apariencia, que hace que la edición sea mucho más fácil y la transforma, otorgándole una de edición sencilla al estilo de Excel.&lt;/div>
&lt;table align="center" cellpadding="0" cellspacing="0" style="margin-left: auto; margin-right: auto; text-align: center;">
&lt;tbody>
&lt;tr>
&lt;td style="text-align: center;">&lt;a href="https://www.flowingcode.com/wp-content/uploads/2017/10/FastNavigation.gif" style="margin-left: auto; margin-right: auto;">&lt;img border="0" loading="lazy" src="https://www.flowingcode.com/images/uploads/2017/10/FastNavigation.gif"/>&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="font-size: 12.8px;">Complemento Grid Fast Navigation en acción.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3>Componentes&lt;/h3>
&lt;div style="text-align: justify;">Otra cosa que evitó que algunos desarrolladores dejaran de usar Table y comenzaran a usar Grid, fue que no se podía usar un componente estándar dentro de una celda de la grilla. Si se desea, por ejemplo, utilizar casillas de verificación dentro de una celda, se debe crear una clase especial, llamada “renderer”, que debe manejar el lado cliente y el lado del servidor de esa celda.&lt;/div>
&lt;div style="text-align: justify;">Afortunadamente, hay algunos complementos que pueden ayudarte con esa tarea. El que se destaca es &lt;a href="https://vaadin.com/directory#!addon/grid-renderers-collection-for-vaadin7" rel="noopener noreferrer" target="_blank">Grid renderes collection&lt;/a> (disponible para las versiones Vaadin 7 y 8). Esta colección proporciona muchos componentes que permiten manejar selecciones, casillas de verificación, imágenes, etc.&lt;/div>
&lt;div style="text-align: justify;">En la &lt;a href="https://vaadin.com/blog/-/blogs/vaadin-8-1-beta-is-out" rel="noopener noreferrer" target="_blank">última versión de Vaadin&lt;/a>, una de las características más interesantes es el nuevo Renderer, que da la capacidad de utilizar un componente Vaadin dentro de una celda de una grilla. Se puede ver una vista previa en la &lt;a href="https://demo.vaadin.com/sampler/#ui/grids-and-trees/grid/component-renderer" rel="noopener noreferrer" target="_blank">aplicación de ejemplo&lt;/a>.&lt;/div>
&lt;div style="text-align: justify;">Sin embargo, si estás utilizando Vaadin 7, podrías usar una versión experimental de esta característica, instalando &lt;a href="https://vaadin.com/directory#!addon/componentrenderer" rel="noopener noreferrer" target="_blank">Component Renderer Addon&lt;/a>.
&lt;br/>
¡Pruébalo!&lt;/div>
&lt;div style="text-align: justify;">&lt;/div>
&lt;/div>&lt;/div></description></item><item><title>Resumen de nuestro año: #QuedateEnCasa #Cuidate</title><link>https://www.flowingcode.com/es/resumen-de-nuestro-ultimo-periodo/</link><pubDate>Tue, 14 Apr 2020 20:16:54 +0000</pubDate><guid>https://www.flowingcode.com/es/resumen-de-nuestro-ultimo-periodo/</guid><description>&lt;div class="wp-block-image">&lt;figure class="alignright size-large is-resized">&lt;img alt="" class="wp-image-452" height="260" loading="lazy" src="https://www.flowingcode.com/images/uploads/2020/04/photo4blog.jpg" width="260"/>&lt;/figure>&lt;/div>
&lt;p class="wp-block-paragraph">A pesar de que estamos transitando estos tiempos bastante inciertos y la realidad del mundo hoy es muy diferente a lo que era un año atrás, Flowing Code está cumpliendo 3 años y queríamos aprovechar el momento para reconocer el buen trabajo y el crecimiento que logramos. Así que aquí va un resumen de nuestro último año:&lt;/p></description></item></channel></rss>