Edit dataTable in Dialog box in JavaWeb - JSF

1

I need to edit a line of the dataTable when I open the dialog, but it is not working the way I am doing, I did a test in the console, and the object gets null when I send the edit of it, it's like it does not load.

Image to demonstrate what I want:

DataTable:

<p:dataTableemptyMessage="Nenhum registro salvo !"
 filteredValue="#{projetoBean.listaProjetosFiltrados}"
 value="#{projetoBean.listaProjetos}" var="projeto" rows="5" paginator="true" >

<p:column headerText="Porcentagem de Conclusão:">
<p:commandButton value="#{projeto.porcentagem}" onclick="PF('dlg1').show();"  >
<f:setPropertyActionListener target="#{projetoBean.projetoCadastro}"
                     value="#{projeto}"/>
</p:commandButton>
</p:column>     

</p:dataTable>

Dialog:

<h:form>
<p:dialog header="Editar Porcentagem" widgetVar="dlg1" minHeight="40">
     <h:outputText value="Digite a nova porcentagem" />
         <p:inputText maxlength="3" value="#{projetoBean.projetoCadastro.porcentagem}"/> 
    <p:commandButton value="Salvar" actionListener="#{projetoBean.editar}" update=":msgGlobal"/>
</p:dialog>
</h:form>

Bean:

@ManagedBean
@ViewScoped

public class ProjetoBean {
private String acao;
private Long idProjeto;
private Projeto projetoCadastro;
private List<Projeto> listaProjetos;
private List<Projeto> listaProjetosFiltrados;
private List<Usuario> listaUsuarios;
private List<Cliente> listaClientes;

//GetSet

public void limpar() {
    projetoCadastro = new Projeto();
}

public void criar() {

    try {
        ProjetoDAO projetodao = new ProjetoDAO();
        projetodao.salvar(projetoCadastro);

        projetoCadastro = new Projeto();

        FacesUtil.addMsgInfo("Projeto criado com sucesso !");
    } catch (RuntimeException ex) {
        FacesUtil.addMsgErro("Erro ao tentar incluir um projeto");
    }

}

public void carregarPesquisa() {

    try {       
        ProjetoDAO projetodao = new ProjetoDAO();
        listaProjetos = projetodao.listar();
    } catch (RuntimeException ex) {
        FacesUtil.addMsgErro("Erro ao listar Projetos");
    }

}

public void carregarCadastro(){

    try {       
        if(idProjeto != null){
            ProjetoDAO projetodao = new ProjetoDAO();       
            projetoCadastro = projetodao.buscarId(idProjeto);   
        } else {
            projetoCadastro = new Projeto();
        }

        UsuarioDAO usuariodao = new UsuarioDAO();   
        listaUsuarios = usuariodao.listar();

        ClienteDAO clientedao = new ClienteDAO();   
        listaClientes = clientedao.listar();

    } catch (RuntimeException ex) {
        FacesUtil.addMsgErro("Erro ao tentar obter dados do projeto.");
    }

}

public void excluir() {

    try {
        ProjetoDAO projetodao = new ProjetoDAO();
        projetodao.excluir(projetoCadastro);

        FacesUtil.addMsgInfo("Projeto removido com sucesso !");
    } catch (RuntimeException ex) {
        FacesUtil.addMsgErro("Erro ao tentar remover um projeto.");
    }

}

public void editar() {

    try {
        ProjetoDAO projetodao = new ProjetoDAO();
        projetodao.editar(projetoCadastro);
        System.out.println(projetoCadastro);
        FacesUtil.addMsgInfo("Projeto editado com sucesso !");
    } catch (RuntimeException ex) {
        FacesUtil.addMsgErro("Erro ao tentar editar um projeto.");
    }

}
}
    
asked by anonymous 30.09.2016 / 17:58

0 answers