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

EDT/SwingWorker Java Discussion :

swingWorker et le MVC


Sujet :

EDT/SwingWorker Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Par défaut swingWorker et le MVC
    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 .
    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;
    		}
    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.

    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

  2. #2
    Membre expérimenté Avatar de Torg666
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 230
    Par défaut
    Pourquoi tu mets tout simplement pas ta fonction getSimulator() dans ton controleur et tu l'appelle en faisant (en prenant tonControleur comme instance de ton controleur) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    protected ArrayList<TSimulator> doInBackground() throws Exception {
    			return tonControleur.getSimulator();
    		}
    Le MVC, pour ce que j'en ai compris c'est surtout pour ranger proprement les different traitement, rien ne t'empeche d'appeller un fonction de ton controleur dans ton ihm.
    De plus tu as peut etre deja des references a ta session dans ton controleur, ce qui te permettra d'eviter de les recreer par exemple... enfin je sais pas comment fonction hibernate.

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

Discussions similaires

  1. MVC : SwingWorker dans le Contrôleur ?
    Par maccormick dans le forum EDT/SwingWorker
    Réponses: 4
    Dernier message: 20/11/2013, 10h02
  2. swingWorker avec MVC, problème organisation
    Par marion5515 dans le forum EDT/SwingWorker
    Réponses: 0
    Dernier message: 08/11/2009, 20h53
  3. Réponses: 4
    Dernier message: 24/02/2009, 13h06
  4. [MVC] Différences entre les framework MVC push et pull ?
    Par XavierZERO dans le forum Frameworks Web
    Réponses: 5
    Dernier message: 15/01/2004, 14h12
  5. Classe abstraite / MVC
    Par caramel dans le forum MVC
    Réponses: 5
    Dernier message: 01/04/2003, 10h27

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