A continuación encontrarás traducido al Castellano el artículo escrito por Ricardo Cruz y publicado originalmente en el Blog oficial de Xojo.
¿Qué ocurre cuando Xojo Web añade soporte para Arrastrar y Soltar, ofrece más posibilidades en WebListBox, e incorpora más de 40 cambios? ¡Vamos a averiguarlo!
Soporte para Arrastrar y Soltar
La principal novedad esta vez es que hemos añadido soporte general para arrastrar y soltar al framework Web. A partir de ahora cualquier control visual puede arrastrarse y/o aceptar otros controles soltados sobre ellos. Esto incluye a los controles que se hayan creado usando el SDK Web, permitiéndote (y también a terceras partes) aumentar la experiencia del usuario en los proyectos Web.
Imagina todas las nuevas formas de actualizar una aplicación de bases de datos. Por ejemplo, ahora puedes crear una app web como “Diseñador de Formularios”, un “Creador de sitios web” o incluso un “Esquema de Bases de datos”, donde el usuario puede arrastrar elementos desde una librería y soltarlos en el editor. ¿Estás planificando la publicación de entradas en redes sociales, usando un WebDatePicker? ¿Qué tal usar una vista de calendario con soporte de arrastrar y soltar?
Hemos incluido un ejemplo de Tablero Kanban con soporte de arrastrar y soltar. Echa un vistazo al artículo relacionado para saber más sobre cómo está creado (o bien al ejemplo propiamente dicho, al que puedes acceder desde el IDE).
¿Cuan molón es eso?
Si bien Arrastrar y Soltar puede contribuir a que tu app sea más sencilla de usar, para algunos usuarios, también puede suponer una barrera de accesibilidad. Simplemente recuerda el ofrecer algún otro mecanismo de interacción con tu app. En una app Kanban completa, por ejemplo, el usuario aún tendría que ser capaz de cambiar el estado de una tarea, desde la pantalla de detalles relacionado con la tarea propiamente dicha, usando un simple WebPopupMenu (o bien cualquier otro mecanismo accesible).
Actualizaciones en WebListBox
Y hablando de arrastrar cosas. El WebListBox soporta el reordenado de las filas mediante el dispositivo apuntador. Sólo has de activar la nueva propiedad Allow row Reordering (la cual se encuentra desactivada por defecto), y ya estará todo listo.
También puedes hacerlo en tiempo de ejecución con AllowRowReordering. Una vez que el usuario haya finalizado la reordenación, se disparará el evento RowsReordered permitiéndote así persistir los cambios en tu base de datos, por ejemplo.
Otra característica solicitada es la de permitir que los usuarios puedan realizar ediciones sobre la propia fila. WebListBox ha recibido algunos nuevos métodos y eventos para hacerlo posible:
- ColumnTypeAt: para permitir que toda una columna sea editable.
- CellTypeAt: para sobreescribir ColumnTypeAt en celdas concretas.
- EditCellAt: un método que puedes utilizar para iniciar la edición sobre celdas concretas.
- Evento CellAction: te permite persistir los cambios realizados por el usuario.
Esto también está soportado cuando se utiliza WebDataSource.
Y no sólo están soportados el uso de TextField y TextArea; el control CheckBox también forma parte de la enumeración WebListBox.CellTypes para concordar así con lo que está soportado en el DesktopListBox:
Por último, pero no por ello menos importante, hemos decidido dividir CellTextAt en dos métodos diferentes. Hasta ahora, podías obtener y definir la etiqueta de una celda mediante CellTextAt, pero también un WebListBoxCellRenderer. Esto podía causar problemas porque se devolvía una variante, que podría ser o bien una String o bien un WebListBoxCellRenderer, de modo que cuando no se utilizaba con cuidado podría elevar una IllegalCastException en tiempo de ejecución.
A partir de ahora, CellTextAt sólo soporta String. Si quieres obtener o asignar un renderer de celdas, has de utilizar CellRendererAt. Esto hace que la API sea más evidente.
Si estabas usando CellTextAt para obtener o definir renderers de celdas, tendrás que actualizar tu código para utilizar CellRendererAt ahora.
En resumen
Esta versión potencia los proyectos Xojo Web para cumplir más con las necesidades de los usuarios, sin necesidad de tener que usar JavaScript. El soporte de Arrastrar y Soltar finalmente se suman a la fiesta, rellenando así un hueco significativo con respecto al antiguo framework Web 1.
Asegúrate de leer las notas de revisión, puesto que 2025r1 contiene más de 40 cambios específicos para proyectos web.
¡Me encantaría saber cómo estás utilizando estas mejoras en tus proyectos! Deja algunas capturas de pantalla o grabaciones en un nuevo hilo del foro o bien envíame un mensaje privado si lo prefieres.
¡Feliz programación!