screen contact
<?xml version="1.0" encoding="utf-8" ?>
<p:growl autoUpdate="true"/>
<p:panel header="Formulário" id="panel">
<h:panelGrid columns="2">
<h:outputText value="Nome"></h:outputText>
<p:inputText value="#{ContatoControl.contato.nome }"></p:inputText>
<h:outputText value="Telefone"></h:outputText>
<p:inputMask value="#{ContatoControl.contato.telefone }"
mask="(99) 9999-9999"></p:inputMask>
<p:commandButton actionListener="#{ContatoControl.confirmar }"
value="Confirmar" update="contatos, panel" />
</h:panelGrid>
</p:panel>
<p:dataTable id="contatos" value="#{ContatoControl.contatos }"
rows="10" var="cont" width="100%" emptyMessage="Sem registros"
editable="true">
<f:facet name="header">
<p:outputLabel value="Tabela de Contatos: " />
<br></br>
<br></br>
<p:outputLabel value="Consultar: " />
<p:inputText id="pesquisar" value="#{ContatoControl.nomeOuTelefone}" />
<p:commandButton value="Pesquisar" update="contatos"
actionListener="#{ContatoControl.pesquisar}" />
</f:facet>
<p:column sortBy="#{cont.id }">
<f:facet name="header">
<h:outputText value="Id"></h:outputText>
</f:facet>
<h:outputText value="#{cont.id }"></h:outputText>
</p:column>
<p:column sortBy="#{cont.nome }">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{cont.nome }"></h:outputText>
</f:facet>
<f:facet name="input">
<p:inputText value="#{cont.nome }"></p:inputText>
</f:facet>
</p:cellEditor>
</p:column>
<p:ajax event="rowEdit" listener="#{ContatoControl.modificar(cont)}" update="contatos"/>
<p:column sortBy="#{cont.telefone }">
<f:facet name="header">
<h:outputText value="Telefone"></h:outputText>
</f:facet>
<h:outputText value="#{cont.telefone }"></h:outputText>
</p:column>
<p:column headerText="Ação">
<p:commandButton icon="ui-icon-pencil" id="btnEditarProduto"
actionListener="#{ContatoControl.selecionarContatoParaEdicao(cont)}"
onclick="PF('dialogNovoContato').show();" />
<p:commandButton value="PopUp" actionListener="#{ContatoControl.selecionarContatoParaEdicao(cont)}" onclick="PF(alterarpop).show()" />
<p:commandButton actionListener="#{ContatoControl.excluir(cont)}"
icon="ui-icon-trash" title="Excluir" update="contatos" />
</p:column>
<p:column>
<p:rowEditor />
</p:column>
</p:dataTable>
</ui:define>
controler
'
package br.com.ambientinformatica.primefaces.controle;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.event.ActionEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import br.com.ambientinformatica.ambientjsf.util.UtilFaces;
import br.com.ambientinformatica.jpa.exception.PersistenciaException;
import br.com.ambientinformatica.primefaces.entidade.Contato;
import br.com.ambientinformatica.primefaces.persistencia.ContatoDao;
@Controller("ContatoControl")
@Scope("conversation")
public class ContatoControl {
private String nomeOuTelefone;
private Contato contato = new Contato();
@Autowired
private ContatoDao contatoDao;
private List<Contato> contatos = new ArrayList<Contato>();
private boolean editMode;
@PostConstruct
public void init() {
listar(null);
}
public void confirmar(ActionEvent evt) {
try {
contatoDao.alterar(contato);
listar(evt);
contato = new Contato();
} catch (Exception e) {
UtilFaces.addMensagemFaces(e);
}
}
public void listar(ActionEvent evt) {
try {
contatos = contatoDao.listar();
} catch (Exception e) {
UtilFaces.addMensagemFaces(e);
}
}
public void pesquisar() {
contatos = contatoDao.listarPorNomeOuTelefone(nomeOuTelefone);
}
public void excluir(Contato contato) {
try {
contatoDao.excluirPorId(contato.getId());
contatos = contatoDao.listar();
UtilFaces.addMensagemFaces("Contato Excluído com sucesso!");
} catch (Exception e) {
UtilFaces.addMensagemFaces(e.getMessage());
}
}
public void selecionarContatoParaEdicao(Contato contato){
try {
this.contato = contatoDao.consultar(contato.getId());
} catch (PersistenciaException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// Metodo para alterar o contato//
// public void alterar(Contato contato) throws PersistenciaException {
// contatoDao.alterar(contato);
// }
public void update() {
this.editMode = true;
}
/// teste para ver se altera pelo table esta funcionando
public void modificar(Contato com) throws PersistenciaException{
contatoDao.alterar(com);
}
public void listarTodos() throws PersistenciaException {
contatos = contatoDao.listar();
}
public Contato getContato() {
return contato;
}
public void setContato(Contato contato) {
this.contato = contato;
}
public List<Contato> getContatos() {
return contatos;
}
public String getNomeOuTelefone() {
return nomeOuTelefone;
}
public void setNomeOuTelefone(String nomeOuTelefone) {
this.nomeOuTelefone = nomeOuTelefone;
}
public boolean isEditMode() {
return editMode;
}
public void setEditMode(boolean editMode) {
this.editMode = editMode;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((contato == null) ? 0 : contato.hashCode());
result = prime * result + ((contatoDao == null) ? 0 : contatoDao.hashCode());
result = prime * result + ((contatos == null) ? 0 : contatos.hashCode());
result = prime * result + ((nomeOuTelefone == null) ? 0 : nomeOuTelefone.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ContatoControl other = (ContatoControl) obj;
if (contato == null) {
if (other.contato != null)
return false;
} else if (!contato.equals(other.contato))
return false;
if (contatoDao == null) {
if (other.contatoDao != null)
return false;
} else if (!contatoDao.equals(other.contatoDao))
return false;
if (contatos == null) {
if (other.contatos != null)
return false;
} else if (!contatos.equals(other.contatos))
return false;
if (nomeOuTelefone == null) {
if (other.nomeOuTelefone != null)
return false;
} else if (!nomeOuTelefone.equals(other.nomeOuTelefone))
return false;
return true;
}
@Override
public String toString() {
return "ContatoControl [nomeOuTelefone=" + nomeOuTelefone + ", contato=" + contato + ", contatoDao="
+ contatoDao + ", contatos=" + contatos + "]";
}
}
'
contact class
'
package br.com.ambientinformatica.primefaces.entidade;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
@Entity
public class Contato {
@Id
@GeneratedValue(generator="contato_seq", strategy=GenerationType.SEQUENCE)
@SequenceGenerator(name="contato_seq", sequenceName="contato_seq", allocationSize=1, initialValue=1)
private Integer id;
private String nome;
private String telefone;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public Integer getId() {
return id;
}
}
'
In the code block highlighted and where I have the button to do the action, when I take the "PF" before the changepop, the dialog opens, but when it is there it does not open, I need to open the dialog with the data fill the fields to edit and save. who can help me, thank you.