Latest Articles

Gerencie seus projetos com NB Project .

Twitter Updates

Navigation

Calendar

    « Julho 2010
    SegTerQuaQuiSexSábDom
       
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
           
    Today

Tag Cloud

Links

    • JavaBahia
    • NB Project
    • TI na Bahia

Stats

  • Today's hits: 277
  • Posts: 98
  • Comments: 79
  • Created: 08/2008
  • Updated: 27/Jul/2010


Griffon: O Grails para Aplicacoes Swing/JavaFx

Posted on Julho 08, 2009 by Alessandro Dourado in Groovy


Leia mais sobre:


A pouco tempo decidir aprender mais sobre desenvolvimento ágil e comecei meus estudos a linguagem da moda mais falada atualmente, a Ruby on Rails.


Fiquei bastante impressionado com a facilidade e a agilidade no desenvolvimento de aplicações utilizado esta linguagem. No entanto, achei bastante diferente do que estou habituado como programador Java. Muita coisa nova para aprender.

Foi aí que em minhas pesquisas para o aprendizado do Ruby on Rails que cheguei ao Grails. Achei bastante parecido com o Ruby on Rails e muito mais próximo do Java - que é a minha praia. Então pensei, um Java com a agilidade do Ruby on Rails, fechou!

Deste momento em diante foquei minhas pesquisas para o grails e até evolui bem, entendi o funcionamento, instalei plugins, criei exemplos e estava cada vez mais apaixonado por ele. Em paralelo descobri o Griffon, um Grails para aplicações Swing e como estava começando a desenvolver uma nova aplicação para um cliente da minha empresa (softag) em Swing, pensei logo em desenvolver essa aplicação usando o Griffon. Estava eu mudando o rumo de meus estudos novamente, agora para o Griffon.

 

A Grails-like Rich Internet Framework

 

Como falei anteriormente, o Griffon é um framework parecido com o Grails para desenvolvimento de aplicações Desktop em Groovy. (Groovy é uma linguagem de script interpretada pela JVM).  Ou  seja, aplicações Swing/JavaFX.

 

Como o Grails, o Griffon segue o mesmo conceito de MVC (model-view-controller) e tudo é bem organizado e separado nas seguintes pastas:

griffon-app (pasta rais aplicação Griffon)
 - controllers  (pasta dos controladores)
 - i18n  (pastas dos arquivos de internacionalização)
 - lifecycle (pasta onde fica os arquivos de configuração do ciclo de vida da aplicação)
 - models (pasta dos modelos)
 - resources (pasta para outros arquivos como imagens)
 - views (pasta dos arquivos de visão)

 

Apesar de ele ser um projeto novo esta e suas primeiras versões (0.1.1), já dá para ver o seu potencial e o que ele é capaz de fazer de forma bem ágil. Já conta com alguns plugins que permite que você adicione funcionalidade como Tray Icon, Splash Screen, CSS, Wizards ou incluir componentes Jide, SwingX, Flamingo, usar formulários do tipo AbeilleForm e até mesmo colocar suporte a linguagens como Scala e criar um instalador multiplataforma para sua aplicação de maneira bem simples e rápida.


Para ilustrar o funcionamento, vou mostrar como instalar o Griffon e criar uma pequena aplicação não muito funcional.

 

Instalando o Griffon

Veja o passo a passo de como instalar o Griffon aqui. Mas segue um resumo com os principais passos:

  • Faca o download do Griffon aqui
  • Extraia o arquivo para C:\Griffon, ~\Griffon ou outra pasta e o defina como GRIFFON_HOME
  • Defina o JAVA_HOME caso não esteja definido
  • Adicione o GRIFFON_HOME\bin ao PATH

 

Criando uma aplicação Griffon

 

Após instalado, para criar uma aplicação Griffon e toda a sua estrutura basta digitar em um console o seguinte comando:

griffon create-app AplicacaoExemplo

O comando acima cria também um MVC padrão com o nome da aplicação. Que em nosso exemplo serão criados os aquivos  AplicacaoExemploModel, AplicacaoExemploView e AplicacaoExemploController em suas devidas pastas.

Essa aplicação consiste em apenas um formulário com um label escrito "Content Goes Here" e pode ser vista executando o seguinte comando:

griffon run-app

Agora vamos modificar o view criando um formulário sem ação alguma apenas para demostração.

  • Abra o arquivo AplicacaoExemplo\griffon-app\view\AplicacaoExemploView.groovy e substitua o seu código por:

  1. application(title:'AplicacaoExemplo',
  2. preferredSize: [400,400],
  3. pack:true,
  4. locationByPlatform:true,
  5. iconImage: imageIcon('/griffon-icon-48x48.png').image,
  6. iconImages: [imageIcon('/griffon-icon-48x48.png').image,
  7. imageIcon('/griffon-icon-32x32.png').image,
  8. imageIcon('/griffon-icon-16x16.png').image]
  9. ) {
  10. panel(id: 'enderecoDetailPanel', border: emptyBorder(3), opaque: false) {
  11. gridBagLayout()
  12. label('Bairro:', insets: [3, 3, 3, 3], anchor: WEST)
  13. textField(
  14. gridwidth: REMAINDER, insets: [3, 3, 3, 3], fill: HORIZONTAL, weightx: 1.0
  15. )
  16. label('Cidade:', insets: [3, 3, 3, 3], anchor: WEST)
  17. textField(
  18. gridwidth: REMAINDER, insets: [3, 3, 3, 3], fill: HORIZONTAL, weightx: 1.0
  19. )
  20. label('Logradouro:', insets: [3, 3, 3, 3], anchor: WEST)
  21. textField(
  22. gridwidth: REMAINDER, insets: [3, 3, 3, 3], fill: HORIZONTAL, weightx: 1.0
  23. )
  24. label('Estado:', insets: [3, 3, 3, 3], anchor: WEST)
  25. comboBox(
  26. gridwidth: REMAINDER, insets: [3, 3, 3, 3], fill: HORIZONTAL, weightx: 1.0
  27. )
  28. label('Complemento:', insets: [3, 3, 3, 3], anchor: WEST)
  29. textField(
  30. gridwidth: REMAINDER, insets: [3, 3, 3, 3], fill: HORIZONTAL, weightx: 1.0
  31. )
  32. label('Numero:', insets: [3, 3, 3, 3], anchor: WEST)
  33. textField(
  34. insets: [3, 3, 3, 3], fill: HORIZONTAL, weightx: 1.0
  35. )
  36. label('Cep:', insets: [3, 3, 3, 3], anchor: WEST)
  37. textField(
  38. gridwidth: REMAINDER, insets: [3, 3, 3, 3], fill: HORIZONTAL, weightx: 1.0
  39. )
  40. panel(opaque: false, gridwidth: REMAINDER) {
  41. button('Gravar')
  42. button('Excluir')
  43. }
  44. }
  45. }

 

Apos isso execute a aplicação novamente.

griffon run-app


Você verá a seguinte tela:


 

Para criar um novo MVC digite o seguinte código:

griffon create-mvc br.com.softag.adourado.griffon.Exemplo

 

Um outro exemplo pode ser visto no Quick Start na página do projeto.

 

Bem, este e apena um primeiro post sobre o Griffon de vários que já estão em desenvolvimento irei publicar-los em breve. Onde registrarei todas as minhas experiencias com o Griffon, desde a criação da primeira aplicação até a criação de um plugin para o Griffon.

 

Até o próximo post..




Comments:

Seria interessante se houvesse algum plugin para o NetBeans relacionado ao Griffon! Bom, vou estudar com mais calma esse framework assim que for possível, parece realmente bastante promissor. Obrigado pela dica! []'s Fred

Posted by Frederico on Julho 08, 2009 at 03:42 PM BRT #

Frederico
Já existe sim. Vou falar dele em um próximo post.
Mas para quem não quer esperar, veja aqui.
Flw.

Posted by Alessandro Dourado on Julho 08, 2009 at 04:08 PM BRT #

Oi Alessandro. Cheguei aqui através do Twitter, pq fui ver o marcador JavaFX e vi que você estava testando o JavaFX no seu Mobile. Chegando aqui me deparei com esse framework espetacular! Vou continuar lendo sobre. Olha, escrevo algumas coisas no JavaFree sobre JavaFX. Se você quiser ler depois e tiver algumas críticas e/ou sugestões será bem vindo! É sempre bom saber o que quem também está por dentro acha! http://www.javafree.org/noticia/4152/JavaFree-Ganha-Nova-Secao.html Até mais!

Posted by William Antônio on Julho 25, 2009 at 07:18 PM BRT #

Post a Comment:
  • HTML Syntax: Allowed