17 décembre 2008

beans binding dans gwt

La JSR 295 a été crée pour définir un mécanisme de binding en Java. L'idée simple et supportée par de nombreux langages est que deux attributs de deux beans soit "liés", ce qui permet par exemple à un widget graphique de toujours rester synchronisé avec l'objet modèle qu'il affiche, sans devoir écrire du code de mise à jour fastidieux et répétitif.

beansbinding est l'implémentation associée à cette spec et est utilisé dans NetBeans, ce qui prouve une bonne maturité de la techno. Seulement le projet semble "dormant", et la JSR associée n'a pas bougé depuis 2006. Pourtant le mot clé "bind" utilisé par JavaFX montre bien l'importance de ce concept pour les IHM

gwt-beans-binding est un portage de la JSR 295 (ou plutôt de ses concepts puisqu'elle n'est ni aboutie, ni publique) pour GWT. La mise en oeuvre est très simple. Pour lier deux textBox par exemple, il suffit de déclarer :

Binding.createAutoBinding( READ_WRITE,
    textBox, BeanProperty.create( "text" ),
    model, BeanProperty.create( "name" ) );

L'équivalent codé "à la main" nécessite de définit de nombreux PropertyChangeListeners (NB: quand seront-ils supportés en standard par GWT ?).

Pourquoi se focaliser sur ce projet, encore en version 0.2, alors que d'autres options comme Gwittir offrent des solutions comparables ? 
  • D'une part, parce que quelque soit l'évolution de cette JSR, elle sera toujours considérée si un nouveau groupe s'attaque à ce problème de data-binding en Java. 
  • D'autre part, parce qu'elle propose une API simple et focalisée sur cette unique tâche. 
  • Enfin, parceque le développeur de cette petite librairie a l'air très motivé !
Pour voir gwt-beans-binding à l'oeuvre : démo

1 commentaires:

Stepney john a dit…

batterie iphone 7 repaired four ipad for me today in two hours. Did a great job on all of them and charged a great price, especially for me not having to travel anywhere and sit around waiting on the repair. He traveled all the way to me and fixed everything on site. Plus his work comes with a warranty…