Bonjour,
Je débute avec le modèle MVC et rencontre un obstacle que je vous décris :
Avant tout, voici très brievement le but de l'application : gèrer une liste de données au niveau modèle. Au niveau de la vue, l'utilisateur peut ajouter des données à cette liste, et ajouter des filtres qui présenteront dans des onglets differents les informations filtrées de la liste du model satisfaisant le filtre ajouté.
J'ai, au niveau de ma vue, la possibilité d'instancier des feuilles d'un JTabbedPane via un bouton B1 qui grossierement appel la méthode :
JTabbedPane.addTab(String,Component)
Ces objets implémentent l'interface du model pour recevoir les évenements du model et mettre à jour l'affichage de chaque feuille de JTabbedPane. (il s'agit d'une liste de String....bref)
Lors d'un clique sur B1, un évenement est envoyé au model (çà passe par le controleur mais ca n'a pas d'importance ) - qui, à sa réception, met à jour la base de données, ajoute l'objet source à la liste des listenners du model, (l'objet source étant la nouvelle feuille du JTabbedPane instanciée) puis, renvoie un évenement aux objets de la vue écoutant le modele pour afficher dans cette feuille de JTabbedPane les donnees envoyées (filtrees) par le model.
Mon problème est le suivant:
Si je clique n fois de suite sur le bouton, j'instancie ainsi n feuilles de JTabbedPane differentes, et donc n objets different qui ecoutent le même model.
Or, sur chaque feuille, les données sont censées être potentiellement differentes (filtres differents) mais envoyées à partir de la même base de donnnées dans les évenement.
Ma question est la suivante :
Quel moyen orienté objet existe-t'il pour que chaque feuillle de mon JTabbedPane traite ou non évenement, destinés à TOUS les objets écoutant le modele?
Autrement dit, si je veux ajouter un string à mon model, et que cet ajout ne provoque qu'un changement uniquement dans certaines feuilles de la vue et pas toutes, comment dois-je m'y prendre?
J'avais l'idée de mettre dans l'évement envoyé par modèle à la vue la référence d'une feuille, pour que chaque feuille, écoutant le model, verifie ou non si l'evenement lui ai bien destiné pour ajouter ou non l'information.
Mais en fait cela ne marche que si l'evenement est destiné à un seul objet et ici, plusieurs feuilles peuvent théoriquement prendre en compte ou pas l'evenement...toutes mes feuilles écoutent le meme model et donc recoivent toutes les evenements...
j'espère que mon problème n'est pas trop flou
Je cherche, je cherche, et vous tiens au courant de mon avancement...
Merci à ceux qui se penchent sur mon problème
Baptiste
Partager