Filtro de eventos nos listeners [Resolvido]  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
thiago.filadelfo
Virtual Machine Man
[Avatar]

Membro desde: 07/07/2007 00:32:26
Mensagens: 579
Localização: São Paulo
Offline

Olá Amigos

Gostaria de saber se existe alguma forma de eu fazer um filtro de eventos nos listeners, por exemplo
minha classe implementaria ActionListener e esse action pede a implementação de um metodo
actionPerformed, ok...

Dai gostaria que esse actionPerformed passe pelo meu filtro primeiro para depois ser envocado, normalmente.
É a mesma idéia do Filter no jee antes de chamar um servlet ou um action do struts.. tem modo de fazer isso??

Desde já agradeço
Flwssss

This message was edited 2 times. Last update was at 06/01/2009 20:48:45


[Email] [MSN]
marcosharbs
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2008 11:53:39
Mensagens: 645
Offline

hmmm não sei se tem como fazer que nem com servlet, mas vc poderia chamar seu filtro dentro do actionPerformed e ai so executa o conteudo dele se seu filtro retorna true por exemplo, só uma ideia nao sei comko vc esta implementando.

======================================================

Blog com foco em desenvolvimento web com java.

http://marcosharbs.wordpress.com/

======================================================
thiago.filadelfo
Virtual Machine Man
[Avatar]

Membro desde: 07/07/2007 00:32:26
Mensagens: 579
Localização: São Paulo
Offline

Tentei fazer assim:
- Minha Classe que iria filtra as ações:


- Minha classe que iria produzir e consumir o evento:


Mais esta fazendo um loop da morte!!! srsrsrsrs
Também gostaria de fazer com que essa classe teste implementasse... mas tudo bem.. qualquer sugestão é válida!!!

Flwsss

[Email] [MSN]
renzonuccitelli
GUJ Master

Membro desde: 17/09/2008 12:58:32
Mensagens: 1133
Offline

Vejo algumas maneiras de fazer isso.

1) implemente o ActionListener em uma classe abstrata que receba seu filtro no construtor, e que possua o filtro como atributo. Seu filtro, poderia ser, por exemplo, uma interface com o método boolean verify(), de forma que vc pudesse implementar diferentes filtros. Entao em sua classe asbtrato, vc criaria o método execute() ou alguma coisa do gênero, que seria a acao a ser executada.
Vai um exemplo:



Outra forma seria definir filtros via Annotation+Reflection para evitar os if´s que o padrão Observer nos obriga a criar em Java. Esse foi o tema do meu TCC que eu resolvi, como exemplo, no JColtrane para evitar as cascatas de if´s no uso do SAX.

Enfim, acho que a primeira é mais simples para o que vc quer, mas derrepente vc pode dar uma olhada na segunda para coisas mais complicadas...

A propósito, a classe que vc fez fica em loop pq um método fica chamando o outro em seu escopo, ocasionando um ping pong sem fim

This message was edited 2 times. Last update was at 06/01/2009 00:33:23


Renzo Nuccitelli

Engenheiro de Computação - ITA

http://nuccitec.com.br/
http://blog.nuccitec.com.br/
http://jcoltrane.sf.net
http://jfera.nuccitec.com.br/
http://code.google.com/p/webapp-ce/
thiago.filadelfo
Virtual Machine Man
[Avatar]

Membro desde: 07/07/2007 00:32:26
Mensagens: 579
Localização: São Paulo
Offline

Putz... é verdade, nem tinha visto!!! Isso.... ontem tinha tentado algumas coisas
mas logo desisti, vou tentar o que vc falou (primeira solução) e achei muito
interessante essa API JColtrane..

Muito obrigado pela dica
Flwsss

[Email] [MSN]
thiago.filadelfo
Virtual Machine Man
[Avatar]

Membro desde: 07/07/2007 00:32:26
Mensagens: 579
Localização: São Paulo
Offline

Opa!!!! Ueba!!!
Funcionou certinho!!! Legal.. gostei deste jeito
tinha feito um de extends.. não tinha gostado muito, pois se uma classe já extendida
dai tinha que fazer várias coisas... deste jeito que vc me falou saiu perfeito....

Brigaduuuuuuuuuuuuuu

[Email] [MSN]
renzonuccitelli
GUJ Master

Membro desde: 17/09/2008 12:58:32
Mensagens: 1133
Offline

Legal que vc tenha conseguido. Repare que vc pode também usar um var args no construtor para inserir vários filtros em vez de um só. As vezes vc pode querer criar várias condições. Aí bastaria ver se todas as condições dos filtros são atendidas.

Renzo Nuccitelli

Engenheiro de Computação - ITA

http://nuccitec.com.br/
http://blog.nuccitec.com.br/
http://jcoltrane.sf.net
http://jfera.nuccitec.com.br/
http://code.google.com/p/webapp-ce/
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team