Bean nao está atualizando o conteudo do inputText

Bem pessoal é o seguinte, possuo um dialog que consiste em um cadastro de um orgao e dentro desse dialog possui um datatable logo abaixo do cadastro, ao cadastrar ele atualiza o datatable normal, porem eu coloquei para quando clicar em uma linha do datatable ele povoar novamente o formulario com os conteudos inseridos, o problema é que se eu simplesmente MUDAR o nome ou qualquer outro conteudo e clicar em editar ele está indo o conteudo que já está cadastrado e nao o que eu modifiquei, ou seja se eu cadastrei NOVO USER cliquei na tabela povoei o formulario com NOVO USER e editei esse novo para NOVO USER 2, ele está indo como NOVO USER, ou seja, nao ocorre alteração.

Segue o codigo do Bean.

package br.com.idea.dilicita.beans;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.SelectItem;

import br.com.idea.dilicita.exception.DilicitaException;
import br.com.idea.dilicita.facade.DilicitaFacade;
import br.com.idea.dilicita.model.Cidade;
import br.com.idea.dilicita.model.Estado;
import br.com.idea.dilicita.model.Orgao;
import br.com.idea.dilicita.model.TipoOrgao;

@ManagedBean(name="orgBean")
@ViewScoped
public class OrgBean {

	private Orgao orgao;
	private Estado estado = new Estado();
	private List<Orgao> lista;
	private List<TipoOrgao> listarTipoOrgao = null;
	private List<Estado> selecionarEstado;
	private List<Cidade> selecionarCidade;
	
	public OrgBean() {
		this.orgao = new Orgao();
	}

	public void salvar() {
		try {
			DilicitaFacade orgaoRN = new DilicitaFacade();
			orgaoRN.salvarOrgao(orgao);
			this.orgao = new Orgao();
		} catch (DilicitaException e) {
			e.printStackTrace();
		}
	}

	public void excluir() {
		try {
			DilicitaFacade orgaoRN = new DilicitaFacade();
			orgaoRN.excluirOrgao(orgao);
			this.orgao = new Orgao();
		} catch (DilicitaException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public List<Orgao> getLista() {
		try {
			DilicitaFacade orgaoRN = new DilicitaFacade();
			this.lista = orgaoRN.listarOrgaos();
		} catch (DilicitaException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return lista;
	}

	public Orgao getOrgao() {
		return this.orgao;
	}

	public void setOrgao(Orgao orgao) {
		this.orgao = orgao;
	}

	public List<TipoOrgao> getListarTipoOrgao() {
		if(listarTipoOrgao == null) {
			try {
				DilicitaFacade orgaoRN = new DilicitaFacade();
				this.listarTipoOrgao = orgaoRN.listarTiposOrgaos();
			} catch (DilicitaException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return listarTipoOrgao;
	}

	public List<SelectItem> getSelecionarEstado() {
		DilicitaFacade orgaoRN = new DilicitaFacade();
		List<SelectItem> itens = new ArrayList<SelectItem>();
		itens.add(new SelectItem(null, "Selecione o estado"));
		try {
			for (Estado est : orgaoRN.listarEstados()) {
				SelectItem se = new SelectItem();
				se.setValue(est);
				se.setLabel(est.getUF());
				itens.add(se);
			}
		} catch (DilicitaException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return itens;
	}

	public List<Cidade> getSelecionarCidade() {
		if(this.orgao.getEndereco().getCidade().getEstado().getCodigo() != 0) {
			DilicitaFacade orgaoRN = new DilicitaFacade();
			Long n = this.orgao.getEndereco().getCidade().getEstado().getCodigo();
			int idEstado = Integer.valueOf(n.toString());
			try {	    		
				return this.selecionarCidade = orgaoRN.listarCidades(idEstado);
			} catch (DilicitaException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}
			return this.selecionarCidade;			
	}

	public void carregarCidades() {
		DilicitaFacade orgaoRN = new DilicitaFacade();
		Long n = this.orgao.getEndereco().getCidade().getEstado().getCodigo();
		int idEstado = Integer.valueOf(n.toString());
		try {	    		
			this.selecionarCidade = orgaoRN.listarCidades(idEstado);
		} catch (DilicitaException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}      
	}
	
	public void clean() {
		this.orgao = new Orgao();
	}

	public Estado getEstado() {
		return estado;
	}

	public void setEstado(Estado estado) {
		this.estado = estado;
	}

}

segue o codigo do dialog.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">
	
<f:view contentType="text/html">	
<h:body>
	<p:dialog id="MyDialog" resizable="false" widgetVar="dialog" modal="true" appendToBody="true" header="Informações do Orgão" 
		dynamic="true" draggable="false" >
		<p:ajax event="close" update="MyDialog" listener="#{orgBean.clean}" />
		 
			<h:form id="addOrgao">
					<p:growl id="notify" showDetail="true" sticky="true"/>	
					<h:inputHidden value="#{orgBean.orgao.codigo}" />
<!-- 				<fieldset><legend>Informações do Orgão</legend> -->
					<h:panelGrid columns="1">
						<h:outputLabel value="*Nome:"/>
						<h:inputText value="#{orgBean.orgao.nome}" size="100" required="true" requiredMessage="Nome Obrigatorio"
						validatorMessage="Nome deve conter no minimo '10' caracteres." immediate="true"> 
							<f:validateLength minimum="10" />
						</h:inputText>
					</h:panelGrid>
					
					<h:panelGrid columns="4">
						<h:panelGrid columns="1">
							<h:outputLabel value="Tipo do Orgão:"/>
							<h:selectOneMenu id="tipoOrgao" value="#{orgBean.orgao.tipo}" converter="tipoOrgaoConverter" style="width: 140px;" >
								<f:selectItem itemLabel="Selecione" />
								<f:selectItems var="tipoOrgao" value="#{orgBean.listarTipoOrgao}" itemLabel="#{tipoOrgao.descricao}" itemValue="#{tipoOrgao}" />							
							</h:selectOneMenu>
						</h:panelGrid>
												
						<h:panelGrid columns="1">
							<h:outputLabel value="*CNPJ:"/>
							<p:inputMask id="cnpj" value="#{orgBean.orgao.cnpj}" mask="99.999.999/9999-99" size="25" />
						</h:panelGrid>
						
						<h:panelGrid columns="1">
							<h:outputLabel value="*Codigo Sagres:"/>
							<p:inputText value="#{orgBean.orgao.codigoSagres}" size="25" />
						</h:panelGrid>
						
				
						<h:panelGrid columns="1">
							<h:outputLabel value="Decreto:"/>
							<p:inputText value="#{orgBean.orgao.decreto}" cols="40" rows="5" />
						</h:panelGrid>	
					</h:panelGrid>
					
					
<!-- 					A partir daqui é o endereço		-->
					
					<h:panelGrid columns="3">
						<h:panelGrid columns="1">
							<h:outputLabel value="*Endereço:"/>
							<p:inputText value="#{orgBean.orgao.endereco.logradouro}" size="50" />
						</h:panelGrid>
						
						<h:panelGrid columns="1">
							<h:outputLabel value="*Bairro:"/>
							<p:inputText value="#{orgBean.orgao.endereco.bairro}" size="30" />
						</h:panelGrid>
						
						<h:panelGrid columns="1">
							<h:outputLabel value="*Numero:"/>
							<p:inputText value="#{orgBean.orgao.endereco.numero}" size="5" />
						</h:panelGrid>
				
					</h:panelGrid>
					
					<h:panelGrid columns="4">
					
						<h:panelGrid columns="1">
							<h:outputLabel value="Complemento:"/>
							<p:inputText value="#{orgBean.orgao.endereco.complemento}" size="30" />
						</h:panelGrid>
						
						<h:panelGrid columns="1">
							<h:outputLabel value="*CEP:"/>
							<p:inputText value="#{orgBean.orgao.endereco.cep}" size="30" />
						</h:panelGrid>
						
						<h:panelGrid columns="1">
							<h:outputLabel value="*UF:"/>
						<h:selectOneMenu id="estado" value="#{orgBean.orgao.endereco.cidade.estado}"
							converter="estadoConverter">
							<f:selectItems value="#{orgBean.selecionarEstado}" />
							<p:ajax update="cidade" listener="#{orgBean.carregarCidades}" />
						</h:selectOneMenu>
					</h:panelGrid>
					
						<h:panelGrid columns="1">
							<h:outputLabel value="*Cidade:"/>
							<h:selectOneMenu id="cidade" value="#{orgBean.orgao.endereco.cidade}" converter="cidadeConverter">
								<f:selectItem itemLabel="Selecione a cidade"/>
								<f:selectItems value="#{orgBean.selecionarCidade}" var="cidade" itemLabel="#{cidade.nome}" itemValue="#{cidade}" />														
							</h:selectOneMenu>
						</h:panelGrid>
						
					</h:panelGrid>					
<!-- 					Aqui se encontra o Contato -->

					<h:panelGrid columns="3">
						<h:panelGrid columns="1">
							<h:outputLabel value="*Telefone:"/>
							<p:inputText value="#{orgBean.orgao.contato.telefone}" size="20" />
						</h:panelGrid>
						
						<h:panelGrid columns="1">
							<h:outputLabel value="Fax:"/>
							<p:inputText value="#{orgBean.orgao.contato.fax}" size="20" />
						</h:panelGrid>
						<h:panelGrid columns="1">
							<h:outputLabel value="E-Mail:"/>
							<p:inputText value="#{orgBean.orgao.contato.email}" size="40" />
						</h:panelGrid>
						
					</h:panelGrid>	
					
					<p:dataTable id="listaOrgao" rows="7" style="margin-top: 10px;" value="#{orgBean.lista}" var="orgao"
					 emptyMessage="Não possui Orgãos" rowKey="#{orgao.codigo}" selection="#{orgBean.orgao}" selectionMode="single">
						<f:facet name="header">Orgãos Cadastrados</f:facet>
						
						<p:ajax event="rowSelect" update=":addOrgao" />
						
						<p:column headerText="Orgãos">
							#{orgao.nome}
						</p:column>
						
					</p:dataTable>
					
					<p:separator/>
									
					<p:commandButton value="Novo" actionListener="#{orgBean.clean}" update=":addOrgao" />
					<p:commandButton value="Salvar" action="#{orgBean.salvar}" update="listaOrgao notify" ajax="false"/>
					<p:commandButton value="Editar" action="#{orgBean.salvar}" update="listaOrgao notify"/>
					<p:commandButton value="Excluir" action="#{orgBean.excluir}" update="listaOrgao addOrgao" />
									
<!-- 				</fieldset> -->
			</h:form>
			
		</p:dialog>

</h:body>
</f:view>
</html>