ADF tips: Mostrar el registro seleccionado en un af:tree

ADF tips

En ocasiones para presentar la estructura de nuestros datos utilizamos un af:tree ya que es una forma simple y elegante de poder mostrar el maestro y el detalle en un mismo componente. En este ADF tip vais a poder ver cómo mostrar el registro seleccionado es un af:tree basado en un view object recursivo.

Supongamos que tenemos esta estructura basada en la tabla empleados del schema hr de Oracle.

1

Lo primero que tenemos que hacer es arrastrar la vista de la paleta de data controls a nuestra página para crear el árbol.

2

Una vez creado el árbol, para mostrar el registro seleccionado, añadiremos un formulario basado en la vista de empleados. Aquí tenemos el problema: ¿en qué instancia de la vista basamos el formulario? Si lo hacemos en la instancia padre sólo se mostrará en el formulario el registro padre cuando seleccionemos alguno de los hijos.

3

Para solucionar este problema, y que se muestre el registro correspondiente, lo que vamos a hacer es añadir en el AppModule otra instancia de la vista EmployeesView. En este caso la he llamado ‘EmployeesDisplayVO‘.

4

El siguiente paso es crear en el pageDef asociado a nuestra página un Action Binding de la operación ‘setCurrentRowWithKey’ de la instancia que acabamos de crear ‘EmployeesDisplayVO’.

5

El último paso es crear un Selection Listener personalizado en un bean y asociarlo al af:tree.

52

En este método lo que vamos a hacer es, a parte de ejecutar el método makeCurrent del modelo del árbol, obtener las Keys seleccionadas y ejecutar el método setCurrentRowWithKey que hemos creado en el pageDef.

La key que tenemos que utilizar para llamar al método es la última de la lista keyList.get(keyList.size() – 1) ya que, por ejemplo, si seleccionamos un registro del segundo nivel, la lista de claves contendrá en primero la clave del padre y después la clave del hijo.

6

Si volvemos a ejecutar la aplicación y seleccionamos cualquier registro veremos que se muestra correctamente en el formulario.

7

Evolución, innovación y transformación
37 especializaciones avaladas por Oracle
Oportunidades ilimitadas
Posts 100% Oracle
Sigue nuestro día a día