Problema de paginação com datascroller

0 respostas
R

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.

Criado 10 de novembro de 2008
Respostas 0
Participantes 1