Artigo Java Magazine 70 - Swing + Beans Binding

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (2)  (0)

Descubra como a implementação da JSR-295 (Beans Binding) e seu suporte no NetBeans revolucionam a produtividade no desenvolvimento de aplicações desktop.

[lead]De que se trata o artigo:

Uso da biblioteca Beans Binding para implementação do padrão Presentation Model em interfaces Swing para aplicações Java e como o uso desta técnica permite construir interfaces desktop para sistemas Java de forma simples e produtiva.

Para que serve:

Fornecer um meio para implementar clientes desktop ricos capazes de intercambiar dados automaticamente entre a interface e o modelo de negócio. Permite também controlar o comportamento de uma tela apenas trabalhando com um modelo de apresentação simples e reutilizável, sem a necessidade de manipulação direta de componentes gráficos.

Em que situação o tema é útil:

Ao analisar as alternativas de interfaces para clientes ricos de sistemas corporativos, pois é importante considerar os benefícios da utilização de interfaces Swing e as tecnologias que facilitam o desenvolvimento e implantação como o Beans Binding e o Java Webstart.

Swing + Beans Binding:

O binding (ou vinculação) de propriedades de objetos simples a propriedades de componentes gráficos do Swing permite construir interfaces que trocam dados automaticamente entre a interface gráfica e as entidades de um sistema. Também permite implementar de forma simples o padrão Presentation Model, através do qual é possível controlar o comportamento das telas apenas trabalhando com um modelo de apresentação simples e reutilizável, sem a necessidade de manipulação direta de componentes gráficos. [/lead]

Este artigo apresenta a API de Beans Binding e como seu uso é integrado com o Swing GUI Builder do NetBeans 6.5 (anteriormente conhecido como Matisse). Veremos como a API de binding consegue sincronizar as propriedades de diferentes objetos e particularmente de componentes gráficos do Swing. Finalmente, será explicado como esta API pode ser usada como ferramenta facilitadora para implementação do padrão de projeto chamado de Presentation Model.

[subtitulo]Java no desktop? [/subtitulo]

Esta pergunta talvez ainda seja feita pelos desenvolvedores mais experientes. Na realidade, quem conviveu com os primeiros anos do Java tem todo o direito de questionar a viabilidade deste tipo de aplicação. O Swing trouxe componentes gráficos elegantes baseados num modelo MVC, mas não tão simples de trabalhar. Os gerenciadores de layouts, apesar de eficientes, não tinham a agilidade de ambientes WYSIWYG para prototipação rápida de telas.

Porém, com o tempo a situação mudou bastante. A plataforma e as IDEs evoluíram. Hoje, com as novas ferramentas e com o Java Webstart para distribuição automatizada, uma interface desktop para aplicações corporativas é uma alternativa às interfaces Web não apenas viável, mas também muito produtiva e eficiente.

O recente lançamento JavaFX é o último avanço nesta escalada, mas ainda é uma tecnologia em processo de amadurecimento que aos poucos vai ganhar suporte mais completo das IDEs. Uma das features interessantes da JavaFX foi o suporte nativo ao binding de propriedades (ou “vinculação”, em tradução livre)[1]. Porém, fora da JavaFX também é possível implementar a vinculação de propriedades entre dois objetos, e esta é uma das ferramentas mais interessantes para acelerar o desenvolvimento de aplicações desktop. Neste artigo vamos demonstrar como a biblioteca BeansBinding implementa esse processo e como utilizá-lo de forma produtiva através do suporte oferecido pelo NetBeans 6.5.

[subtitulo]Beans Binding[/subtitulo]

Manter duas propriedades de dois objetos em sincronia é mais complicado do que parece, principalmente se isso deve ser encapsulado em uma API com baixo nível de intrusão no código de negócio.

De forma rápida e crua, é possível vincular a propriedade de dois objetos como na forma usada na Listagem 1. Após este trecho de código, o texto “Zé” é impresso. Enquanto o binding estiver ativo, qualquer alteração na propriedade nome do objeto c1 é automaticamente refletida em c2 (e vice-versa). A API Beans Binding é baseada nas especificações de propriedades JavaBeans e na capacidade de instalar escutadores de estados nos objetos a serem sincronizados.

Listagem 1. Uso manual do BeansBinding

  Contato c1 = new Contato();
  Contato c2 = new Contato();
  Binding binding = Bindings.bind(UpdateStrategy.READ_WRITE, c1,
  BeanPropery.create("nome"), c2, BeanProperty.create("nome"));
  Binding.bind();
  c1.setNome("Zé");
  System.out.println(c2.getNome());

Porém, esta automação exige que a classe Contato respeite o contrato de definição de propriedades e publicação de eventos da especificação JavaBeans. De forma mais objetiva, o Beans Binding exige que a classe implemente os padrões setters e getters de nomeação para encapsular propriedades, e a disponibilização dos métodos addPropertyChangeListener() e removePropertyChangeListener(). Essas exigências podem ser observadas na "

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?