quinta-feira, 24 de abril de 2008

Criando Evento Excluir em ADFTable através da Lixeira

Vamos lá pessoal,
Hoje é uma dica bastante interessante, pois é muito utilizada nos aplicativos Oracle (EBS).
Iremos criar uma Página nos padrões web, adicionando uma ADFTable e suas respectivas colunas, onde uma das colunas irá conter o evento "Excluir" que será exibido no formato de "Lixeira".

1º Passo: Adicionar em nossa página uma Table baseada no VO.
2º Passo: Adicionar uma coluna a Table chama "Excluir".
3º Passo: Arrastar a operação "Deletar" para coluna que foi criada em forma de CommandLink.
4º Passo: Criaremos um BackingBean (java Class) que irá conter as seguintes variáveis e métodos:
/*
private OperationBinding actionBindingToExecute;
private OperationBinding commitBinding;
private Object key;//respectivos getters e setters…

public String executeActionBinding() {
actionBindingToExecute.execute();
if (actionBindingToExecute.getErrors().size() == 0) commitBinding.execute();
return "";
}
*/
Dica: para as telas onde tenha as mesma caracterista e funcionalidades, ex.: Consulta com link na table e lixeirinha, aconselhamos a criar um backingBean genérico (ClasseBeanUtils.java).

5º Passo: Criar no CommandLink da Table dois setActionListener com as seguintes propriedades:
* From: #{row.rowKeyStr}
* To: #{ClasseBeanUtils.key} // Chave que criamos no BackingBean

* From: #{bindings.Delete} // Ação de Delete que foi adicionada a página (PageDef).
* To: #{ClasseBeanUtils.actionBindingToExecute} // Chamando método do BackingBean.

6º Passo: O Source da Coluna de nossa Table irá ficar da seguinte forma:

Note que no código acima eu adicionei uma imagem "deleteicon_enabled.gif" que é a Lixeira.
Sua página ficá assim:

7º Passo: Na PageDefinition, crie na seção de "Bindings" duas "Action" baseada no VO da página:
1º: "Commit".
2º: "setCurrentRowWithKey" com os seguintes dados:
· Name ex.: rowKey
· Type ex.: Java.lang.String
· Value ex.: #{ClasseBeanUtils.key}
8º Passo: Precisaremos adicionar nosso BackingBean no "Faces-Config". No faces-config tem a aba "overview" que será criado o "Managed Beans" com o seguintes dados:
· Name ex.: ClasseBeanUtils
· Class ex.: br.com.empresa.view.backing.ClasseBeanUtils
· Scope ex.: request
Após criaremos o "Manager Properties" vinculado ao nosso "Managed Beans" com os seguintes dados:
· Name ex.: commitBinding – ele tem que ter o mesmo nome do backingBean para fazer a injeção de dependência.
· Value ex.: #{bindings.Commit}
Assim nosso exemplo um pouco extenso irá funcionar. Lembrando a todos que esse BackingBean que foi criado podemos utilizar para todas as páginas e eventos parecido, ou seja, o trabalho é feito uma vez na apliação, depois é só o reuso.
Um grande abraço e até a próxima.

Nenhum comentário: