O Merlin trabalha com o conceito de Actions para tratamento de eventos.
Isso segue o principio básico da triade Controle-Evento-Acao, tal como
é definida pela Event Driven Programming, derivada da Eiffel e
implementada através de anotações no Merlin (vide
https://agent4java.dev.java.net/)
Para implementar isso, o Swing possui Actions, que podem ser ligadas a
um ou mais controles cada uma. Nesse link do Creating a GUI with
JFC/Swing falasse mais desse assunto:
http://java.sun.com/docs/books/tutorial/uiswing/misc/action.html
Por enquanto, o Merlin está implementando o conceito de Action como um
mapeamento para um metodo diretamente. Em outras palavras, quando o
evendo ocorre sobre o controle, o Merlin chama o metodo atrelado. Para
isso, algumas regras sao exigidas, como o classico construtor publico
vazio ou o metodo ser estatico (o merlin detecta o tipo do metodo e
instancia um objeto se precisar para executar o metodo).
Para suportar o conceito de Actions do Swing, o Merlin nao precisaria
mudar quase nada, pois uma Action no Swing é uma classe tambem, a qual
possui um metodo especifico que é disparado pelo controle.
Assim, o Merlin detectaria que a Action é uma classe de Action do
Swing (pois todas as classes de Action do Swing estendem
javax.swing.AbstractAction) e instanciaria a Action e ligaria ao
controle.
Se a action nao for uma Action do Swing e sim um metodo, o Merlin
continua fazendo o que faz hoje: instancia o objeto e chama o metodo...
Finalizando, no Swing é barbada suportar Actions. Minha duvida é: No
JSF ou em outro framework web que for escolhido para ser utilizado,
existe esse mesmo conceito de actions (como no Swing) ?
Julio, se possível, dê uma mão pra responder.