Inicio > ADF / Java > Mantenimiento de una tabla n:m en ADF con SelectManyShuttle

Mantenimiento de una tabla n:m en ADF con SelectManyShuttle

Un ejemplo de cómo hacer un mantenimiento de una tabla de forma usable para el usuario seria utilizar el componente SelectManyShuttle. Uno de los casos que podemos utilizarlo es cuando tenemos una tabla que sale de una relación n:m, por ejemplo:

Tablas ejemplo

Imagen 1: Tablas ejemplo

Tenemos la tabla de usuarios, roles y ahora queremos guardar en la tabla usuarioRoles los roles asignados aún usuario. Para realizar esto crearemos una pantalla donde tendremos la tabla de usuarios y seleccionaremos uno de los usuarios y con el componente SelectManyShuttle le asignaremos los roles. En la pantalla también pondremos la tabla UsuariosRoles para ver los cambios.

Pasos a seguir

Creamos una aplicación Fusion Web Application (ADF) y creamos los business components desde nuestra base de datos: nos pedirá la conexión a la base de datos y elegiremos las entidades que queremos utilizar. En este ejemplo: Usuario, Roles y UsuarioRoles. Obtendremos los siguientes business components:

Resultado de crear las entidades

Imagen 2: Resultado de crear las entidades

AppModule

Imagen 3: AppModule

Crearemos una página y también crearemos un Bean ligado a la página para darle las propiedades al selectManyShuttle:

Bean de la página

Imagen 4: Bean de la página

Bind de la página.

Imagen 5: Bind de la página.

Para poner el componente en nuestra página, sólo hay que arrastrarlo desde la paleta de componentes y lo insertamos sin informar nada. Ahora necesitamos crear los iteradores con los que trabajaremos. En la parte izquierda la de selección la rellenaremos en este ejemplo con los roles, mediante la instancia del viewObject RolesVO Roles1. Los valores seleccionados en nuestro caso serán los valores de la tabla usuarioRoles. En este ejemplo nos interesa elegir una instancia del viewObject usuarioRolesVO que esté relacionada mediante viewlink con el viewObject UsuarioVO, si miramos el AppModule de nuestro ejemplo este sería UsuarioRoles2.
Los Bindings de la página nos tienen que quedar como se ve en la Imagen 5.

Componente selectManyShutle

Imagen 6 : Componente selectManyShutle

Ahora crearemos los métodos que necesitamos para el componente en el Bean de la página para la parte izquierda la de selección crearemos el método getAll() y para la parte derecha de nuestro componente los métodos getSelected() y setSelectted(List selectedValues) para los valores seleccionados, el componente quedará como se ve en la Imagen 6. Una breve explicación del código sería la siguiente :

Código metodo getAll()

Imagen 7 : Código metodo getAll()

Código metodo setSelected() y getSelected()

Imagen 8 : Código metodo setSelected() y getSelected()

La pantalla podría quedar así:

Pantalla resultado

Imagen 9 : Pantalla resultado

Resumen

Como podéis ver con ADF se puede llegar a hacer el mantenimiento de una tabla de una forma diferente, más visual y atractiva para el usuario. Para este ejemplo he utilizado JDeveloper 11.1.1.4.0.

Categorías:ADF / Java Etiquetas: , , ,
  1. Aún no hay comentarios.
  1. enero 2, 2012 en 10:39

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: