¿Qué es OpenXava?
Utilizando la definición de sus creadores:
OpenXava es un marco de trabajo AJAX para desarrollo rápido de aplicaciones web empresariales.
Con OpenXava sólo has de escribir las clases del dominio con Java para obtener una aplicación web lista para producción.
Vamos a probarlo y a desarrollar un ejemplo con las funcionalidades para probar OpenXava para el desarrollo de aplicaciones web empresariales.
El tutorial
En esta primera aproximación vamos a desarrollar 3 capítulos, en los que desarrollaremos una aplicación completa con OpenXava. El objetivo es no quedarme aquí, sino seguir creando un manual completo que cubra las necesidades más importantes en el desarrollo de aplicaciones.
Tutorial de OpenXava primera parte
En esta primera parte que vamos a dividir en tres capítulos vamos a desarrollar un proyecto con total funcionalidad siguiendo la propuesta de Learning Project, en el primero prepararemos el entorno y empezaremos la programación, en el segundo buscaremos definir todas las clases del modelo para el proyecto, y por último, actualizaremos la presentación analizando las capacidades de OpenXava, estos son los capítulos que a desarrollar con más detalle:
- Tutorial OpenXava (1): Empezando
- En este capítulo se explica el proyecto que vamos a crear (de desarrollo propio) , se creará la base de datos, se prepara el entorno para desarrollar el proyecto, y para hacer un primer contacto con OpenXava, crearemos nuestra primera clase.
- Tutorial Openxava (2): Creación del resto de las clases para las tablas
- Vamos a finalizar la creación de las clases para el resto de las tablas del proyecto, nuestro objetivo es finalizar todas las clases cumpliendo su funcionalidad de crear, eliminar y consultar sus datos, manejando todas las relaciones.
- Aquí se explica como establecer las relaciones entre las clases usando JPA y también estableciendo un primer contacto con las anotaciones de OpenXava.
- Tutorial OpenXava (3): Actualizando la presentación
- Tutorial OpenXava (3.1): Actualizando la presentación con View
- En este último capítulo de esta serie vamos a desarrollar la presentación, es decir, colocar los formularios, hacer las traducciones para los diferentes campos, definir vistas, …, en definitiva: las vistas, los estereotipos y la internacionalización (i18n).
- Aquí desarrollamos la presentación de las clases: CbLanguage, CbCurrency, CbCountry y CbPaymentMethod, y explicamos detalladamente como hacerlo.
- Tutorial OpenXava (3.2): Finalizando la presentación con Tab
- En esta segunda veremos el desarrollo de CbAddresses, CbAddress, CbEnterprise y CbCustomer, continuando el proceso empezado en el anterior capítulo.
- Vamos a continuar con la actualización de la presentación de estas entidades, para ello vamos a ver como podemos definir varias vistas de edición para una entidad (@Views y @View), explicar los datos tabulares para la presentación de las tablas (@Tabs y @Tab), definir nuevos estereotipos y ver nuevas formas de presentar los elementos en el detalle presentándolos en diferentes grupos o secciones dentro de cada vista, como veremos a continuación.
- Tutorial OpenXava (3.3): Definimos vistas diferentes para crear y actualizar para la entidad CbCustomer
- Vamos a ocultar a nivel de creación las direcciones hasta que exista un CbAddresses asociado el cliente (CbCustomer), y así, tener un funcionamiento correcto.
- Para conseguir esto vamos a tener que definir dos vistas diferentes una para Crear y otra para Actualizar, esto no lo podemos hacer directamente en las anotaciones y para ello tendremos que modificar el controlador usado por defecto y definir las clases donde les indiquemos las vistas a utilizar en cada caso.
- Tutorial OpenXava (3.1): Actualizando la presentación con View
Tutorial de OpenXava segunda parte
En esta nueva entrega del tutorial que se prepará más adelante, los objetivos serán: crear informes propios, definir nuestras acciones, …, en definitiva hacer pruebas para ver como podemos adaptar la estructura inicial de OpenXava en la presentación a nuestras necesidades. También intentaremos desarrollar un modelo propio para la gestión de usuarios y para la navegación, tomando como punto de partida la navegación genérica de OpenXava.
Requisitos
Para empezar con este tutorial necesitas conocimientos de:
- Java: plataforma de programación utilizada por OpenXava, está desarrollado siguiendo los estándares Java, también se puede utilizar Groovy.
- Bases de datos: la que quieras utilizar en este proyecto vamos a utilizar Postgresql y más adelante veremos como podemos pasar a otras bases de datos como MySQL o Firebird fácilmente.
- JPA: estándar Java para definir la persistencia con la base de datos, en OpenXava utilizamos la implementación que nos proporciona Hibernate.
- Anotaciones: en OpenXava se utilizan anotaciones para la presentación, por que te tendrás que familiarizar con su uso.
Todo esto ya está configurado por defecto en OpenXava con lo que solo nos tendremos que preocupar de definir el acceso a la base de datos como se indicará en este tutorial y empezar a desarrolar el proyecto definiendo clases sencillas en Java.
Objetivos
Los objetivos básicos de este tutorial son:
- Crear un proyecto desde cero para comprobar el desarrollo de aplicaciones con OpenXava.
- Utilizando una base de datos propia a partir de la definición del proyecto Learning Project.
- Hacer el desarrollo desde cero, con la ayuda y documentación que se nos facilita desde OpenXava.
- Finalmente la obtención de una aplicación funcional donde cubramos todas las necesidades para la aplicación: edición (CRUD) , listados en excel, pdf, …
Introducción
Vamos a crear un proyecto para comprobar el desarrollo de aplicaciones con OpenXava, no se pretende hacer una explicación exhaustiva del desarrollo de aplicaciones con OpenXava, sino simplemente desarrollar una aplicación con una funcionalidad y una presentación que nos permite ver hasta donde podemos llegar con OpenXava.
Se creará una base de datos propia para el proyecto y todo el desarrollo se hará desde cero, con la ayuda y documentación que se nos facilita desde OpenXava.
Definición del proyecto
El proyecto consiste en la administración de clientes para diferentes empresas, para ello se plantea la necesidad de tener la información de la empresa y de los clientes, cada empresa podrá tener múltiples clientes, para el caso de estudio se plantea que ambas entidades tengan los campos básicos y direcciones que podrán ser una o varias.
Así mismo, y para completar el proyecto con el desarrollo que creemos necesario, se plantea que la tabla clientes tenga como tablas asociadas las tablas de: monedas, países e idiomas, que podrían ser tablas de uso general en la aplicación, y una tabla más específica como podría ser formas de pago.
Una forma fácil de extender el proyecto será relacionar las tablas generales de monedas, países e idiomas a las empresas.
En esta imagen se muestra el resultado que conseguiremos con OpenXava: