Subversion Repositories eFlore/Applications.coel

Rev

Rev 113 | Rev 292 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
69 jpm 1
package org.tela_botanica.client.modeles;
2
 
3
import org.tela_botanica.client.RegistreId;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
5
 
6
import com.extjs.gxt.ui.client.Registry;
91 jpm 7
import com.google.gwt.core.client.GWT;
69 jpm 8
import com.google.gwt.http.client.Request;
9
import com.google.gwt.http.client.RequestBuilder;
10
import com.google.gwt.http.client.RequestCallback;
11
import com.google.gwt.http.client.RequestException;
12
import com.google.gwt.http.client.Response;
13
import com.google.gwt.json.client.JSONArray;
91 jpm 14
import com.google.gwt.json.client.JSONObject;
69 jpm 15
import com.google.gwt.json.client.JSONParser;
91 jpm 16
import com.google.gwt.json.client.JSONString;
69 jpm 17
import com.google.gwt.json.client.JSONValue;
18
 
19
public class ValeurListeAsyncDao {
268 jp_milcent 20
	private static final String SERVICE_NOM = "CoelValeurListe";
69 jpm 21
 
268 jp_milcent 22
	private Rafraichissable vue = null;
69 jpm 23
 
268 jp_milcent 24
	public ValeurListeAsyncDao() {
25
		// TODO Auto-generated constructor stub
69 jpm 26
	}
27
 
268 jp_milcent 28
	public ValeurListeAsyncDao(Rafraichissable vueARafraichir) {
29
		vue = vueARafraichir;
30
	}
31
 
91 jpm 32
	public void obtenirListe(Integer cle) {
33
		// Demande de toutes les structures
69 jpm 34
    	String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
268 jp_milcent 35
    	url = url+SERVICE_NOM+"/id/"+cle.toString();
91 jpm 36
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url);
113 jpm 37
		//GWT.log(url, null);
69 jpm 38
		try {
39
			rb.sendRequest(null, new RequestCallback() {
40
 
41
				public void onError(Request request, Throwable exception) {
42
					// TODO Auto-generated method stub
43
 
44
				}
45
 
46
				public void onResponseReceived(Request request, Response response) {
91 jpm 47
 
69 jpm 48
					final JSONValue responseValue = JSONParser.parse(response.getText());
49
 
50
					// Si la requête est un succès, reception d'un tableau
91 jpm 51
					if (responseValue.isObject() != null) {
52
						try {
53
							final JSONObject reponse = responseValue.isObject();
54
							JSONString listeId = reponse.get("id").isString();
55
							JSONArray listeValeurs = reponse.get("valeurs").isArray();
56
							// Transformation du tableau JSON réponse en Liste
57
							ValeurListe liste = new ValeurListe(listeId, listeValeurs);
58
							// et on met à jour le demandeur des données
268 jp_milcent 59
							vue.rafraichir(liste);
91 jpm 60
						} catch (NullPointerException e) {
61
							e.printStackTrace();
62
						}
69 jpm 63
					}
64
 
65
				}
66
			});
67
		} catch (RequestException e) {
68
			e.printStackTrace();
69
		}
70
	}
71
}