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

Langage Java Discussion :

[Conception] Modele-Vue et Ecouteur


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut [Conception] Modele-Vue et Ecouteur
    bonjour,

    je suis en train de structurer le "noyau" d'un logiciel, et j'en arrive au moment de gerer les divers evenements.


    Le modele :

    une classe (Singleton) Kernel composée de plusieurs classe MapContext composé de plusieurs Pack composé de ...etc...
    bref ca prend la forme d'un arbre ou chaque noeud et feuille peut générer des evenements.

    j'ai des classes dérivées de JXTreeTable et des classes de représentation a qui j'ai mit un ecouteur sur le noyau (sur la classe Kernel).
    Pour le moment la classe Kernel recupere tout les evenements des noeuds enfants et ne genere qu'un seul evenement KernelUpdated().

    Je me demande comment faire pour cibler plus precisement l'evenement de maniere a ne pas regenerer entierement les objets a l'ecoute du noyau.



    ma solution serait de generer un evenement fournissant le "chemin" de l'objet source de l'evenement. mais je risque d'avoir tres souvent des evenements et il faudrat a chaque fois que chaque object a l'ecoute du noyau retrouve dans son propre modele l'element pour ne modifier que lui.


    Auriez vous des idées?

  2. #2
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    un element de reponse :
    Pourquoi ne pas placer un ecouteur sur chaques noeud de ton arbre.
    Le pere se met a jour si le fils a changé et automatiquement les updates remondent jusqu'a la racine.

  3. #3
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    c'est ce qui se passe pour la partie modele. (Kernel>MapContext...)
    et les objets qui ecoutent le Kernel recuperent par une seule methode KernelUdated s'il y a eu un evenement.


    mais le soucis est plutot les objects qui ecoutent et l'evenement en lui meme.
    Comment faire pour mieux gerer l'evenement de facon a ne pas regénérer le composant entierement.

  4. #4
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    mais le soucis est plutot les objects qui ecoutent et l'evenement en lui meme.
    Comment faire pour mieux gerer l'evenement de facon a ne pas regénérer le composant entierement.
    Tu veux dire comment ne modifier que certaines parties du composant quand seulement certaiens datas sont modifiés ?
    Peut etre en creant differents evenement pour savoir quels sont les données modifiées ....

  5. #5
    Membre expérimenté Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Par défaut
    une solution et une remarque :

    Pourquoi n'as tu pas de controleur pour gérer tes évènements, est-ce un choix délibéré ou la volonté de 'faire simple' ? Crois-moi avec un contrôleur , on gagne en structuration et donc en clarté

    Voici la solution que j'utilise le plus souvent :

    Il faut que ton modèle fournisse, avec le message KernelUpdated, l'adresse ou la position du noeud à mettre à jour. Ainsi, quand ta vue récupère la notification de mise à jour, elle sait quelle partie de l'arborescence mettre à jour.
    Au final, tu peux avoir une classe 'MiseAJour' qui contient plusieurs variable de mise à jour :
    la vue appelante, position du noeud, nouvel Objet à insérer...
    Et a chaque demande de mise à jour, tu construis une instance de cette classe avec tous les paramètres nécéssaire.

    hope it helps !

  6. #6
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    la proposition me plait bien, je vais voir si je peux l'appliquer.

    merci

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

Discussions similaires

  1. Projet sudoku (Conception Modele-Vue-Controleur)
    Par Dimitri95 dans le forum GTK+
    Réponses: 0
    Dernier message: 04/04/2015, 13h46
  2. Réponses: 37
    Dernier message: 10/12/2008, 18h58
  3. Qt : MVC Model & Vue : Sudoku
    Par Zenol dans le forum Débuter
    Réponses: 3
    Dernier message: 19/07/2008, 19h24
  4. Modele vue controleur
    Par horkets dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 07/08/2007, 12h05
  5. [Conception] MVC - Déclarer l'écouteur d'evenement dans la vue.
    Par etiennegaloup dans le forum Général Java
    Réponses: 9
    Dernier message: 04/01/2006, 18h50

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