En el post anterior mostré como crear un componente paginator personalizado para Java Server Faces. La idea es entender como crearlo. Una vez creado lo empaquete en las librerías jmoordbjsf y jmoordbutils.
Que se agregan al proyecto
La vista de la aplicación es similar a la imagen siguiente:
En las paginas Java Server Faces, desabilitamos paginator del componente <p:dataTable de primefaces.
Agregamos un <f:facet name="header" y colocamos el componente <jmoordbjsf:paginatorx> pasando los atributos el controller y el objeto paginator.
También incluimos un <h:facet name="footer"> y colocamos el componente <jmoordbjsf:paginatorxfooter>,
En esta aplicación usamos Microprofile, JakartaEE , Jmoordb y MongoDB ejecutandose con PayaraMicro
En el Controller implementamos IPaginator, agregamos un objeto Paginator con sus métodos set/get
Aplicamos varios filtros. en Jmoordb hemos implementado métodos para hacer consultas a MongoDB mediante querys que se envían del cliente al microservicio. Mediante Paginator podemos almacenar las consultas y ordenaciones en base a cada condición e invocamos el método move(Paginator paginator) para que realice el desplazamiento.
Observe el método filterByUserLoged(), crea un Document query para filtrar por el nombre del usuario y lo ordenada por un atributo idboleta de manera descendente.
Otro filtro puede ser onEstadoUnidadChange() que se invoca cuando se selecciona un elemento del <p::selectOneMenu estado unidad> definido en la pagina, crea un filtro por el usuario y por el estadounidad.
El método move(Paginator paginator), realiza las consultas al Microservicio pasando el objeto Paginator este método también es invocado desde el componente <jmoordbjsf:paginatorx>. De esta manera realizamos las consultas y desplazamientos para cualquier consulta con paginación usando el componente que creamos anteriormente.
Es un componente muy simple, se realizo de esta manera con fines didácticos para mostrar el potencial de Java Server Faces que nos permite crear nuestros propios componentes.
Comments