Olá desenvolvedores, neste tutorial implementaremos a opção de excluir um e-mail listado na caixa de diálogo, dialog. O dialog, como já vimos é uma caixa de diálogo, do tipo modal, gerada em tempo de execução quando o usuário interage com o botão para exibi-la.

Neste projeto que estamos implementando, o dialog está sendo utilizada para cadastrar e-mails para o usuário “selecionado”, e listá-los em uma tabela. Mas independente do motivo precisamos ter a opção de excluir o e-mail cadastrado.

IMPLEMETANDO O EXLUIR

>Implementaremos o botão de Excluir na tabela ao lado da coluna do e-mail, desse modo, adicione a tabela uma terceira coluna. Na tag de componente p:column, determine um cabeçalho para a coluna por meio da propriedade headerText.

>Dentro da coluna insira a tag h:commandLink que é um componente de ação que processará a solicitação. Atribua ao botão as propriedades id e como a tela não será recarregada, atribua também um actionListener que chamará o método removerEmail(), e assim cada vez que o botão for clicado o valor atual será atualizado com o Ajax. Por padrão os componentes do PrimeFaces são todos Ajax.

>Para que a gente consiga remover o e-mail será preciso passar um parâmetro para o lado do servidor, isto é, um identificador que será passado por meio de um parâmetro. Este identificador será definido pela propriedade name da tag f:param. O value receberá o objeto e-mail invocando o seu atributo id.

>O h:commandLink, sendo um componente do PrimeFaces ou do JSF – JavaServer Faces, não implementa as propriedades do Ajax, padrão da biblioteca. Para implementarmos o Ajax e assim poder atualizar o dialog após ter excluído o e-mail, utilizaremos o componente f:ajax que executará a ação do botão e depois renderizará atualizando os valores do modal.

>E por fim adicionaremos um ícone ao botão com o componente do JSF, h:graphicImage para ser exibido em substituição ao texto.

MÉTODO REMOVEREMAIL()

>No ManagedBean, UsuarioPessoaManagedBean criaremos o método removerEmail(), lançando uma exceção para cima.

public void removerEmail() {}

> No escopo do método precisaremos por meio do parâmetro pegar o código do e-mail que desejamos remover. Dessa forma iremos por meio do FacesContext de onde conseguimos toda as informações da aplicação e assim faremos a requisição do código do e-mail.

>Então depois de obtermos o código do e-mail, ainda dentro do método, instanciaremos o objeto EmailUser para que possamos “setar” o id e passa-lo como argumento para o método deletarPorId(). E para não termos que pesquisar todos os e-mails no banco de dados e assim contribuir para a lentidão do sistema, obteremos a lista e removeremos o registro desejado.

>Após todo o processamento enviaremos uma mensagem de feedback para o usuário informando que o e-mail foi removido com sucesso.

EM POUCAS PALAVRAS

Neste tutorial implementamos o método e adicionamos a tela o botão para remover os e-mails cadastrados para um usuário específico.