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