OpenXava 5.8 liberado
miércoles, octubre 18, 2017 at 11:18AM
javierpaniza
OpenXava 5.8 permite importar datos desde Excel o CSV, en modo lista es posible agrupar por cualquier propiedad para obtener la suma por grupos, el usuario puede cambiar el nombre de las columna en la lista y en las colecciones, el programador tiene más flexibilidad al definir controladores y llenar combos, también hemos mejorado la experiencia de usuario y la apariencia, y mucho más.

Te invitamos a que descargues esta nueva versión y actualices tus aplicaciones OpenXava. Mira las instrucciones de migración.

Importación de datos

Un nuevo botón en modo lista llamado "Importar datos" te permite escoger un archivo de tu ordenador:

El archivo puede ser CSV, XLSX (Excel 2007/2010/2013) o XLS (Excel 97/2000/XP/2003). Después de seleccionar el archivo presiona el botón "Configurar importación" para mostrar el siguiente diálogo:

Aquí puedes asignar columnas de tu archivo Excel a columnas en tu aplicación. OpenXava intentará darte unos valores iniciales los más acertados posible. Ahora simplemente pulsa en "Importar" para cargar los datos en tu aplicación.

Grupos en la lista

En la esquina superior izquierda del modo lista puedes encontrar un combo con todas las posibles opciones de agrupación:

Fíjate como puedes agrupar por cada propiedad o referencia en la lista. Además, para el caso de las fecha puedes agrupar por el mes o el año de la fecha. Por ejemplo, si quieres agrupar por el mes de la fecha obtendrás:

Aquí tiene la suma de los importes de las facturas por mes. OpenXava muestra por defecto todas las propiedades numéricas susceptibles de ser sumadas. Puedes ordenar, filtrar y generar PDF para esta lista.

Renombrar columnas por usuario

En modo personalización el usuario puede cambiar las etiquetas de las columnas en la lista y en las colecciones. Ahora en cada columna hay un nuevo icono para eso:


Los cambios se almacenan por usuario.

Apariencia

Los mensajes tienen una nueva apariencia:



Además, se quedán fijos en una posición de la pantalla incluso aunque se desplace la página, y pueden ser cerrados por el usuario.

También hemos mejorados las descripciones emergentes (tooltips):

Los tooltips se muestran cuando el campo obtiene el foco y se mantienen hasta que el foco se pierde, así puedes usar las descripciones emergentes como una alternativa a un manual de usuario. Cuando el tooltip coincide con la etiqueta no se muestra.

Hemos hecho algunas otras mejoras en la apariencia:

Mejoras en los controladores

En la herencia de controladores puedes excluir acciones del padre con el nuevo atributo acciones-excluidas. Por ejemplo:
<controlador nombre="Familia">
    <hereda-de controlador="Typical" acciones-excluidas="refresh, delete"/>
</controlador>
En este caso el controlador Familia tiene todas las acciones de Typical excepto refresh y delete. Antes necesitábamos hacer un copiar y pegar para casos como este.
Además, tenemos un nuevo atributo disponible-en-nuevo en accion para excluir acciones al crear un nuevo elemento. Fíjate en la acción borrar en el siguiente controlador:
<controlador nombre="Factura">

    <accion nombre="nuevo" 
        clase="org.openxava.actions.NewAction"
        icono="library-plus"/>

    <accion nombre="grabar" modo="detail"
        por-defecto="si-posible"
        clase="org.openxava.actions.SaveAction"
        icono="content-save"
        atajo-de-teclado="Control S"/>
    
    <accion nombre="borrar" modo="detail" confirmar="true"
        clase="org.openxava.actions.DeleteAction"
        icono="delete"
        disponible-en-nuevo="false"
        atajo-de-teclado="Control D"/>     
            
</controlador>
En este caso nuevo y grabar se muestran siempre, pero borrar (por disponible-en-nuevo=false) se muestra sólo cuando hay un elemento seleccionado y no cuando un nuevo elemento está siendo creado. El valor por defecto para disponible-en-nuevo es true. Esto permite mejorar la experiencia de usuario sin programar.

Combos con contenido arbitrario

Para un combo con una lista estática de elementos puedes usar una propiedad de tipo enum. Para un combo que obtiene los datos de la base de datos puedes usar una referencia con @DescriptionsList. Si lo que necesitas es cualquier otra cosa a partir de v5.8 cuentas con algunos métodos en la clase org.openxava.view.View que permiten crear una lista desplegable para cualquier propiedad usando tu propia lógica. Por ejemplo, para una propiedad simple como esta:
private String color;
Puedes añadir un combo por código de esta manera:
getView().addValidValue("color", "blc", "Blanco");
getView().addValidValue("color", "ngr", "Negro");
Esto crea un combo para la propiedad color con dos valores, "blc" con la etiqueta "Blanco" y "ngr" con la etiqueta "Negro". Aparte de addValidValue(), también tienes removeValidValue() y getValidValues().

También hemos mejorado la flexibilidad de @DescriptionsList, así si tienes una referencia como esta:
@DescriptionsList
@ManyToOne
private Provincia provincia;
Puedes añadir (o cambiar) una condición por código, de esta manera:
getView().setDescriptionsListCondition("provincia", "nombre like '%VA%'");
Es decir, adiós a los editores personalizados sólo para hacer un simple combo.

Experiencia de usuario

Hemos hecho algunas prueba de usabilidad y estas son las consecuencias:

Otras mejoras

Hemos hecho muchas mejoras en otras áreas:

Arreglos

Aunque esta no es una versión de mantenimiento hemos arreglado algunas cosas:

Descarga OpenXava 5.8

Article originally appeared on javaHispano (http://www.javahispano.org/).
See website for complete article licensing information.