PickList do PrimeFaces não retornando Valor

0 respostas
aguiarle

Boa noite,

Estou utilizando Ejb 3 com primefaces e Glassfish.

Meu pick list quando executa o comandbutton nao retorna nenhuma informação (Listsorce e ListTarget)

Agradeço desde já qualquer ajuda.

Managed Beans

package controllers;

import beans.UsuariosFacade;
import criptografia.EncryptorException;
import entidades.Filiais;
import entidades.Menus;
import entidades.Usuarios;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import mensagens.Bundles;
import mensagens.Mensagens;
import org.primefaces.model.DualListModel;
import sessoes.Sessoes;

  

@ManagedBean(name = "usuariosController")
@SessionScoped
public class UsuariosController extends AbstractController<Usuarios>  {

.....

private DualListModel<Filiais> dualListModelFiliais;
    
    @Override
    public String prepareEdit() {
        super.prepareEdit();
        
        List<Filiais> filiaisTarget = (List<Filiais>) current.getFiliaisCollection();
        List<Filiais> filiaisSource = ejbFiliais.findAll();
        for (Iterator<Filiais> it = filiaisTarget.iterator(); it.hasNext();) {
            Filiais filiais = it.next();
            filiaisSource.remove(filiais);
            
        }
        dualListModelFiliais =
          new DualListModel<Filiais>(filiaisSource, filiaisTarget);
        
        return editaRegistro();
    }
    
    
    
    public DualListModel<Filiais> getFiliaisPickList() {  
        return dualListModelFiliais;  
    }  
    public void setFiliaisPickList(DualListModel<Filiais> dualListModelFiliais) {  
        this.dualListModelFiliais = dualListModelFiliais;
    }
    
    public void salvarFiliais(){
        //sempre vem vazio aki
        List<Filiais> listaFiliaisTarget = dualListModelFiliais.getTarget();
        
        java.util.Collection<Filiais> filiais = (java.util.Collection<Filiais>)  listaFiliaisTarget;
        current.setFiliaisCollection(filiais);
        salvaRegistro();
    }

}

View

........

              <p:dialog appendToBody="true" closable="true" header="#{bundle.EditUsuariosFiliaisTitle}" 
                          resizable="false" widgetVar="dlgAlterarFiliais"  
                          showEffect="clip" hideEffect="clip" modal="true">  

                    <p align="center">

                        <p:pickList id="pickListFiliais" value="#{usuariosController.filiaisPickList}" widgetVar="picklistVar"  
                                    var="filial" converter="filiaisControllerConverter" 
                                    converterMessage="Falha no converter"
                                    itemValue="#{filial}" >

                            <f:facet name="sourceCaption">#{bundle.EditUsuariosFiliaisDisponiveis}</f:facet>  
                            <f:facet name="targetCaption">#{bundle.EditUsuariosFiliaisPermitidas}</f:facet>  
                            <p:column>
                                #{filial.razao}

                            </p:column>
                            


                        </p:pickList>
                        <p align="center">
                                <p:commandButton id="filiaisSubmit" value="#{bundle.BotaoSalvar}" 
                                                 action="#{usuariosController.salvarFiliais}" 
                                                 oncomplete="dlgAlterarFiliais.hide()"
                                                 update="panelDados"
                                                 immediate="false"
                                                 
                                                 />
                                <p:commandButton id="filiaisCancelar" value="#{bundle.BotaoCancelar}" 
                                                 oncomplete="dlgAlterarFiliais.hide()"/>
                            </p>
                        
                    </p>

                </p:dialog>

Convert

@FacesConverter(forClass = Filiais.class, value="filiaisControllerConverter")
    public static class FiliaisControllerConverter implements Converter {

        public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
            if (value == null || value.length() == 0) {
                return null;
            }
            FiliaisController controller = (FiliaisController) facesContext.getApplication().getELResolver().
                    getValue(facesContext.getELContext(), null, "filiaisController");
            return controller.ejbFacade.find(getKey(value));
        }

        java.lang.Long getKey(String value) {
            java.lang.Long key;
            key = Long.valueOf(value);
            return key;
        }

        String getStringKey(java.lang.Long value) {
            StringBuffer sb = new StringBuffer();
            sb.append(value);
            return sb.toString();
        }

        public String getAsString(FacesContext facesContext, UIComponent component, Object object) {
            if (object == null) {
                return null;
            }
            if (object instanceof Filiais) {
                Filiais o = (Filiais) object;
                return getStringKey(o.getId());
            } else {
                throw new IllegalArgumentException("object " + object + " is of type " + object.getClass().getName() + "; expected type: " + FiliaisController.class.getName());
            }
        }
    }
Criado 10 de julho de 2012
Respostas 0
Participantes 1