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

Java Discussion :

Gestion des propriétés


Sujet :

Java

  1. #1
    Membre éclairé

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Par défaut Gestion des propriétés
    En attendant les améliorations de Java7... Comment gérez-vous les propriétés sur vos objets et en particulier la possibilité d'écouter les changements de valeurs des propriétés ?

    Merci pour vos réponses !

    Toine

  2. #2
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    JGoodies Bindings.

  3. #3
    Membre éclairé

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Par défaut
    Je ne connaissais pas, je vais voir ça !

    Anthony

  4. #4
    Membre éclairé

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Par défaut Hmmm....
    En fait, je ne suis pas sûr que ça réponde à mes besoins... En fait, pour être plus concret, je vous éviter d'alourdir le code de mes beans à cause de la gestion des évènements.

    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
     
    public class MyBean {
     // Note you don't HAVE to use this class - you can use
     // java.beans.PropertyChangeSupport if you want.
     private ExtendedPropertyChangeSupport changeSupport = new ExtendedPropertyChangeSupport(
       this);
     
     private boolean booleanValue;
     private String stringValue;
     
     public boolean getBooleanValue() {
      return booleanValue;
     }
     
     public void setBooleanValue(boolean newValue) {
      System.out.println("Boolean value set: " +newValue);
      boolean oldValue = booleanValue;
      booleanValue = newValue;
      changeSupport.firePropertyChange("booleanValue", oldValue, newValue);
     }
     
     public void addPropertyChangeListener(PropertyChangeListener x) {
      changeSupport.addPropertyChangeListener(x);
     }
     
     public void removePropertyChangeListener(PropertyChangeListener x) {
      changeSupport.removePropertyChangeListener(x);
     }
     
     public String getStringValue() {
      return stringValue;
     }
     
     public void setStringValue(String newValue) {
      System.out.println("String value set: "+  newValue);
      String oldValue = stringValue;
      this.stringValue = newValue;
      changeSupport.firePropertyChange("stringValue", oldValue, newValue);
     }
    }

  5. #5
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Citation Envoyé par onlytoine Voir le message
    je vous éviter d'alourdir le code de mes beans à cause de la gestion des évènements.
    Tu seras bien obligé d'allourdir si tu veux gérer les événements car il faut bien un moyen d'envoyer les événements.
    Le code que tu fournis c'est ce que fais JGoodies Bindings via la classe Model.

  6. #6
    Membre éclairé

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Par défaut
    Coucou,

    Oui j'ai récupérer le code d'un article traitant de JGoodies Bindings, mais il correspond à un Bean classique avec gestion d'évènements.

    JGoodies Bindings n'intervient pas à ce niveau si j'ai bien compris ? Mais plutôt après non ?

  7. #7
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Citation Envoyé par onlytoine Voir le message
    JGoodies Bindings n'intervient pas à ce niveau si j'ai bien compris ? Mais plutôt après non ?
    A tous les niveaux. Comme je l'ai dis, la classe Model permet de créer des bean fournissant le PropertyChangeSupport et pouvant gérer les evt de modification de leurs propriétés.

  8. #8
    Membre éclairé

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Par défaut
    Ok, j'ai regardé le code de la classe Model... Elle aide effectivement un peu un proposant quelques méthodes sympa sans révolutionner le principe.

    Connaissez-vous le projet "Attributes" d'Apache Commons ?

  9. #9
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Ta solution est intrusive. Dommage quand on a déjà établi un modèle métier qu'on veut indépendant de toute dépendance.

    Le mieux est qd même de recourir à un aspect enrichissant la cible et produisant les évènements sur changement. On peut en implémentation s'appuyer sur le mécanisme JGoodies.

  10. #10
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Citation Envoyé par onlytoine Voir le message
    Ok, j'ai regardé le code de la classe Model... Elle aide effectivement un peu un proposant quelques méthodes sympa sans révolutionner le principe.

    Connaissez-vous le projet "Attributes" d'Apache Commons ?
    Ca paraît vieux jeux avec l'introduction des annotations...

  11. #11
    Membre éclairé

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Par défaut
    Tu as déjà implémenté ou aperçu un mécanisme de gestion d'évènements géré par un aspect?

    J'ai un peu peur des performances de ce genre de solution ?

    Effectivement, Attributes peut paraitre vieux jeu mais il propose des choses intéresantes qui ne se trouvent pas encore en standard (ça devrait venir avec Java 7 et une gestion poussée j'espère des propriétés)

  12. #12
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Pour les perfs ca reste très performant, puisque à l'issue du processus de tissage tu te retrouve avec un byte code quasi-similaire à celui que tu aurais produit toi même en écrivant le mécanisme évènementiel dans ton source.

    C'est quelque chose que j'ai déjà mis en oeuvre, avec un tissage dynamique (ltw) qui coute, il est vrai, cher au démarrage. Mais rien ne t'interdit de faire le tissage à la compilation. Le très gros intérêt est que tu n'écrit qu'un unique aspect que tu tisse ensuite avec les classes métiers de ton choix.

  13. #13
    Membre éclairé

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Par défaut
    Ok c'est une approche intéressante, je regarderai ça

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/02/2012, 20h39
  2. TABLE - Gestion des propriétés
    Par benejepo dans le forum VBA Access
    Réponses: 3
    Dernier message: 14/08/2007, 07h57
  3. Réponses: 8
    Dernier message: 14/12/2006, 12h32
  4. Réponses: 4
    Dernier message: 04/07/2002, 13h31
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 15h11

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