[RESOLVIDO] PickList Primefaces - Recuperar dados Selecionados

Bom Dia …

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

Meu XHTML

        [code]<!--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>[/code]

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 …

[code]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());


[/code]

Minha Dualist está declarada no DXFBean

[code] //Transformadores
Transformador transformador = new Transformador();
opcoesAtributosTransformadores = transformador.getAtributosBlocoTransformador();
selecaoAtributosTransformadores = new ArrayList();
atributosTransformador = new DualListModel(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;
}

[/code]

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…

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

<p:commandButton value=“Teste” action="#{dXFBean.teste}"/>[/code]

Preciso de uma luz para solucionar o problema …

Desde já agradeço!

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:

[code]
<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>[/code]

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