Subversion Repositories eFlore/Applications.coel

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
208 jp_milcent 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;
7
import com.extjs.gxt.ui.client.widget.Info;
8
import com.google.gwt.core.client.GWT;
9
import com.google.gwt.http.client.Request;
10
import com.google.gwt.http.client.RequestBuilder;
11
import com.google.gwt.http.client.RequestCallback;
12
import com.google.gwt.http.client.RequestException;
13
import com.google.gwt.http.client.Response;
14
import com.google.gwt.json.client.JSONArray;
15
import com.google.gwt.json.client.JSONObject;
16
import com.google.gwt.json.client.JSONParser;
17
import com.google.gwt.json.client.JSONValue;
18
 
19
public class StructureAPersonneAsyncDao {
20
 
21
	public void selectionner(final Rafraichissable r, String idUtilisateur, final String idStructure, final String idRole) {
22
		// Ajout des paramètres et données à selectionner dans l'URL
23
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
24
			"CoelStructureAPersonne" +
25
			(idStructure == null ? "" : "/"+idStructure) +
26
			(idRole == null ? "" : "/"+idRole) +
27
			"";
28
 
29
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url);
30
		try {
31
			rb.sendRequest(null, new RequestCallback() {
32
 
33
				public void onError(Request request, Throwable exception) {
34
					// Gestion des exceptions déclenchées par l'exécution de la requête
35
					GWT.log("Erreur à l'exécution du service CoelStructureAPersonne (selection)", exception);
36
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
37
				}
38
 
39
				public void onErrorHTTP(Request request, Response reponse) {
40
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
41
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
42
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
43
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
44
				}
45
 
46
				public void onResponseReceived(Request request, Response response) {
47
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP
48
					if (response.getStatusCode() != 200) {
49
						onErrorHTTP(request, response);
50
					} else {
51
						if (response.getText().length() != 0 && response.getText() != null) {
52
							final JSONValue responseValue = JSONParser.parse(response.getText());
53
 
54
							// Si la requête est un succès, reception d'un tableau
55
							if (responseValue.isArray() != null) {
56
								final JSONArray reponse = responseValue.isArray();
57
								// Transformation du tableau JSON réponse en ListeInstitution
58
								Information info = new Information("liste_structure_a_personne");
59
								StructureAPersonneListe personnel = new StructureAPersonneListe(reponse);
60
								info.setDonnee(0, personnel);
61
								// et on met à jour le demandeur des données
62
								r.rafraichir(info);
63
							} else {
64
								GWT.log(url+"\n\tLa réponse n'est pas un talbeau JSON et vaut : "+responseValue.toString(), null);
65
							}
66
						} else {
67
							if (idStructure == null) {
68
								// Dans le cas, où nous demandons toutes les relations Structure à Personne et qu'il n'y en a pas, nous retournons un message d'information
69
								Information info = new Information("liste_structure_a_personne");
70
								info.setMessage("Aucun personnel");
71
								r.rafraichir(info);
72
							} else {
73
								GWT.log(url, null);
74
								if (response.getText().length() == 0) {
75
									GWT.log("\tLa réponse a une taille de 0", null);
76
								}
77
								if (response.getText() == null) {
78
									GWT.log("\tLa réponse vaul null", null);
79
								}
80
							}
81
						}
82
					}
83
				}
84
			});
85
		} catch (RequestException e) {
86
			e.printStackTrace();
87
		}
88
	}
89
}