Bonjour à tous,

je me trouve face à un soucis auquel j'ai bien une idée pour le résoudre, mais j'aimerai votre avis.

Supposons un DAO avec une méthode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
List<Individu> findAll();
Qui se connecte à une BDD, et peuple la liste à partir d'une table.

Puis une couche BR (Business Rules), avec une méthode:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
List<Individu> findAllIndividu();
Qui retourne simplement la liste retourné par la méthode findAll du DAO précédent.

Et enfin, une fenêtre (JForm) affichant dans un tableau (JTable) le résultat de la méthode findAllIndividu du BR.
Jusque là, pas de grande difficulté.
Maintenant, j'aimerai affiché en bas de l'écran l'état d'avancement du chargement de la liste, avec un message de ce style:

x individus chargé(s) - Avec x variant de 0 au nombre d'individu dans la liste, dynamiquement.

Comment feriez-vous cela en gardant une bonne séparation des couches ?
Car dans mon cas, c'est la couche DAO qui impacte sur ce que la Vue affiche !

La solution à laquelle j'ai pensé, c'est d'utiliser les Listeners, et créer par exemple un CountListener - ayant une méthode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
void countUpdated(int x);
implémenté par le Controler, qui a chaque appel de cette méthode mettra le Model à jour.
Or, il faudra faire cela dans la couche DAO, pour prévenir la couche BR. Puis le faire dans la couche BR, pour enfin prévenir le controler... Ca fait pas mal de boulot pour "pas grand chose" !?

L'autre idée que j'ai, est de passé le Model à la couche BR, qui le repasse à la couche DAO, qui elle met à jour le nombre de donnée chargé à chaque itération directement dans le Model. Mais maintenant, la couche DAO fait autre chose qu'accéder aux données :'(

Qu'en pensez vous ?