Botão adicionar!

1 resposta
syncel

Boa noite Galera beleza? Galera é o seguinte, so novato nisso e não sei o que to fazendo de errado... to seguindo um exemplo mais nunca da certo... funciona mais ou menos assim...

Eu tenho um CADASTRO de GRUPOS, nesse cadastro vai algumas informações e uma LISTA de PESSOAS, então qual o meu problema, eu criei o botão Adicionar tals, puxei uma Combo com o nome das PESSOAS ja cadastradas, mais quando clico em adicionar, ele não funciona... alguem sabe me dizer como posso resolver? Vou postar todos os códigos aqui... Abraços.

Adicionar -
<p:fieldset legend="Beneficiários">
                        <p:selectOneMenu value="#{grupoControle.grupo.beneficiarios}" id="benselect" converter="#{grupoControle.converterBen}">                           
                            <f:selectItems value="#{grupoControle.beneficiarios}"/>
                        </p:selectOneMenu>
                        <p:commandButton value="Adicionar" actionListener="#{grupoControle.adicionarBeneficiario}" update="tabelabeneficiario"/>
                            <p:dataTable id="tabelabeneficiario" value="#{grupoControle.grupo.beneficiarios}" var="g">
                                <p:column headerText="Beneficiário">
                                    <h:outputText value="#{g.nomeben}"/>
                                </p:column>
                            </p:dataTable>
                    </p:fieldset>
Entidade -
@Entity
public class GrupoEntidade implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String nomegrupo;
    private String descricaogrupo;
    
    private Double verbareceber;
    private Double verbaentregue;
    
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date abertura;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date fechamento;
    
    @ManyToOne
    private EntEntidade entidade;
    @ManyToOne
    private ForEntidade fornecedor;
    @OneToMany(cascade = CascadeType.ALL, fetch= FetchType.EAGER)
    private List<BenEntidade> beneficiarios;

    //============ Getters e Setters ============//

    
    public List<BenEntidade> getBeneficiarios() {
        return beneficiarios;
    }

    public void setBeneficiarios(List<BenEntidade> beneficiarios) {
        this.beneficiarios = beneficiarios;
    }
    
    public Date getAbertura() {
        return abertura;
    }

    public void setAbertura(Date abertura) {
        this.abertura = abertura;
    }

    public String getDescricaogrupo() {
        return descricaogrupo;
    }

    public void setDescricaogrupo(String descricaogrupo) {
        this.descricaogrupo = descricaogrupo;
    }

    public EntEntidade getEntidade() {
        return entidade;
    }

    public void setEntidade(EntEntidade entidade) {
        this.entidade = entidade;
    }

    public Date getFechamento() {
        return fechamento;
    }

    public void setFechamento(Date fechamento) {
        this.fechamento = fechamento;
    }

    public ForEntidade getFornecedor() {
        return fornecedor;
    }

    public void setFornecedor(ForEntidade fornecedor) {
        this.fornecedor = fornecedor;
    }

    public Double getVerbaentregue() {
        return verbaentregue;
    }

    public void setVerbaentregue(Double verbaentregue) {
        this.verbaentregue = verbaentregue;
    }

    public Double getVerbareceber() {
        return verbareceber;
    }

    public void setVerbareceber(Double verbareceber) {
        this.verbareceber = verbareceber;
    }

    public String getNomegrupo() {
        return nomegrupo;
    }

    public void setNomegrupo(String nomegrupo) {
        this.nomegrupo = nomegrupo;
    }

    //============ Padrão ============//
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof GrupoEntidade)) {
            return false;
        }
        GrupoEntidade other = (GrupoEntidade) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return String.valueOf(id);
    }
}
Controle -
@ManagedBean(name = "grupoControle")
@SessionScoped
public class GrupoControle {

    private GrupoEntidade grupo;
    private GrupoEntidade selectedGrupo;
    @EJB
    private GrupoFacade grupoFacade;
    private List<GrupoEntidade> lista = new ArrayList<GrupoEntidade>();
    @EJB
    private BenFacade benDao;
    private Converter converterBen;
    private BenEntidade beneficiario;
    @EJB
    private EntFacade entDao;
    private Converter converterEnt;
    @EJB
    private ForFacade forDao;
    private Converter converterFor;

    //============ Entidade ============//
    public BenEntidade getBeneficiario() {
        return beneficiario;
    }

    public void setBeneficiario(BenEntidade beneficiario) {
        this.beneficiario = beneficiario;
    }

    public GrupoEntidade getGrupo() {
        return grupo;
    }

    public void setGrupo(GrupoEntidade grupo) {
        this.grupo = grupo;
    }

    public GrupoEntidade getSelectedGrupo() {
        return selectedGrupo;
    }

    public void setSelectedGrupo(GrupoEntidade selectedGrupo) {
        this.selectedGrupo = selectedGrupo;
    }

    //============ Converter ============//
    public Converter getConverterBen() {
        if (converterBen == null) {
            converterBen = new ConverterGenerico(benDao);
        }
        return converterBen;
    }

    public void setConverterBen(Converter converterBen) {
        this.converterBen = converterBen;
    }

    public Converter getConverterEnt() {
        if (converterEnt == null) {
            converterEnt = new ConverterGenerico(entDao);
        }
        return converterEnt;
    }

    public void setConverterEnt(Converter converterEnt) {
        this.converterEnt = converterEnt;
    }

    public Converter getConverterFor() {
        if (converterFor == null) {
            converterFor = new ConverterGenerico(forDao);
        }
        return converterFor;
    }

    public void setConverterFor(Converter converterFor) {
        this.converterFor = converterFor;
    }

    //============ Facade ============//
    public BenFacade getBenDao() {
        return benDao;
    }

    public void setBenDao(BenFacade benDao) {
        this.benDao = benDao;
    }

    public EntFacade getEntDao() {
        return entDao;
    }

    public void setEntDao(EntFacade entDao) {
        this.entDao = entDao;
    }

    public ForFacade getForDao() {
        return forDao;
    }

    public void setForDao(ForFacade forDao) {
        this.forDao = forDao;
    }

    public GrupoFacade getGrupoFacade() {
        return grupoFacade;
    }

    public void setGrupoFacade(GrupoFacade grupoFacade) {
        this.grupoFacade = grupoFacade;
    }

    //============ Lista ============//
    public List<GrupoEntidade> getLista() {
        return grupoFacade.findAll();
    }

    public void setLista(List<GrupoEntidade> lista) {
        this.lista = lista;
    }

    //============ Lista Menu ============//
    public List<SelectItem> getEntidades() {
        List<SelectItem> listEntidades = new ArrayList<SelectItem>();
        for (EntEntidade object : getEntDao().findAll()) {
            listEntidades.add(new SelectItem(object, object.getNomeent()));
        }
        return listEntidades;
    }

    public List<SelectItem> getFornecedores() {
        List<SelectItem> listFornecedores = new ArrayList<SelectItem>();
        for (ForEntidade object : getForDao().findAll()) {
            listFornecedores.add(new SelectItem(object, object.getNomefor()));
        }
        return listFornecedores;
    }

    public List<SelectItem> getBeneficiarios() {
        List<SelectItem> listBeneficiarios = new ArrayList<SelectItem>();
        for (BenEntidade object : getBenDao().findAll()) {
            listBeneficiarios.add(new SelectItem(object, object.getNomeben()));
        }
        return listBeneficiarios;
    }

    //============ Comandos ============//
    public void novo() {
        grupo = new GrupoEntidade();
    }

    public void salvar() {
        grupoFacade.salvar(grupo);
    }

    public void editar(ActionEvent e) {
        grupo = (GrupoEntidade) e.getComponent().getAttributes().get("grupo");
    }

    public void excluir(ActionEvent e) {
        grupo = (GrupoEntidade) e.getComponent().getAttributes().get("grupo");
        grupoFacade.remover(grupo);
    }

    public void adicionaBeneficiario(){
        grupo.getBeneficiarios().add(beneficiario);
        
    }
}

1 Resposta

jeffev

Achei estranho um detalhe.

Aqui você que o cara selecionado vai para "grupoControle.grupo.beneficiarios"
<p:selectOneMenu value="#{grupoControle.grupo.beneficiarios}" id="benselect" converter="#{grupoControle.converterBen}">                             
                            <f:selectItems value="#{grupoControle.beneficiarios}"/>  
                        </p:selectOneMenu>

Mas aqui você pega o valor de outro lugar (beneficiario).

public void adicionaBeneficiario(){  
        grupo.getBeneficiarios().add(beneficiario);  
          
    }
Criado 14 de outubro de 2012
Ultima resposta 15 de out. de 2012
Respostas 1
Participantes 2