Ejemplo de paginación (Listado de preguntas pendientes) con primefaces

utilizando LazyDataModel, con recarga automática de la página
solicitada.
This commit is contained in:
Marcos Garcia Nuñez
2019-12-16 22:02:27 +01:00
parent dcbebe5253
commit 9bfdebbea4
12 changed files with 250 additions and 54 deletions

View File

@@ -104,7 +104,7 @@ public class MenuMBean implements Serializable {
subMenu.addElement(createMenuItem("Responder pregunta", "fa fa-comments", "/medicaltest/MedicalTests", null));
if (tipoUsuario == UserType.FAMILY_DOCTOR)
subMenu.addElement(createMenuItem("Ver preguntas pendientes", "fa fa-comments-o", "/medicaltest/MedicalTests", null));
subMenu.addElement(createMenuItem("Ver preguntas pendientes", "fa fa-comments-o", "/medicaltest/PendingQuestions", null));
model.addElement(subMenu);
}

View File

@@ -0,0 +1,53 @@
package managedbean.medicalTest;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
import org.primefaces.model.LazyDataModel;
import org.primefaces.model.SortOrder;
import TO.QuestionTO;
import common.Constants;
import ejb.medicalTest.MedicalTestFacadeRemote;
import managedbean.common.ManagedBeanBase;
import managedbean.common.SessionUtils;
@Named("PendingQuestions")
@ViewScoped
public class PendingQuestionsMBean extends ManagedBeanBase implements Serializable {
private static final long serialVersionUID = 1L;
private int familyDoctorId;
private LazyDataModel<QuestionTO> lazyDataModelQuestionList;
public PendingQuestionsMBean() {
}
@PostConstruct
public void init() {
// Inicialización de variables y propiedades van aquí.
this.familyDoctorId = Integer.valueOf(SessionUtils.getUserId());
this.lazyDataModelQuestionList = new LazyDataModel<QuestionTO>() {
private static final long serialVersionUID = 1L;
@Override
public List<QuestionTO> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
Long totalRowCount = getRemoteManagerMedicalTest().getPendingQuestionsCount(familyDoctorId);
this.setRowCount(totalRowCount.intValue());
return getRemoteManagerMedicalTest().listPendingQuestionsPaged(familyDoctorId, (first / pageSize), pageSize);
}
};
}
public LazyDataModel<QuestionTO> getLazyDataModelQuestionList() {
return lazyDataModelQuestionList;
}
}