IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse Platform Discussion :

[Annonce] Pojo Bindable pour utiliser JFace Data Binding avec de simples Pojo


Sujet :

Eclipse Platform

  1. #1
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut [Annonce] Pojo Bindable pour utiliser JFace Data Binding avec de simples Pojo
    Bonjour,

    Je me permets de poster un message pour informer que j'ai créé Pojo Bindable qui permet d'utiliser JFace Data Binding avec BeansObservable avec de simple Pojo.

    Sans Pojo Bindable, si vous utilisez JFace Data Binding avec de simples Pojo, vous devez utiliser PojoObservables qui permet de binder un Pojo avec une widget SWT. Le binding s'effectue que dans un sens UI -> Model Pojo.

    Si vous souhaitez effectuer du binding dans les 2 sens UI <-> Model Pojo, vous devez coder le déclenchement des listener avec PropertyChangeSupport sur chacun des setter.

    Avec Pojo bindable vous codez un simple Pojo et celui-ci est transformé pour ajouter automatiquement les listeners et bénéficier des 2 sens UI <-> Model Pojo.

    Par exemple si vous écrivez ce Pojo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    package org.eclipse.core.examples.databinding.pojo.bindable.model;
     
    public class PojoPerson {
     
        String name = "HelloWorld";
     
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
    }
    Pojo Bindable transforme au runtime le bytecode de la classe Pojo en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    package org.eclipse.core.examples.databinding.pojo.bindable.model;
     
    import java.beans.PropertyChangeListener;
    import java.beans.PropertyChangeSupport;
     
    public class PojoPerson {
     
        private transient PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
                this);
     
        String name = "HelloWorld";
     
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            Object oldValue = getName();
            Object newValue = name;
            this.name = name;
            firePropertyChange("name", oldValue, newValue);
        }
     
        public void addPropertyChangeListener(String propertyName,
                PropertyChangeListener listener) {
            propertyChangeSupport.addPropertyChangeListener(propertyName,
                    listener);
        }
     
     
        public void removePropertyChangeListener(String propertyName,
                PropertyChangeListener listener) {
            propertyChangeSupport.removePropertyChangeListener(propertyName,
                    listener);
        }
     
        protected void firePropertyChange(String propertyName, Object oldValue,
                Object newValue) {
            propertyChangeSupport.firePropertyChange(propertyName, oldValue,
                    newValue);
        }
    }
    La transformation du bytecode s'effectue avec ASM et utilise :

    1. dans un contexte NON OSGi un Agent Java => http://wiki.eclipse.org/JFace_Data_B...ble_Java_Agent
    2. dans un contexte OSGi (uniquement avec Equinox) => http://wiki.eclipse.org/JFace_Data_B...ojoBindableSVN


    Angelo

  2. #2
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Bonjour Angelo,

    Super boulot félicitations...
    Pas de questions technique par MP, les forums sont là pour ça.

  3. #3
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonjour Gueritarish,

    Merci beaucoup de tes encouragements, ca fait plaisir. Si vous avez des questions sur Pojo Bindable, n'hesitez pas!

    Bonne journée

    Angelo

Discussions similaires

  1. JFace Data Binding/DOM
    Par pingoui dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 20/12/2012, 16h01
  2. [Débutant] Boucle pour déclaration du data binding. (pb avec adressof)
    Par Gualino dans le forum VB.NET
    Réponses: 5
    Dernier message: 13/09/2011, 11h23
  3. Probleme pour utiliser la commande "ppm" avec cygwin
    Par Premium dans le forum Modules
    Réponses: 2
    Dernier message: 31/10/2008, 13h39
  4. Utilisation de Data source avec struts
    Par menzlitsh dans le forum Struts 1
    Réponses: 5
    Dernier message: 26/06/2007, 11h06
  5. Réponses: 7
    Dernier message: 11/10/2006, 13h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo