Olá desenvolvedores, agora que os dados dos lançamentos realizados já estão sendo exibidos em tela, implementaremos os botões para “Excluir” e “Editar” estes mesmos lançamentos a partir da tabela.

Na página lançamento.xhtml criaremos mais dois componentes h:column, que como sempre é, receberão, cada um, a respectiva tag f:facet para definirmos um cabeçalho para as colunas. Cada coluna implementará também um h:commandLink que é o botão que receberá a ação correspondente.

Assim, para seguir o padrão que aplicamos em cada página cada botão será uma imagem, que por sua vez serão inseridas pelo componente h:graphicImage. O h:graphicImage renderiza um elemento HTML do tipo “img”.

E por fim a tag h: setPropertyActionListener que adiciona um ouvinte de ação a um componente que define uma propriedade de bean para um determinado valor. Ou seja, o objeto que irá receber o valor que está na tela, o que se dará por meio da variável “lanc”.

Lembrando que é importante que a pasta das imagens esteja dentro da pasta resource, visto que é por esta página que o JSF – JavaServer Faces busca quando precisa renderizar as imagens.

Proceda do mesmo modo para implementar o botão de “Excluir”, onde a única diferença é que precisaremos chamar o método remover(). Desse modo o h:commandLink implementará um action=”{LancementoBean.remover}”.

ADENDO: MÉTODO SALVAR()

No método salvar() do LancementoBean, onde o daoGeneric invoca o “salvar” troque pelo “merge”, assim atribuiremos ao lançamento o estado consistente que o merge retorna. O merge mescla o estado atual da entidade recebida com o contexto atual da persistência.

Ele cria ainda uma nova instância do objeto onde o estado original do objeto é copiado, implicando em uma mudança no estado da entidade, que é o que resulta em uma atualização na base de dados no momento do commit.

EM POUCAS PALAVRAS

Neste tutorial finalizamos o cadastro de lançamentos, se você chegou aqui agora, volte alguns tutoriais para poder acompanhar toda a implementação. E se não é aluno do curso de Formação JavaWeb, não perca tempo, se inscreva logo e se junte a nossa grande comunidade de programadores apaixonados pelo Java.