Boa noite! Estou a dois dias batendo cabeça para funcionar no mesmo bean dois lazy!
O primeiro lazy funciona normalmente a parte de paginação no arquivo lista!
Mais o segundo que fica em outro arquivo entrada no método mais quando é para entrar no load (2 metodo) não entra, ou seja,
não vai fazer nada!
Desde de já agradeço se alguém poder me ajudar!
frmLaboratorioLista.xhtml
...
<h:form id="listaLaboratorio" prependId="false">
<p:dataTable paginator="true" paginatorPosition="top" dynamic="true" lazy="true"
rows="10" paginatorTemplate="{CurrentPageReport}{PageLinks}"
var="objLab" value="#{laboratorioController.lazyLaboratorio}" emptyMessage="Não foi encontrado registros" >
<p:column headerText="Descrição">
<h:outputText value="#{objLab.nome_laboratorio}" />
</p:column>
<p:column style="width: 140px;" headerText="Bloco" >
<h:outputText value="#{objLab.bloco}" />
</p:column>
<p:column style="width: 30px;" headerText="Sala" >
<h:outputText value="#{objLab.sala}" />
</p:column>
<p:column style="width: 30px;">
<h:commandLink action="#{laboratorioController.delete}" style="width: auto;" onclick="javascript:if (!confirm('Deseja excluir este laboratório #{objProf.nome_laboratorio} ?')) return false;">
<f:setPropertyActionListener target="#{laboratorioController.laboratorio}" value="#{objLab}" />
<h:graphicImage value="imagens/delete.png" style="border: none;" alt="Excluir"/>
</h:commandLink>
<h:commandLink action="#{laboratorioController.frmLaboratorioEditar}" >
<f:setPropertyActionListener target="#{laboratorioController.laboratorio}" value="#{objLab}" />
<h:graphicImage value="imagens/folder_document.png" style="border: none;" alt="Editar"/>
</h:commandLink>
</p:column>
</p:dataTable>
</h:form>
...
formLaboratorio.xhtml
...
<p:tabView dynamic="true" cache="false" activeIndex="${laboratorioController.activeTab}" >
<p:tab id="tabLaboratorio" title="Informações do acadêmico(a)">
...
</p:tab>
<p:tab id="tabPatrimonio" title="Lista de patrimônios" rendered="#{laboratorioController.frmModo}" >
<h:form prependId="false" id="formPatrimonio">
<p:dataTable id="listaPatrimonio" paginator="true" paginatorPosition="top"
rows="10" paginatorTemplate="{CurrentPageReport}{PageLinks}"
var="objPatr" value="#{laboratorioController.lazyPatrimonio}" emptyMessage="Não foi nenhum item" >
<p:column>
<f:facet name="header">N°. Patrimônio</f:facet>
<h:outputText value="#{objPatr.numero_patrimonio}" />
</p:column>
<p:column>
<f:facet name="header">Produto</f:facet>
<h:outputText value="#{objPatr.produto.nome_produto}" />
</p:column>
<p:column style="width: 8px;">
<p:commandLink ajax="true" update="formPatrimonio,msg_box" action="#" style="width: auto;" onclick="javascript:if (!confirm('Deseja excluir este patrimônio #{objPatr.numero_patrimonio} ?')) return false;">
<h:graphicImage value="imagens/delete.png" style="border: none;" alt="Excluir"/>
</p:commandLink>
</p:column>
</p:dataTable>
</h:form>
</p:tab>
</p:tabView>
...
Enfim meu bean
package lcs.br.com.controller;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import lcs.br.com.dao.LaboratorioDao;
import lcs.br.com.model.EstadoConservacao;
import lcs.br.com.model.Laboratorio;
import lcs.br.com.model.Patrimonio;
import lcs.br.com.model.Produto;
import lcs.br.com.util.ExceptionDatabase;
import lcs.br.com.validator.LaboratorioValidator;
import org.primefaces.model.LazyDataModel;
/**
* Modelo controlador do Laboratorio
* @author Lesliê Cardoso da Silva
* @since 26/05/2012
* @version 1.0
*/
@ManagedBean(name="laboratorioController")
@SessionScoped
public class LaboratorioController implements Serializable {
private Laboratorio laboratorio;
private LazyDataModel<Laboratorio> lazyLaboratorio;
private LazyDataModel<Patrimonio> lazyPatrimonio;
private LaboratorioDao labDAO = new LaboratorioDao();
private Integer TRegistrosLab;
private Integer TRegistrosPat;
private Integer ActiveTab;
private Boolean frmModo;
private Produto produto;
private EstadoConservacao conservacao;
private Patrimonio patrimonio;
/**
* Método para obter a guia que deve estar ativa
* @return Integer
*/
public Integer getActiveTab() {
if (ActiveTab == null) {
ActiveTab = new Integer(0);
}
return ActiveTab;
}
/**
* Método para setar a guia que deve estar ativa
* @param ActiveTab
*/
public void setActiveTab(Integer ActiveTab) {
this.ActiveTab = ActiveTab;
}
/**
* Método para esconder a guia patrimônio ao inserir um novo laboratorio
* @return Boolean
*/
public Boolean getFrmModo() {
if(frmModo == null){
frmModo = Boolean.FALSE;
}
return frmModo;
}
/**
* Método para mostrar a guia patrimônio
*/
public void setFrmModo() {
this.frmModo = Boolean.TRUE;
}
/**
* Método para obter o estado de conservação
* @return EstadoConservacao
*/
public EstadoConservacao getConservacao() {
if (conservacao == null) {
conservacao = new EstadoConservacao();
}
return conservacao;
}
/**
* Método para setar o estado de conservação
* @param conservacao
*/
public void setConservacao(EstadoConservacao conservacao) {
this.conservacao = conservacao;
}
/**
* Método para obter o objeto patrimonio
* @return Patrimonio
*/
public Patrimonio getPatrimonio() {
if(patrimonio == null){
patrimonio = new Patrimonio();
}
return patrimonio;
}
/**
* Método para setar o objeto patrimonio
* @param patrimonio
*/
public void setPatrimonio(Patrimonio patrimonio) {
this.patrimonio = patrimonio;
}
/**
* Método para obter o objeto produto
* @return Produto
*/
public Produto getProduto() {
if(produto == null){
produto = new Produto();
}
return produto;
}
/**
* Método para setar o objeto produto
* @param produto
*/
public void setProduto(Produto produto) {
this.produto = produto;
}
/**
* Método para obter o objeto laboratorio
* @return Laboratorio
*/
public Laboratorio getLaboratorio() {
if(laboratorio == null){
laboratorio = new Laboratorio();
}
return laboratorio;
}
/**
* Método para setar o objeto laboratorio
* @param laboratorio
*/
public void setLaboratorio(Laboratorio laboratorio) {
this.laboratorio = laboratorio;
}
/**
* Método para obter uma lista de coleção de objetos do tipo laboratório
* @return LazyDataModel<Laboratorio>
*/
public LazyDataModel<Laboratorio> getLazyLaboratorio() {
if (lazyLaboratorio == null) {
lazyLaboratorio = new LazyDataModel<Laboratorio>() {
@Override
public List<Laboratorio> load(int first, int pageSize, String string, boolean bln, Map<String, String> map) {
try {
List<Laboratorio> ps = labDAO.listaLaboratorio(first,pageSize);
return ps;
} catch (ExceptionDatabase e) {
return null;
}
}
};
lazyLaboratorio.setPageSize(10);
if(lazyLaboratorio.getRowIndex() == -1)
lazyLaboratorio.setRowCount(10);
else
lazyLaboratorio.setRowCount(getTRegistrosLab());
}
return lazyLaboratorio;
}
/**
* Método para setar uma lista de coleção de objetos do tipo laboratório
* @param lazyLaboratorio
*/
public void setLazyLaboratorio(LazyDataModel<Laboratorio> lazyLaboratorio) {
this.lazyLaboratorio = lazyLaboratorio;
}
/**
* Método para obter uma lista de coleção de objetos do tipo Patrimônio
* @return LazyDataModel<Patrimonio>
*/
@PostConstruct
public LazyDataModel<Patrimonio> getLazyPatrimonio() {
if (lazyPatrimonio == null) {
lazyPatrimonio = new LazyDataModel<Patrimonio>() {
@Override
public List<Patrimonio> load(int first, int pageSize, String string, boolean bln, Map<String, String> map) {
try {
labDAO = new LaboratorioDao();
List<Patrimonio> ps = labDAO.listaPatrimonio(getLaboratorio(),first,pageSize);
return ps;
} catch (ExceptionDatabase e) {
return null;
}
}
};
lazyPatrimonio.setPageSize(10);
if(lazyPatrimonio.getRowIndex() == -1)
lazyPatrimonio.setRowCount(10);
else
lazyPatrimonio.setRowCount(getTRegistrosPat());
}
return lazyPatrimonio;
}
/**
* Método para setar uma lista de coleção de objetos do tipo Patrimônio
* @param lazyPatrimonio
*/
public void setLazyPatrimonio(LazyDataModel<Patrimonio> lazyPatrimonio) {
this.lazyPatrimonio = lazyPatrimonio;
}
/**
* Método para obter quantidade de registros de laboratórios no sistema
* @return Integer
*/
public Integer getTRegistrosLab() {
if(TRegistrosLab == null)
{
try
{
setTRegistrosLab(labDAO.ListaCountLab());
}
catch (ExceptionDatabase e) {
TRegistrosLab = new Integer(0);
}
}
return TRegistrosLab;
}
/**
* Método para setar quantidade de registros de laboratórios no sistema
* @param TRegistrosLab
*/
public void setTRegistrosLab(Integer TRegistrosLab) {
this.TRegistrosLab = TRegistrosLab;
}
/**
* Método para obter quantidade de registros de patrimônios no sistema
* @return Integer
*/
public Integer getTRegistrosPat() {
if(TRegistrosPat == null)
{
try
{
setTRegistrosPat(labDAO.ListaCountPat(getLaboratorio()));
setLazyLaboratorio(null);
}
catch (ExceptionDatabase e) {
TRegistrosPat = new Integer(0);
}
}
return TRegistrosPat;
}
/**
* Método para setar quantidade de registros de patrimônios no sistema
* @param TRegistrosPat
*/
public void setTRegistrosPat(Integer TRegistrosPat) {
this.TRegistrosPat = TRegistrosPat;
}
/**
* Método para redirecionar ao cadastro de laboratório
* @return String
*/
public String frmLaboratorio(){
setLaboratorio(null);
return "recFrmLaboratorio";
}
/**
* Método para redirecionar ao edição de laboratório
* @return
*/
public String frmLaboratorioEditar(){
setFrmModo();
setLazyPatrimonio(null);
return "recFrmLaboratorio";
}
/**
* Método para limpar o objeto laboratório
*/
public void setLaboratorioClear(){
setLaboratorio(null);
}
...