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

Interfaces Graphiques en Java Discussion :

[JGoodies ] Utiliser un objet hérité pour le binding


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 46
    Points
    46
    Par défaut [JGoodies ] Utiliser un objet hérité pour le binding
    Bonjour,

    J'utilise JGoodies pour faire du binding de mes données vers mon IHM et cela fonctionne bien, mais j'essaye maintenant de réaliser quelque chose qui ne semble pas fonctionner, explication :

    J'ai un panel 'MesDonneesPanel' dans lequel je place un sous panel qui sera soit :
    'MesDonneesPanelToto' ou 'MesDonneesPanelTiti' en fonction d'un choix utilsateur précédent.

    Le panel 'MesDonneesPanel' est bindé avec un objet 'MesDonneesModel' ayant une variable 'MesDonnees mesDonnees'

    Puis j'ai des classes héritant de 'MesDonnees' comme 'MesDonneesTiti' et 'MesDonneesToto'.
    J'essaye d'avoir un model assez générique pour pouvoir instancier mon model avec soit 'MesDonneesToto' ou 'MesDonneesTiti', de même pour mon panel, et ainsi bindé les données specifiques de ses objets aux champs spécifiques de ces panels.

    Seulement, si je declare ma variable comme étant de type 'MesDonnees', JGoodies n'arrive pas à acceder aux champs spécifique de l'objet instancié comme 'MesDonneesToto', ce qu'il arrive à faire correctement si je le declare directement de type 'MesDonneesToto', mais ce qui me fait perdre l'utilisation de l'heritage sur mon objet à binder :/

    J'espere être assez clair, comment faire pour avoir un binding assez pseudo générique utilsant l'instance de l'objet à binder et non pas le type de déclaration ?

  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
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par mush_H Voir le message
    J'espere être assez clair, comment faire pour avoir un binding assez pseudo générique utilsant l'instance de l'objet à binder et non pas le type de déclaration ?
    Le binding se fait bien sur l'instance de l'objet.
    Le problème c'est que quand tu files un objet titi et que tu vas quand même rechercher des propriétés de toto (même si tu ne les utilises pas), ça va planter car il ne les connait pas.

    Tu es obligé de faire du code type "if obj instanceof Titi" pour construire tes composants spécifiques.
    A moins que ton cas puisse être géré par réflexion.
    Envisager éventuellement d'avoir ton panel bindant les propriétés du super objet et d'avoir des sous panels spécifiques dans un cardlayout pour tes prop spécifiques.

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    Merci pour ta réponse. En fait j'ai deja des panels par CardLayout spécifique à toto et titi. Et lorsque j'en prend un je ne vais pas chercher des infos de l'autre. Mon problème ce pose sur le fait que toto et titi herite tout els deux de tata, et que je declare donc cet objet de type tata (même si derriere ce sera un titi ou un toto).

    Je me suis rendu compte que le problème vient d'une encapsulation, en effet l'objet que je bind en réalité est un objet dans lequel j'ai un objet tata en composition, et là ou jgoodies gere bien l'heritage si je bind directement tata, il n'y arrive plus si je bind mon encapsulateur en precisant dans le binding tata.maVriable au lieu de directement maVariable.

    Par contre la composition sans l'heritage (ie : titi.maVariable ou toto.Mavariable en binding avec l'encapsuleur) ça marche bien...

    Je suis don un peu embetter du fait que j'aimerais utiliser l'heritage sur cet objet et binder sur l'encapsuleur pour avoir accès à d'autres données..

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/10/2006, 18h55
  2. Réponses: 2
    Dernier message: 30/05/2006, 15h26
  3. [PDO] Utiliser l'Objet de PHP pour gérer sa base de données
    Par Viau dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/01/2006, 18h16
  4. Utilisation d'objets pour imprimer
    Par alainvh dans le forum Composants VCL
    Réponses: 3
    Dernier message: 02/12/2004, 10h25
  5. utilisation d'objets ADO pour CMS sur POSTGRESQL7.3.2
    Par turbok dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 10/10/2003, 09h29

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