Primefaces 2.2.1 + 2 lazy no mesmo bean

0 respostas
leslie-UFT

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&atilde;o foi encontrado registros" >
                    <p:column headerText="Descri&ccedil;&atilde;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&ccedil;&otilde;es do acad&ecirc;mico(a)">
...
 </p:tab>
                <p:tab id="tabPatrimonio"  title="Lista de patrim&ocirc;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&atilde;o foi nenhum item" >
                                <p:column>
                                    <f:facet name="header">N&deg;. Patrim&ocirc;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);
    }
            ...
Criado 27 de maio de 2012
Respostas 0
Participantes 1