Como criar um front Controller para o Swing Application framework?

4 respostas
Zakim

Ola pessoal.

Estou tento dificultades para colocar as actions em uma outra classe que não seja a mesma da frame (formulario) que eu gerei com o netbeans. Quero poder centralizar as informações para um bloco de comandos…

ex: na minha frame eu tenho um toolbar com varios buttons e um menu com vários menuItens…
então eu crio uma @action para o toolbar e uma para o menu, diminuindo o codigo dentro da classe da frame.

se eu criar uma @Action para cada botão, estarei poluindo mais ainda a classe do Frame. Como faço para separar isso?

Quero colocar as @actions em outras classes ou sei la… separa-las de qualquer forma…

obrigado

4 Respostas

peerless

O que você pode fazer para ir amenizando seu problema (por enquanto), é adicionando suas actions dentro de inner classes. (estas por sua vez, estariam dentro do form, em estado private)

No mais, você poderia dar uma pesquisada sobre frameworks que efetuam bind (o problema do swing, é que a maioria dos frameworks fazem “bind” da view diretamente com o modelo… isso nem sempre é bom!)

O Framework Gênesis é uma boa proposta, pois, apesar dele não ter uma estratégia definida de ligar a view a um controller (ele se encarrega de ser o controller), ele lhe oferece algumas opções de injeções de aspectos, por exemplo, você pode programa-lo, para executar métodos da VIEW antes e depois de executar determinado método do modelo.

Eu estou desenvolvendo um framework, exatamente dentro da sua dificuldade (e para a que era aqui da empresa). Ele já funciona e já está em produção no ERP da empresa, porém, foi criado para trabalhar em conjunto com outro framework: SwingBean (o que não impede de trabalhar sem, mas aumenta o trabalho).

No mais, não há como fugir disso se quer deixar sua aplicação Swing 100% MVC… em tempo, apresente o formulário ao controller, passando os componentes como parâmetro pro controller, e deixando ele trabalhar.

[]s

Zakim

hehee…

que triste isso hein!

Considero de médio porte a aplicação que estou construindo. devo ameniza-la ou devo recomeçar e chamar o form no controlador assim como vc disse?

:stuck_out_tongue:

peerless

Zakim:
hehee…

que triste isso hein!

Considero de médio porte a aplicação que estou construindo. devo ameniza-la ou devo recomeçar e chamar o form no controlador assim como vc disse?

:P

Cara, se você manja um pouco de anotações+reflexão, faz um controladorzinho que injete dependencias do form no controller. (Simulando um container) …

Caso não consiga, vá de inner class para atualizar a view, e de genesis para chamar o modelo…

infelizmente, nisso, seja qual opcao escolher, vai ficar na promessa alguma coisa…

[]s

Zakim

acho q inner class é o meu caminho … hehehe

valeu colega

brigadão mesmo!

Criado 6 de janeiro de 2008
Ultima resposta 8 de jan. de 2008
Respostas 4
Participantes 2