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

GWT et Vaadin Java Discussion :

Synchroniser l'appel RPC dans GWT


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Par défaut Synchroniser l'appel RPC dans GWT
    Bonjour

    J’ai une application gwt , en cliquant sur un boutton « environment » je dois charger la page environnement , celle-ci contient des sections à gauche qui sont insérées à partir d’une liste récupérées à partir d’une fonction « getCategories »


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public EnvironmentPresenter (EnvironmentOrganeServiceAsync rpcService,HandlerManager eventBus ,AppConstants appConst  ){
     
                   this.eventBus = eventBus;
     		     this.rpcService=rpcService;
     		   this.appConst=appConst;
     		   categs=new ArrayList <categorie>();
     
    //cette fonction récupère les catégories et les met dans categs
      		     getCategories();
     
     		 displayEnvir=new EnvironmentAreaTest(appConst,categs);
     
     		}
    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
     
    private void getCategories(){
      		AsyncCallback <List<categorie>> callback = new AsyncCallback<List<categorie>>() {
    		      public void onFailure(Throwable caught) {
    		        // TODO: Do something with errors.
    		    	  Window.alert("Error fetching data");
     
    		      }
     
     
     
    			@Override
    			public void onSuccess(List<categorie> result) {
     
    				for(categorie cat:result){
    				categs.add(cat);}
     
       				}
    		};
     
    		// Make the call to the ListEmployes service.
    		 rpcService.getCategs(callback) ;
     
    	}


    Le problème c’est que malgré que l’appel de la fonction getCategories() soit avant l’appel du constructeur de EnvironmentAreaTest mais la fonction « onSuccess » de getCategories() est exécuté après celui-ci !!!
    Donc le constructeur est appelé avec une liste vide des catégories
    Est-ce quelqu’un pourrait me dire pourquoi ?
    et comment puis je faire pour executer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     displayEnvir=new EnvironmentAreaTest(appConst,categs);
    après avoir récupérer les catégories



    Merci

  2. #2
    Membre habitué
    Profil pro
    Consultant BPM
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant BPM
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut
    Ta méthode getCategories(); est asynchrone et donc ton displayEnvir=new EnvironmentAreaTest(appConst,categs); a de fortes chances de s'exécuter avant que le onSuccess/onFailure ne se termine.

    Est-ce que tu ne peux tout simplement pas mettre ta seconde méthode dans le onSuccess ?

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Par défaut
    Quand tu as des événements asynchrones et que tu souhaites à un moment, que l'un se déclenche après le traitement de l'autre, tu dois utiliser l'Event Bus et les signaux qu'il propage.

  4. #4
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Par défaut
    Bonjour,

    Merci pour vos réponses , enfaite oui je devais appeler ma deuxième méthode après le onsucess(), c'est ce que je fais maintenant ,

    Bonne journée

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 230
    Par défaut
    Je rebondis sur ce post de plawyx
    Quand tu as des événements asynchrones et que tu souhaites à un moment, que l'un se déclenche après le traitement de l'autre, tu dois utiliser l'Event Bus et les signaux qu'il propage.
    21/01/2013 08h46
    tu pourrais détailler un peu plus ton propos, je connais le bus d'Event que GWT propose mais je ne sais pas si je saisis bien ta façon de faire.
    Peux-tu détailler un peu plus, par exemple??
    merci d'avance

  6. #6
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Par défaut
    Bonsoir

    enfaite j'utilise la fonction de getCategs pour afficher ses éléments dans une arbre ,et je l'ai fait directement dans la fonction onsucces et ça marche très bien

    maintenant, je voulais pas utiliser get event car ça risque d'augmenter le temps d’exécution.

    merci à vous

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

Discussions similaires

  1. Erreur lors d'un appel RPC en utilisant gwt-sl
    Par riadhhwajdii dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 23/02/2011, 16h14
  2. Apllication GWT et appel RPC
    Par passion_info dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 21/11/2010, 19h18
  3. Erreur GWT Appel RPC
    Par miya dans le forum GWT et Vaadin
    Réponses: 16
    Dernier message: 11/03/2010, 15h49
  4. Réponses: 6
    Dernier message: 30/12/2008, 19h44
  5. comment faire un appel RPC dans Command
    Par groupe dans le forum GWT et Vaadin
    Réponses: 7
    Dernier message: 27/06/2008, 11h36

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