paginator

Controla la paginacion para un datatable
Incorpora interamente el control para first, next, back,last
Invoca al formulario new.xhtml internamente
Invoca internamente al metodo printAll()
Se debe desabilitar la paginaciòn en el componente datatable
Se debe indicar la cantidad de filas por pagina
Llevar el control de la pagina actual
Atributos
Nombre
Tipo
Descripciòn
controller
java.lang.Object
entity
java.lang.Object
page
pagina actual
rowPage
filas por paginas
renderedNew
default="true"
renderiza el boton New
renderedClear
default="true"
renderiza el boton Clear
renderedPrint
default="true"
renderiza el boton imprimir todos
Componente
<jmoordbjsf:paginator
controller="#{rolController}"
entity="#{rolController.rol}"
rowPage="#{rolController.rowPage}"
page="#{rolController.page}"
pages="#{rolController.pages}"
skip="ajax:rolController.skip(rolController.page)"
Controller
Definir los atributos
Integer page = 1;
Integer rowPage = 25;
Cuando se crea el método set/get de page debe devolver el numero de documentos en la coleccion
public List<Integer> getPages() {
return rolRepository.listOfPage(rowPage);
}
Los movimientos entre las paginas las controlamos mediante los métodos siguientes.
// <editor-fold defaultstate="collapsed" desc="skip(Integer page)">
@Override
public String skip(Integer page) {
try {
this.page = page;
move();
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
return "";
}// </editor-fold>
sizeOfPage
@Override
public Integer sizeOfPage() {
return rolRepository.sizeOfPage(rowPage);
}/
move(Integer page)
Se usa para contolar los desplazamientos se invoca directamente desde la interface IController
@Override
public void move(Integer page) {
try {
this.page =page;
System.out.println("llamo al move");
JsfUtil.warningDialog("rolController.move", "page: "+page.toString());
Document doc;
switch (loginController.get("searchrol")) {
case "_init":
case "_autocomplete":
rolList = rolRepository.findPagination(page, rowPage);
break;
case "idrol":
if (lookupServices.getIdrol() != null) {
doc = new Document("idrol", lookupServices.getIdrol());
rolList = rolRepository.findPagination(doc, page, rowPage, new Document("idrol", -1));
} else {
rolList = rolRepository.findPagination(page, rowPage);
}
break;
default:
rolList = rolRepository.findPagination(page, rowPage);
break;
}
rolFiltered = rolList;
rolDataModel = new RolDataModel(rolList);
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
}
}
Ejemplo:

<jmoordbjsf:paginator
controller="#{rolController}"
entity="#{rolController.rol}"
rowPage="#{rolController.rowPage}"
page="#{rolController.page}"
pages="#{rolController.pages}"
skip="ajax:rolController.skip(rolController.page)"
/>
<b:dataTable value="#{rolController.rolDataModel}"
var="item"
id="dataTable2"
paginated="false"
onpage="console.log('page');">
<b:dataTableColumn value="#{item.idrol}" label="#{msg['field.idrol']}"/>
<b:dataTableColumn value="#{item.rol}" label="#{msg['field.rol']}" />
<b:dataTableColumn value="#{item.activo}" label="#{msg['field.activo']}" />
<b:dataTableColumn label="">
<jmoordbjsf:column
edit="#{rolController.prepare('view',item)}"
delete="#{rolController.delete(item,false)}"
rendered="#{applicationMenu.rol.delete}"
/>
</b:dataTableColumn>
</b:dataTable>
Last updated
Was this helpful?