bem pessoal, eu possuo um dialog onde nele contem um formulario de cadastro e ainda dentro do formulario so que na parte de baixo possuo um dialog, cadastrar está funcionando tranquilamente, porem eu queria que ao clicar no objeto do datatable ele mostrasse nos campos do formulario o que eu inseri naquele objeto, que vai servir no caso para que eu possa alterar.
segue anexo o codigo da pagina e do bean.
Pagina:
<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"/>
<h:form id="addOrgao">
<p:growl id="notify" showDetail="true" sticky="true"/>
<h:inputHidden value="#{orgaoBean.orgao.codigo}" />
<!-- <fieldset><legend>Informações do Orgão</legend> -->
<h:panelGrid columns="1">
<h:outputLabel value="*Nome:"/>
<h:inputText value="#{orgaoBean.orgao.nome}" size="100" required="true" requiredMessage="Nome Obrigatorio"
validatorMessage="Nome deve conter no minimo '10' caracteres.">
<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="#{orgaoBean.orgao.tipo}" converter="tipoOrgaoConverter" style="width: 140px;" >
<f:selectItem itemLabel="Selecione" />
<f:selectItems var="tipoOrgao" value="#{orgaoBean.listarTipoOrgao}" itemLabel="#{tipoOrgao.descricao}" itemValue="#{tipoOrgao}" />
</h:selectOneMenu>
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="*CNPJ:"/>
<p:inputMask id="cnpj" value="#{orgaoBean.orgao.cnpj}" mask="99.999.999/9999-99" size="25" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="*Codigo Sagres:"/>
<p:inputText value="#{orgaoBean.orgao.codigoSagres}" size="25" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="Decreto:"/>
<p:inputText value="#{orgaoBean.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="#{orgaoBean.orgao.endereco.logradouro}" size="50" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="*Bairro:"/>
<p:inputText value="#{orgaoBean.orgao.endereco.bairro}" size="30" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="*Numero:"/>
<p:inputText value="#{orgaoBean.orgao.endereco.numero}" size="5" />
</h:panelGrid>
</h:panelGrid>
<h:panelGrid columns="4">
<h:panelGrid columns="1">
<h:outputLabel value="Complemento:"/>
<p:inputText value="#{orgaoBean.orgao.endereco.complemento}" size="30" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="*CEP:"/>
<p:inputText value="#{orgaoBean.orgao.endereco.cep}" size="30" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="*UF:"/>
<h:selectOneMenu value="#{orgaoBean.orgao.endereco.cidade.estado}" converter="estadoConverter">
<f:selectItems value="#{orgaoBean.selecionarEstado}" />
<p:ajax update="cidade" listener="#{orgaoBean.carregarCidades}" />
</h:selectOneMenu>
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="*Cidade:"/>
<h:selectOneMenu id="cidade" value="#{orgaoBean.orgao.endereco.cidade}" converter="cidadeConverter">
<f:selectItem itemLabel="Selecione a cidade"/>
<f:selectItems value="#{orgaoBean.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="#{orgaoBean.orgao.contato.telefone}" size="20" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="Fax:"/>
<p:inputText value="#{orgaoBean.orgao.contato.fax}" size="20" />
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputLabel value="E-Mail:"/>
<p:inputText value="#{orgaoBean.orgao.contato.email}" size="40" />
</h:panelGrid>
</h:panelGrid>
<p:dataTable id="listaOrgao" rows="7" style="margin-top: 10px;" value="#{orgaoBean.lista}" var="orgao"
emptyMessage="Não possui Orgãos" selection="#{orgaoBean.orgao}" selectionMode="single" rowKey="#{orgao}">
<f:facet name="header">Orgãos Cadastrados</f:facet>
<p:ajax event="rowSelect" listener="#{orgaoBean.onRowSelect}" update=":addOrgao" immediate="true" />
<p:column headerText="Orgãos">
#{orgao.nome}
</p:column>
</p:dataTable>
<p:separator/>
<p:commandButton value="Salvar" action="#{orgaoBean.salvar}" update="listaOrgao notify" />
<p:commandButton type="reset" value="Limpar" />
<!-- </fieldset> -->
</h:form>
</p:dialog>
Bean:
package br.com.idea.dilicita.beans;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.SelectItem;
import org.primefaces.event.SelectEvent;
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="orgaoBean")
@ViewScoped
public class OrgaoBean implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Orgao orgao = new Orgao();
private Estado estado = new Estado();
private List<Orgao> lista;
private List<TipoOrgao> listarTipoOrgao = null;
private List<Estado> selecionarEstado;
private List<Cidade> selecionarCidade;
public void salvar() {
try {
DilicitaFacade orgaoRN = new DilicitaFacade();
orgaoRN.salvarOrgao(orgao);
} catch (DilicitaException e) {
e.printStackTrace();
}
}
public void excluir() {
try {
DilicitaFacade orgaoRN = new DilicitaFacade();
orgaoRN.excluirOrgao(orgao);
this.lista = null;
} 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 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() {
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 onRowSelect(SelectEvent event) {
this.orgao = (Orgao) event.getObject();
}
public Estado getEstado() {
return estado;
}
public void setEstado(Estado estado) {
this.estado = estado;
}
}