Nota: Traducido de la versión original en Inglés.
Hace algunos años publiqué el add-on Enterprise-app for Vaadin. La característica más premiada fue la clase CrudComponent
, que permitía añadir una interfaz de usuario CRUD sobre cualquier entidad de Hibernate escribiendo una línea de código. Enterprise-app estaba (y sigue estando) disponible para Vaadin 6. Lo migré parcialmente a Vaadin 7, pero nunca completé realmente la tarea.
Ya no estoy dando soporte al add-on Enterprise-app, pero estoy trabajando en un conjunto de nuevos add-ons para Vaadin para reemplazar partes de su funcionalidad. Hasta ahora he implementado Crud UI, con un CrudComponent
menos mágico pero mucho más flexible. Una diferencia clave con el antiguo es que no realiza las operaciones CRUD reales, sino que delega las operaciones a un CrudListener
con 4 métodos que tienes que implementar (o alternativamente, usar 4 interfaces separadas y expresiones lambda o referencias de métodos). Esto te permite usar cualquier tecnología de persistencia que desees.
Supongamos que tienes un JavaBean como el siguiente:
public class User {
private Long id;
private String name;
private Date birthDate;
private String email;
private String password;
... getters & setters ...
}
Y una clase de servicio “backend” como la siguiente:
public class Backend {
Collection<User> findAll() { ... }
User add(User user) { ... }
User update(User user) { ... }
void delete(User user) { ... }
}
Entonces, con el add-on Crud UI, puedes crear una interfaz web CRUD con el siguiente código:
GridBasedCrudComponent<User> crud = new GridBasedCrudComponent<>(User.class);
crud.setFindAllOperation(() -> backend.findAll());
crud.setAddOperation(backend::add);
crud.setUpdateOperation(backend::update);
crud.setDeleteOperation(backend::delete);
Hay varias opciones de configuración. Consulta los ejemplos en la página del add-on. El siguiente es un ejemplo de un CrudComponent
con configuraciones propias para las columnas del Grid
, etiquetas para los campos, layout y validaciones:
Si eras usuario de Enterprise-app, echa un vistazo al nuevo Crud UI y cuéntame cualquier problema que encuentres o características que te gustaría tener.
¡Diviértete programando!