Subversion Repositories eFlore/Applications.coel

Rev

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

Rev Author Line No. Line
126 gduche 1
package org.tela_botanica.client.modeles;
351 gduche 2
 
432 gduche 3
import java.util.HashMap;
4
 
317 gduche 5
import org.tela_botanica.client.Mediateur;
126 gduche 6
import org.tela_botanica.client.RegistreId;
7
import org.tela_botanica.client.interfaces.Rafraichissable;
146 gduche 8
import org.tela_botanica.client.util.UtilDAO;
126 gduche 9
import com.extjs.gxt.ui.client.Registry;
220 aurelien 10
import com.extjs.gxt.ui.client.widget.Info;
126 gduche 11
import com.google.gwt.core.client.GWT;
12
import com.google.gwt.http.client.Request;
13
import com.google.gwt.http.client.RequestBuilder;
14
import com.google.gwt.http.client.RequestCallback;
15
import com.google.gwt.http.client.RequestException;
16
import com.google.gwt.http.client.Response;
17
import com.google.gwt.json.client.JSONArray;
18
import com.google.gwt.json.client.JSONParser;
19
import com.google.gwt.json.client.JSONValue;
20
 
21
 
268 jp_milcent 22
public class PersonneAsyncDao {
23
	private static final String SERVICE_NOM = "CoelPersonne";
126 gduche 24
 
277 jp_milcent 25
	private Rafraichissable vueARafraichir = null;
126 gduche 26
 
277 jp_milcent 27
	public PersonneAsyncDao(Rafraichissable vue) {
28
		vueARafraichir = vue;
126 gduche 29
	}
268 jp_milcent 30
 
241 jp_milcent 31
	public void selectionner(String personneId, String projetId, String nomComplet) {
415 gduche 32
 
241 jp_milcent 33
		// Ajout des paramètres et données à selectionner dans l'URL
277 jp_milcent 34
		String[] parametres = new String[3];
35
		parametres[0] = (personneId == null ? "*" : personneId);
36
		parametres[1] = (projetId == null ? "*" : projetId);
298 gduche 37
		parametres[2] = (nomComplet == null ? "*" : nomComplet);
277 jp_milcent 38
		final RequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
241 jp_milcent 39
		try {
40
			rb.sendRequest(null, new RequestCallback() {
41
 
42
				public void onError(Request request, Throwable exception) {
43
					// Gestion des exceptions déclenchées par l'exécution de la requête
44
					GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (selection)", exception);
45
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
46
				}
47
 
48
				public void onErrorHTTP(Request request, Response reponse) {
49
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
50
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
51
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
52
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
53
				}
54
 
55
				public void onResponseReceived(Request request, Response response) {
56
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP
57
					if (response.getStatusCode() != 200) {
58
						onErrorHTTP(request, response);
59
					} else {
60
						if (response.getText().length() != 0 && response.getText() != null) {
61
							final JSONValue responseValue = JSONParser.parse(response.getText());
126 gduche 62
 
241 jp_milcent 63
							// Si la requête est un succès, reception d'un tableau
64
							if (responseValue.isArray() != null) {
65
								final JSONArray reponse = responseValue.isArray();
66
								// Transformation du tableau JSON réponse en ListeInstitution
67
								Information info = new Information("liste_personne");
68
								PersonneListe personnes = new PersonneListe(reponse);
415 gduche 69
 
241 jp_milcent 70
								info.setDonnee(0, personnes);
71
								// et on met à jour le demandeur des données
277 jp_milcent 72
								vueARafraichir.rafraichir(info);
241 jp_milcent 73
							} else {
277 jp_milcent 74
								GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un talbeau JSON et vaut : "+responseValue.toString(), null);
241 jp_milcent 75
							}
76
						} else {
77
							if (response.getText().length() == 0) {
78
								GWT.log("\tLa réponse a une taille de 0", null);
79
							}
80
							if (response.getText() == null) {
81
								GWT.log("\tLa réponse vaul null", null);
82
							}
83
						}
84
					}
85
				}
86
			});
87
		} catch (RequestException e) {
88
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
89
			GWT.log("Erreur à la création du service "+SERVICE_NOM+" (selection)", e);
90
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
91
		}
92
 
126 gduche 93
	}
241 jp_milcent 94
 
317 gduche 95
	public void supprimer(final Rafraichissable r, String structureId) {
96
 
97
		String utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
387 gduche 98
 
220 aurelien 99
		// Ajout des paramètres et données à supprimer dans l'URL
351 gduche 100
		String[] parametres =  new String[2];
101
		parametres[0] = utilisateurId;
102
		parametres[1] = structureId;
220 aurelien 103
 
415 gduche 104
		//System.out.println(structureId);
105
 
351 gduche 106
		RequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, "POST");
220 aurelien 107
 
108
		try {
351 gduche 109
			rb.sendRequest("action=DELETE", new RequestCallback() {
220 aurelien 110
 
111
				public void onError(Request request, Throwable exception) {
112
					// Gestion des exceptions déclenchées par l'exécution de la requête
268 jp_milcent 113
					GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (suppression)", exception);
220 aurelien 114
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
115
				}
116
 
117
				public void onErrorHTTP(Request request, Response reponse) {
118
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
119
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
120
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
415 gduche 121
 
122
					//Affichage des informations de débug
123
 
124
					final JSONValue reponseEnteteDeboguage = JSONParser.parse(reponse.getHeader("X-DebugJrest-Data"));
125
					if (reponseEnteteDeboguage.isArray() != null) {
126
						info.setDeboguages(reponseEnteteDeboguage.isArray());
127
					}
128
 
129
					GWT.log("DEBOGUAGE:\n"+info.getDeboguages().toString(), null);
130
					Info.display("Une erreur s'est produite lors de la suppression - Err. "+reponse.getStatusCode(), info.toString());
220 aurelien 131
				}
132
 
133
				public void onResponseReceived(Request request, Response response) {
134
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanisme d'erreur HTTP
135
					if (response.getStatusCode() != 200) {
136
						onErrorHTTP(request, response);
137
					} else {
138
						if (response.getText().length() != 0 && response.getText() != null) {
139
							final JSONValue responseValue = JSONParser.parse(response.getText());
140
 
141
							// Si la requête est un succès, reception d'une chaine
142
							if (responseValue.isString() != null) {
143
								Information info = new Information("suppression_personne", responseValue.isString().stringValue());
144
								r.rafraichir(info);
145
							} else {
351 gduche 146
							//	GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
220 aurelien 147
							}
148
						} else {
351 gduche 149
							//GWT.log(url, null);
220 aurelien 150
							if (response.getText().length() == 0) {
151
								GWT.log("\tLa réponse a une taille de 0", null);
152
							}
153
							if (response.getText() == null) {
154
								GWT.log("\tLa réponse vaul null", null);
155
							}
156
						}
157
					}
158
				}
159
 
160
			}) ;
161
		} catch (RequestException e) {
162
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
268 jp_milcent 163
			GWT.log("Erreur à la création du service "+SERVICE_NOM+" (suppression)", e);
220 aurelien 164
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
165
		}
166
	}
387 gduche 167
 
168
	public void ajouter(final Rafraichissable vue, Personne personne) {
169
 
170
		String utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
171
 
172
 
432 gduche 173
		// Ajout des paramètres et données à supprimer dans l'URL
387 gduche 174
 
432 gduche 175
		RequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM + "/", null, null, "POST");
176
 
177
		try	{
178
			String strChaineJson = personne.obtenirChaineJSON();
179
			strChaineJson += "&cmhl_ce_modifier_par=" + utilisateurId;
180
 
181
			rb.sendRequest(strChaineJson, new RequestCallback() {
182
 
183
				public void onError(Request request, Throwable exception) {
184
					// Gestion des exceptions déclenchées par l'exécution de la requête
185
					GWT.log("Erreur à l'exécution du service " + SERVICE_NOM + " (ajout)", exception);
186
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
187
				}
188
 
189
				public void onErrorHTTP(Request request, Response reponse) {
190
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
191
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
192
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
193
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
194
				}
195
 
196
				public void onResponseReceived(Request request, Response response) {
197
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanisme d'erreur HTTP
198
					if (response.getStatusCode() != 200) {
199
						onErrorHTTP(request, response);
200
					} else {
201
						if (response.getText().length() != 0 && response.getText() != null) {
202
							final JSONValue responseValue = JSONParser.parse(response.getText());
203
 
204
							// Si la requête est un succès, reception d'une chaine
205
							if (responseValue.isString() != null) {
206
								Information info = new Information("ajout_personne", responseValue.isString().stringValue());
207
								vue.rafraichir(info);
208
							} else {
209
							//	GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
210
							}
211
						} else {
212
							//GWT.log(url, null);
213
							if (response.getText().length() == 0) {
214
								GWT.log("\tLa réponse a une taille de 0", null);
215
							}
216
							if (response.getText() == null) {
217
								GWT.log("\tLa réponse vaut null", null);
218
							}
219
						}
220
					}
221
				}});
222
		}
223
		catch (RequestException e) {
224
			GWT.log("Exception", e);
225
		}
226
 
227
	}
228
 
229
	public void modifier(final Rafraichissable vue, Personne personne) {
230
 
231
		String utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
387 gduche 232
		String[] parametres = new String [1];
432 gduche 233
		parametres[0] = personne.getId();
387 gduche 234
 
235
		// Ajout des paramètres et données à supprimer dans l'URL
236
 
432 gduche 237
		RequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, "POST");
387 gduche 238
 
239
		try	{
240
			String strChaineJson = personne.obtenirChaineJSON();
241
			strChaineJson += "&cmhl_ce_modifier_par=" + utilisateurId;
242
 
243
			rb.sendRequest(strChaineJson, new RequestCallback() {
241 jp_milcent 244
 
387 gduche 245
				public void onError(Request request, Throwable exception) {
246
					// Gestion des exceptions déclenchées par l'exécution de la requête
247
					GWT.log("Erreur à l'exécution du service " + SERVICE_NOM + " (ajout)", exception);
248
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
249
				}
241 jp_milcent 250
 
387 gduche 251
				public void onErrorHTTP(Request request, Response reponse) {
252
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
253
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
254
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
255
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
256
				}
257
 
258
				public void onResponseReceived(Request request, Response response) {
259
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanisme d'erreur HTTP
260
					if (response.getStatusCode() != 200) {
261
						onErrorHTTP(request, response);
262
					} else {
263
						if (response.getText().length() != 0 && response.getText() != null) {
264
							final JSONValue responseValue = JSONParser.parse(response.getText());
265
 
266
							// Si la requête est un succès, reception d'une chaine
432 gduche 267
							Information info = new Information("modification_personne", responseValue.isString().stringValue());
387 gduche 268
							if (responseValue.isString() != null) {
269
								vue.rafraichir(info);
270
							} else {
271
							//	GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
272
							}
273
						} else {
274
							//GWT.log(url, null);
275
							if (response.getText().length() == 0) {
276
								GWT.log("\tLa réponse a une taille de 0", null);
277
							}
278
							if (response.getText() == null) {
279
								GWT.log("\tLa réponse vaut null", null);
280
							}
281
						}
282
					}
283
				}});
284
		}
285
		catch (RequestException e) {
286
			GWT.log("Exception", e);
287
		}
432 gduche 288
 
387 gduche 289
	}
126 gduche 290
 
291
}