[RESOLVIDO] PickList Primefaces - Recuperar dados Selecionados

1 resposta
CLEYSON

Bom Dia ...

Eu o picklist do primefaces estamos numa batalha há alguns dias ... não estou conseguindo recuperar os itens selecionados ....

Meu XHTML

<!--Formato DXF-->         
            <p:dialog id="dialogFiltroDXF" header="Detalhe Exportação DXF" widgetVar="exportDXF" 
                      width="850" height="500" showEffect="explode" hideEffect="explode"
                      resizable="false" draggable="false" modal="true"> 
                <h:panelGrid columns="3" style="background-position: center" >
                    <p:commandButton value="Exportar" update="panelProgress" oncomplete="progressDialog.hide();multiDialog.hide()"
                                     action="#{alimentadorBean.gerarDXF}" type="submit" onclick="exportDXF.hide();progressDialog.show()" immediate="true"/>
                    <p:commandButton value="Cancelar" onclick="exportDXF.hide()" type="submit"></p:commandButton> 
                    <p:commandButton id="btnL" value="Limpar Seleção" type="reset"/>
                </h:panelGrid>    
                
                <p:panel header="Configuração de Exportação"  toggleable="true" closable="false" 
                         style="background-position: center" toggleSpeed="500" onToggleUpdate="pnlExport.toggle()"  >    
                    <p:tabView effect="opacity" effectDuration="normal">  

                        <p:tab title="Transformadores">  
                           <h:panelGrid columns="1">
                               <h:outputText value="Escolha os Atributos:" style="font-weight: bold"/>
                               <p:pickList value="#{dXFBean.atributosTransformador}"  
                                                var="atribTrafos"  
                                                itemLabel="#{atribTrafos}"
                                                itemValue="#{atribTrafos}">  
                                    <f:facet name="sourceCaption">Opções</f:facet>  
                                    <f:facet name="targetCaption">Selecionados</f:facet>  
                                </p:pickList>
                            </h:panelGrid>   
                        </p:tab>

                        
                    </p:tabView>  
                </p:panel>
            </p:dialog>

Tenho dois Beans ...um chamado AlimentadorBean e Outro DXFBean ... o AlimentadorBean vai ser comum para outros Beans ... Ex.: DXFBean, KMLBean, GMLBean ... etc

No AlimentadorBean tenho um método que invoca um Método do DXFBean ... segue código ...
public void gerarDXF(){
        dxfBean.gerarDXF(selectedAlimentadores, construirAlimentadores());
    }
No DXFBean o método gerarDXF recebe os parametros enviados pelo AlimentadorBean ...
public void gerarDXF(Alimentador[] selectedAlimentadores, String alimentadoresSQL) {

        try {
           
            System.out.println("Seleção : " + atributosTransformador.getTarget().size()); //Aqui sempre dá merda ...
            System.out.println("Opção : " + atributosTransformador.getSource().size());
...
Minha Dualist está declarada no DXFBean
//Transformadores
        Transformador transformador = new Transformador();
        opcoesAtributosTransformadores = transformador.getAtributosBlocoTransformador();
        selecaoAtributosTransformadores = new ArrayList<String>();
        atributosTransformador = new DualListModel<String>(opcoesAtributosTransformadores, selecaoAtributosTransformadores);

     /**
     * @return the atributosTransformador
     */
    public DualListModel<String> getAtributosTransformador() {
        return atributosTransformador;
    }

    /**
     * @param atributosTransformador the atributosTransformador to set
     */
    public void setAtributosTransformador(DualListModel<String> atributosTransformador) {
        this.atributosTransformador = atributosTransformador;
    }

Não criei get e set para as Listas opcoesAtributosTransformadores e selecaoAtributosTransformadores

Quando chamo o método teste do meu DXFBean os itens selecionados são impressos...

public String teste(){
      System.out.println("Opção : " + atributosTransformador.getTarget().size());
      return "";
  }

  <p:commandButton value="Teste" action="#{dXFBean.teste}"/>

Preciso de uma luz para solucionar o problema ...

Desde já agradeço!

1 Resposta

CLEYSON

Resolvi o Problema ...

Haviam basicamente dois problemas ... No AlimentadorBean fiz a graça de dar um new no DXFBean :oops:... o outro problema estava no p:commandButtom com type="submit" e immediate="true" :evil:

<!--Formato DXF-->         
            <p:dialog id="dialogFiltroDXF" header="Detalhe Exportação DXF" widgetVar="exportDXF" 
                      width="850" height="500" showEffect="explode" hideEffect="explode"
                      resizable="false" draggable="false" modal="true">    
                    <h:panelGrid columns="3" style="background-position: center" >
                        <p:commandButton value="Exportar" update="panelProgress" oncomplete="progressDialog.hide();multiDialog.hide()"
                                         action="#{dXFBean.escreverDXF}" onclick="exportDXF.hide();progressDialog.show()"/>  
                        <p:commandButton value="Cancelar" onclick="exportDXF.hide()" type="submit"></p:commandButton> 
                        <p:commandButton id="btnL" value="Limpar Seleção" type="reset"/>
                    </h:panelGrid>    

                    <p:panel header="Configuração de Exportação"  toggleable="true" closable="false" 
                             style="background-position: center" toggleSpeed="500" onToggleUpdate="pnlExport.toggle()"  >    
                        <p:tabView effect="opacity" effectDuration="normal">  

                            <p:tab title="Transformadores">  
                               <h:panelGrid columns="1">
                                   <h:outputText value="Escolha os Atributos:" style="font-weight: bold"/>
                                   <p:pickList value="#{dXFBean.atributosTransformador}"  
                                                    var="atribTrafos"   
                                                    itemLabel="#{atribTrafos}"
                                                    itemValue="#{atribTrafos}">  
                                        <f:facet name="sourceCaption">Opções</f:facet>  
                                        <f:facet name="targetCaption">Selecionados</f:facet>  
                                    </p:pickList>
                                </h:panelGrid>   
                            </p:tab>
                        </p:tabView>  
                    </p:panel>
            </p:dialog>

Minha batalha agora e recuperar alguns dados que estão no AlimentadorBean e passar para o DXFBean ...

Criado 5 de outubro de 2011
Ultima resposta 5 de out. de 2011
Respostas 1
Participantes 1