Bom Dia!
Estou usando richfaces, e tentando usar datascroller para fazer a paginação
de elementos.
Só que quando quero alterar a página, ela não muda, e já reparei que os métodos
que retornam o DataModel são novamente chamados (não sei se essa é a causa).
Eu não sou experiente em Richfaces, na verdade apenas altero códigos já prontos,
ainda estou aprendendo a mexer com essa tecnologia, por isso, desculpem minha
ignorância.
Seguem os códigos:
package com.copel.opa.bean;
import java.math.BigInteger;
import java.util.Calendar;
import java.util.Date;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import com.copel.opa.modelo.Mdm;
import com.copel.opa.negocio.BOException;
import com.copel.opa.persistencia.DAOException;
import com.copel.opa.util.EJBUtil;
import com.copel.opa.util.JSFUtil;
public class MdmBeanListar {
private DataModel mdmsData;
private boolean atendidas = false;
private Date dataInicial;
private Date dataFinal;
private BigInteger car;
private String tipoDoc = "1";
private boolean entrou = false;
// private DocMov mdm;
public MdmBeanListar() {
mdmsData = new ListDataModel();
// mdm = new Mdm();
}
// public DocMov getMdm() {
// return mdm;
// }
//
//
// public void setMdm(DocMov mdm) {
// this.mdm = mdm;
// }
public boolean isAtendidas() {
return atendidas;
}
public void setAtendidas(boolean atendidas) {
this.atendidas = atendidas;
}
public Date getDataInicial() {
return dataInicial;
}
public void setDataInicial(Date dataInicial) {
this.dataInicial = dataInicial;
}
public Date getDataFinal() {
return dataFinal;
}
public void setDataFinal(Date dataFinal) {
this.dataFinal = dataFinal;
}
public BigInteger getCar() {
return car;
}
public void setCar(BigInteger car) {
this.car = car;
}
public String mdmsListarForm() {
// System.out.println(“mdmsListarForm”);
car = (BigInteger) JSFUtil
.resolveExpression("#{loginBean.perfil.carAtuacao}");
// TODO - Remover quando for para a produção
this.setCar(BigInteger.valueOf(Long.valueOf(“3935131200000”)));
if (dataInicial == null && dataFinal == null) {
dataFinal = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(dataFinal);
cal.add(Calendar.MONTH, -2);
dataInicial = cal.getTime();
}
return "mdmsListarForm";
}
public String listar() throws Exception {
// System.out.println(“listar”);
// Consistência Form
if (!atendidas) {
this.dataInicial = null;
this.dataFinal = null;
}
try {
System.out.println("isRowAvailable1 ant.: " + mdmsData.isRowAvailable());
if (!entrou){
mdmsData.setWrappedData(EJBUtil.getMdmSf().listar(
atendidas, tipoDoc, car, dataInicial, dataFinal));}
System.out.println("isRowAvailable1: " + mdmsData.isRowAvailable());
} catch (BOException ex) {
JSFUtil.addGlobalMessage(ex.getMessage());
} catch (DAOException ex) {
JSFUtil.addGlobalMessage(ex.getMessage());
}
return “mdmsListar”;
}
// Gets DataModel
public DataModel getMdmsData() throws Exception {
// System.out.println(“getMdmsData”);
try {
System.out.println("isRowAvailable ant.: " + mdmsData.isRowAvailable());
if (!entrou){
mdmsData.setWrappedData(EJBUtil.getMdmSf().listar(
atendidas, tipoDoc, car, dataInicial, dataFinal));
System.out.println("entrou: " + entrou);
}
entrou = true;
} catch (BOException ex) {
JSFUtil.addGlobalMessage(ex.getMessage());
} catch (DAOException ex) {
JSFUtil.addGlobalMessage(ex.getMessage());
}
return mdmsData;
}
public String mostrarLink() throws Exception {
// System.out.println("*******************Mdm mostrarLink:");
String result = “mdmMostrar”;
Mdm mdm = (Mdm) this.mdmsData.getRowData();
try {
mdm = (Mdm) EJBUtil.getMdmSf().recuperar(mdm);
// Grava a MDM da linha selecionda no bean MdmBea
MdmBean mdmBean = (MdmBean) JSFUtil.resolveExpression("#{mdmBean}");
mdmBean.setMdm(mdm);
// System.out.println("Mdm mostrarLink: " + mdm);
} catch (BOException ex) {
JSFUtil.addGlobalMessage(ex.getMessage());
result = “erro”;
}
return result;
}
public void trocarAtendidas(ActionEvent e) {
// System.out.println("*****************************************");
// System.out.println("Evento trocarAtendidas: " + atendidas);
// System.out.println("Data Inicial: " + dataInicial);
// FacesContext context = FacesContext.getCurrentInstance();
// UIViewRoot view = context.getViewRoot();
//
// UIOutput output = (UIOutput) view
// .findComponent(“listarMdms:dataInicial”);
// output.setValue(new Date());
}
public String cancelar() {
return "inicial";
}
}
Página xhtml:
<?xml version="1.0" encoding="ISO-8859-1"?><ui:composition template="/templates/layout.xhtml">
<ui:define name=“titulo”>Listagem das MDMs</ui:define>
<ui:define name=“conteudo”>
<h:form id="mdmsListarForm" style="text-align: center;">
<rich:dataTable id="mdms" value="#{mdmBeanListar.mdmsData}" var="mdm" rowClasses="row1, row2"
headerClass="tableHeader" rows="05">
<h:column>
<f:facet name="header"><h:outputText value="#{msg.mdm}"></h:outputText></f:facet>
<h:commandLink id="linkMdm" action="#{mdmBeanListar.mostrarLink}" title="Detalhe da Mdm">
<h:outputText value="#{mdm.numDoc}">
<f:convertNumber pattern="00000" />
</h:outputText>
</h:commandLink>
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="tipo"></h:outputText></f:facet>
<h:outputLabel value="#{mdm.tipoDoc}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="Seq"></h:outputText></f:facet>
<h:outputLabel value="#{mdm.numSeqDoc}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{msg.dataInclusao}"></h:outputText></f:facet><center>
<h:outputText value="#{mdm.dtIncRegis}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText></center>
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{msg.dataPrev}"></h:outputText></f:facet>
<center><h:outputText value="#{mdm.dtPrevEntreg}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText></center>
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{msg.dataCertificacao}"></h:outputText></f:facet>
<center><h:outputText value="#{mdm.dtAtend}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText></center>
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{msg.situacaoMdm}"></h:outputText></f:facet>
<center><h:outputText value="#{mdm.descSit}">
</h:outputText></center>
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{msg.contaObra}"></h:outputText></f:facet>
<center><h:outputText value="#{mdm.numContaObra}">
</h:outputText></center>
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{msg.area}"></h:outputText></f:facet>
<center><h:outputText value="#{mdm.numAreaSi}">
</h:outputText></center>
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{msg.empreiteira}"></h:outputText></f:facet>
<center><h:outputText value="#{mdm.nomeEmp}">
</h:outputText></center>
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{msg.identUsuLiber}"></h:outputText></f:facet>
<center><h:outputText value="#{mdm.identUsuLiber}">
</h:outputText></center>
</h:column>
</rich:dataTable>
<rich:datascroller for="mdms" maxPages="20"/>
</h:form>
</ui:define>
</ui:composition>
Obrigado pela atenção.