j'essaye d'utiliser swing worker pour rendre mon interface plus fluide. Mais j'ai du mal à l'adapter avec le mvc .
je m'explique :
dans la méthode doInBackground() je fais le traitement qui consiste à aller à une base de données et récupérer les lignes d'une table pour les afficher par la suite dans une JTable . Étant donné que la table peut avoir plusieurs lignes, je met la méthode publish() aprés chaque récupération de ligne .
avec tous ca c'est plus fluide , mais le MVC n'est plus respecté , et je me trouve avec des ligne d'accès à la base dans mes classe d'interface graphique.
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 @Override protected ArrayList<TSimulator> doInBackground() throws Exception { return getSimulator(); } /** * TODO * c'est interdi de la mettre ici. l accées à la base doit se faire via un controleur */ private ArrayList<TSimulator> getSimulator(){ ArrayList<TSimulator> al_simulator = new ArrayList<TSimulator>(); try { Session session = HibernateUtil2.getSession(); session.beginTransaction(); Query q = (Query) session.getNamedQuery("TSimulator.All"); for (int i = 0; i < q.list().size(); i++) { TSimulator ts = (TSimulator)q.list().get(i); al_simulator.add(ts); publish(ts); } session.getTransaction().commit(); session.getSessionFactory().close(); } catch (HibernateException e) { e.printStackTrace(); } return al_simulator; }
il y a t'il un moyen de faire les deux , respecter le MVC ou du moins la séparation des couches et utiliser swing worker .?????????????????
faire une methode, dans le model, pour récupérer les données et que après chaque ligne appelle appelle une méthode dans swing worker qui contient le publish.
appeler la méthode depuis doInBackground().
mais je trouve kil y a trop d'inter connexion .??????????????
ou peut être mettre la methode qui appelle publish dans la methode update du pattern observervateur . ????????????
ou la laisser comme ca ????????????????????????
bref trop de pattern tue les pattern :p :p :p
Partager