ADF tips: Filtrar los nodos padre e hijos en un af:tree

A partir de la necesidad real de uno de nuestros clientes, sobre filtración de datos en una página con un componente af:tree, voy a mostraros como filtrar los padres y los hijos con un sólo valor utilizando parte del post de Ashish. Esto también se puede aplicar al componente af:treeTable.

La primera cosa que necesitamos es el componente tree y la estructura de datos. En este caso vamos a utilizar las tablas Departments y Employees del schema HR de Oracle.

En nuestra página vamos a arrastrar DepartmentsView desde la paleta de datacontrols y crearemos el componente tree.

Después crearemos un View Criteria en el View Object Departments (padre).

También crearemos un View Criteria en el View Object Employees (hijo).

Tenemos que exponer el seter de la bind variable en el View Object padre.

Como hemos expuesto la bind variable en el padre, tenemos que pasar ese valor al hijo sobrescribiendo el método createViewLinkAccessorRS en la implementación del ViewObject padre (DepartmentsViewImpl.java).

El último paso en el modelo será setear el View Criteria por defecto en el View Object padre. Para hacer esto, tenemos que hacer click derecho en la instancia de nuestro AppModule, hacer click en ‘Edit’ y seleccionar el View Criteria.

El modelo está finalizado. Ahora tenemos que arrastrar el método setter de la bind variable desde la paleta de datacontrols y crear un ‘ADF Parameter Form’ para que podamos introducir el valor por el que filtrar.

Esto nos creará el method binding ‘setserachValue’ en el fichero pageDef de nuestra página. También necesitamos crear una operación ‘Execute’ del View Object padre y llamar a ambas opciones en el ActionListener del botón ‘Filter’.

Así es cómo quedará la página.

Si ejecutamos la aplicación y filtramos por ‘pat’ sólo obtenemos los valores que contienen esa cadena.

Si filtramos por ‘les’, podemos ver que los valores que se muestran tanto en los hijos como en los padres contienen la cadena ‘les’.

Twitter
LinkedIn
Evolución, innovación y transformación
37 Service Expertise avalados por Oracle 
Our value proposition
100% Oracle posts
Follow our day-to-day activities