[Resolvido] Atualizar objeto de datables com dialog

Galera, algum pode mim ajudar?
Quero atualizar um objeto de uma datatable abrindo em um dialog.
Só que quando clico no botão para editar não abre o dialog
Codigos:

[code]<?xml version='1.0' encoding='UTF-8' ?>

Facelet Title
                    </p:column> 
                </p:dataTable>
            </h:form>

            <p:dialog id="dialog" header="Novo Funcionário" widgetVar="dialogFuncionario"
                      appendToBody="true" resizable="false" closable="false"
                      modal="true" showEffect="fade" hideEffect="fade" width="450">
                <h:form id="formDialog">
                    <h:panelGrid columns="2" >
                        <h:outputText value="Nome"/>
                        <p:inputText value="#{FuncionarioMB.funcionario.nome}"/>
                        

                        <h:outputText value="CPF"/>
                        <p:inputText value="#{FuncionarioMB.funcionario.cpf}"/>                    

                        <h:outputText value="RG"/>
                        <p:inputText value="#{FuncionarioMB.funcionario.rg}"/>                    

                        <h:outputText value="Endereço"/>
                        <p:inputText value="#{FuncionarioMB.funcionario.endereco}"/>                    

                        <h:outputText value="Sexo"/>
                        <p:inputText value="#{FuncionarioMB.funcionario.sexo}"/>                    

                        <h:outputText value="Tipo"/>
                        <p:inputText value="#{FuncionarioMB.funcionario.tipo}"/>                    
                    </h:panelGrid>
                    <p:separator/>
                    <h:commandButton value="Cadastrar" actionListener="#{FuncionarioMB.cadastrarFuncionario()}"/>
                    <h:commandButton value="Cancelar" onclick="dialogFuncionario.hide();"/>
                </h:form>
            </p:dialog>
             <p:dialog id="dialogEditar" header="Novo Funcionário" widgetVar="dialogEditarFuncionario"
                      appendToBody="true" resizable="false" closable="false"
                      modal="true" showEffect="fade" hideEffect="fade" width="450"  >
                <h:form id="formDialogEditar">
                    <h:panelGrid columns="2" >
                        <h:outputText value="Nome"/>
                        <p:inputText value="#{FuncionarioMB.funcionarioSelecionado.nome}"/>
                        

                        <h:outputText value="CPF"/>
                        <p:inputText value="#{FuncionarioMB.funcionarioSelecionado.cpf}"/>                    

                        <h:outputText value="RG"/>
                        <p:inputText value="#{FuncionarioMB.funcionarioSelecionado.rg}"/>                    

                        <h:outputText value="Endereço"/>
                        <p:inputText value="#{FuncionarioMB.funcionarioSelecionado.endereco}"/>                    

                        <h:outputText value="Sexo"/>
                        <p:inputText value="#{FuncionarioMB.funcionarioSelecionado.sexo}"/>                    

                        <h:outputText value="Tipo"/>
                        <p:inputText value="#{FuncionarioMB.funcionarioSelecionado.tipo}"/>                    
                    </h:panelGrid>
                    <p:separator/>
                    <h:commandButton value="Salvar"/>
                    <h:commandButton value="Cancelar" onclick="dialogEditarFuncionario.hide();"/>
                </h:form>
            </p:dialog>
        </p:panel>
    </p:panel>
</h:body>

[/code]



 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.controle;

import br.com.dao.DaoFuncionario;
import br.com.modelo.Funcionario;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.event.ActionEvent;

/**
 *
 * @author Pablo Rocha
 */
@ManagedBean(name = "FuncionarioMB")
public class FuncionarioMB {
    
    private Funcionario funcionario = new Funcionario();
    private DaoFuncionario daoFuncionario = new DaoFuncionario();
    private List<Funcionario> listaFuncionario = new ArrayList();
    private Funcionario funcionarioSelecionado = new Funcionario();

    public Funcionario getFuncionario() {
        return funcionario;
    }

    public void setFuncionario(Funcionario funcionario) {
        this.funcionario = funcionario;
    }

    public DaoFuncionario getDaoFuncionario() {
        return daoFuncionario;
    }

    public void setDaoFuncionario(DaoFuncionario daoFuncionario) {
        this.daoFuncionario = daoFuncionario;
    }
     
    public void cadastrarFuncionario(){
        daoFuncionario.adicionar(funcionario);
    }

    public List<Funcionario> getListaFuncionario() {
        return listaFuncionario;
    }

    public void setListaFuncionario(List<Funcionario> listaFuncionario) {
        this.listaFuncionario = listaFuncionario;
    }

  
    public List<Funcionario> listar() {
        listaFuncionario = daoFuncionario.listarTudo();
        return listaFuncionario;
    }

    public Funcionario getFuncionarioSelecionado() {
        return funcionarioSelecionado;
    }

    public void setFuncionarioSelecionado(Funcionario funcionarioSelecionado) {
        this.funcionarioSelecionado = funcionarioSelecionado;
    }
    
    
    
     public void deletarFuncionario(Funcionario f){
        this.funcionario = f;
        daoFuncionario.removerFuncionario(funcionario);
    }
     
     public void AlterarFuncionario(){
        daoFuncionario.AlterarFuncionario(funcionarioSelecionado);
    }

}

Desde já, agradeço!

Você digitou o nome do dialog errado:

Corrija e veja se é isso.

Nossa, erro grotesco, kkk , fiquei ate com vergonha.
Abriu o form, mas ele fecha em seguida, sabe o que pode ser?
E em relação a usar o selection na datable, muda alguma coisa?
Obrigado cara, valeu mesmo.

O fato de fechar sozinho pode ser bastante coisa… aquele appendToBody do dialog é sinônimo de problemas… tenta tirar e também dá uma revisada no seu bean.

Quanto ao select no dataTable, especifique mais um pouco sua dúvida. Talvez eu possa ajudar.

Ok.
Digitei errado no outro post, é selection. Vi em alguns exemplos na internet que usam a atributo selection ao invés de f:setPropertyActionListener. Só que não conseguir desse jeito.
Obrigado.

Olha, tem várias maneiras de fazer. Vai do desenvolvedor - eu, por exemplo, costumo usar como você fez no botão remover: um método que recebe um objeto que já está lá no dataTable, esperando para ser usado.

Ok. Obrigado!