Author: jcouteau Date: 2010-04-28 16:32:37 +0200 (Wed, 28 Apr 2010) New Revision: 1857 Log: Add doc about data-binding small add on stylesheet use doc Added: trunk/src/site/rst/dataBinding.rst Modified: trunk/src/site/rst/useStylesheets.rst trunk/src/site/rst/useSwingObjects.rst trunk/src/site/site_fr.xml Added: trunk/src/site/rst/dataBinding.rst =================================================================== --- trunk/src/site/rst/dataBinding.rst (rev 0) +++ trunk/src/site/rst/dataBinding.rst 2010-04-28 14:32:37 UTC (rev 1857) @@ -0,0 +1,46 @@ +======================== +Utiliser le data-binding +======================== + +Dans un fichier JAXX, Les attributs peuvent prendre la valeur d'expressions Java +évaluées au runtime. Cela semble censé pour des expressions comme new +GridLayout(1, 0, 6, 0), mais que se passe-t-il quand vous utilisez une +expression dont la valeur change ? + +En fait, c'est ce que nous appelons data-binding. A la compilation, JAXX parse +les expressions Java pour trouver toutes leurs dépendances et ajouter les +listeners d'évènement pour détecter quand elles changent. Quand la valeur +de l'expression change, la nouvelle value est automatiquement changée. A peu +près toutes les propriétés de tous les tags peuvent être gérées de cette +manière. Par example:: + + <JTextField id='nameField'/> + + <JButton text='Button' + enabled='{nameField.getText().length() != 0}'/> + +Ainsi, le JButton ne sera activé que si un texte est rentré dans le JTextField. + +En utilisant ainsi le data-binding, vous pouvez aussi : + +* Afficher une vue détaillée des éléments sélectionnés d'une liste. +* Appliquer les préférences utilisateur comme une taille de police. +* Afficher automatiquement un curseur d'attente dès que l'application passe dans un état occupé. +* Mettre à jour la barre de titre pour refléter le fichier actif. +* Mettre à jour automatiquement une barre de progression. +* Pré-remplir des éléments de formulaire. +* ... + +Virtuellement, à chaque fois qu'un évènement change la valeur d'une propriété, +vous pouvez remplacer la gestion d'évènements Java par une expression de +data-binding plus simple et plus facile à lire. Bien sûr, JAXX n'est pas devin. +Non seulement la propriété à suivre doit lancer un évènement quand elle est +modifiée, mais JAXX doit savoir quel évènement est lancé pour ajouter le +listener approprié. Heureusement JAXX sait comment traquer presque toutes les +propriétés de tous les composants Swing, et peut automatiquement traquer les +propriétés attachées (les propriétés qui lancent des PropertyChangeEvent quand +elles sont modifiées), même sur des classes qu'il n'a jamais vu auparavant. + + +.. Trouver le site de l'ancien JAXX pour cette partie : The JAXX website lists +which properties can be tracked for each and every Swing component. \ No newline at end of file Modified: trunk/src/site/rst/useStylesheets.rst =================================================================== --- trunk/src/site/rst/useStylesheets.rst 2010-04-28 08:35:57 UTC (rev 1856) +++ trunk/src/site/rst/useStylesheets.rst 2010-04-28 14:32:37 UTC (rev 1857) @@ -58,6 +58,17 @@ | Pseudo-classe | :mouseover, :focused, ... | Sélectionne les composants dynamiquement selon leur état | +-----------------+---------------------------+-------------------------------------------------------------------------------+ +Expressions Java +---------------- + +Beaucoup de style Swing ne peut être déclaré qu'en utilisant des expressions +Java. Ces expressions Java peuvent être insérées dans des feuilles de style si +elles sont échappées par des accolades. Par exemple:: + + JSlider { + border: {BorderFactory.createLineBorder(Color.black, 1)}; + } + Combiner les sélecteurs ----------------------- Modified: trunk/src/site/rst/useSwingObjects.rst =================================================================== --- trunk/src/site/rst/useSwingObjects.rst 2010-04-28 08:35:57 UTC (rev 1856) +++ trunk/src/site/rst/useSwingObjects.rst 2010-04-28 14:32:37 UTC (rev 1857) @@ -33,4 +33,12 @@ appelé lors d'un appel à la méthode fireMyAction de l'objet Swing. Dans le cas de notre JButton, la méthode **org.my.package.MyApplication.validate()** sera appelée lorsqu'un évènement de type ActionEvent sera créé par la méthode -fireActionPerformed du JButton. \ No newline at end of file +fireActionPerformed du JButton. + +Code Java +--------- + +Dand l'example présenté en début de page, vous avez pu remarquer un appel à du +code java (org.my.package.MyApplication.validate()). Il est possible d'appeler +du code Java dans JAXX depuis un attribut d'un tag en échappant le code Java par +des accolades comme dans l'example précédent. \ No newline at end of file Modified: trunk/src/site/site_fr.xml =================================================================== --- trunk/src/site/site_fr.xml 2010-04-28 08:35:57 UTC (rev 1856) +++ trunk/src/site/site_fr.xml 2010-04-28 14:32:37 UTC (rev 1857) @@ -54,6 +54,7 @@ <item name="Fonctionalités de base"> <item name="Utiliser les objets Swing" href="useSwingObjects.html"/> <item name="Utiliser des styles" href="useStylesheets.html"/> + <item name="Le data-binding" href="dataBinding.html"/> </item> <item name="Migration JAXX 2.0" href="migration.html"/> </menu>