Subversion Repositories eFlore/Applications.coel

Rev

Details | 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
 
70
								System.out.println("new personne liste");
241 jp_milcent 71
								info.setDonnee(0, personnes);
72
								// et on met à jour le demandeur des données
277 jp_milcent 73
								vueARafraichir.rafraichir(info);
241 jp_milcent 74
							} else {
277 jp_milcent 75
								GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un talbeau JSON et vaut : "+responseValue.toString(), null);
241 jp_milcent 76
							}
77
						} else {
78
							if (response.getText().length() == 0) {
79
								GWT.log("\tLa réponse a une taille de 0", null);
80
							}
81
							if (response.getText() == null) {
82
								GWT.log("\tLa réponse vaul null", null);
83
							}
84
						}
85
					}
86
				}
87
			});
88
		} catch (RequestException e) {
89
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
90
			GWT.log("Erreur à la création du service "+SERVICE_NOM+" (selection)", e);
91
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
92
		}
93
 
126 gduche 94
	}
241 jp_milcent 95
 
317 gduche 96
	public void supprimer(final Rafraichissable r, String structureId) {
97
 
98
		String utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
387 gduche 99
 
220 aurelien 100
		// Ajout des paramètres et données à supprimer dans l'URL
351 gduche 101
		String[] parametres =  new String[2];
102
		parametres[0] = utilisateurId;
103
		parametres[1] = structureId;
220 aurelien 104
 
415 gduche 105
		//System.out.println(structureId);
106
 
351 gduche 107
		RequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, "POST");
220 aurelien 108
 
109
		try {
351 gduche 110
			rb.sendRequest("action=DELETE", new RequestCallback() {
220 aurelien 111
 
112
				public void onError(Request request, Throwable exception) {
113
					// Gestion des exceptions déclenchées par l'exécution de la requête
268 jp_milcent 114
					GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (suppression)", exception);
220 aurelien 115
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
116
				}
117
 
118
				public void onErrorHTTP(Request request, Response reponse) {
119
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
120
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
121
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
415 gduche 122
 
123
					//Affichage des informations de débug
124
 
125
					final JSONValue reponseEnteteDeboguage = JSONParser.parse(reponse.getHeader("X-DebugJrest-Data"));
126
					if (reponseEnteteDeboguage.isArray() != null) {
127
						info.setDeboguages(reponseEnteteDeboguage.isArray());
128
					}
129
 
130
					GWT.log("DEBOGUAGE:\n"+info.getDeboguages().toString(), null);
131
					Info.display("Une erreur s'est produite lors de la suppression - Err. "+reponse.getStatusCode(), info.toString());
220 aurelien 132
				}
133
 
134
				public void onResponseReceived(Request request, Response response) {
135
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanisme d'erreur HTTP
136
					if (response.getStatusCode() != 200) {
137
						onErrorHTTP(request, response);
138
					} else {
139
						if (response.getText().length() != 0 && response.getText() != null) {
140
							final JSONValue responseValue = JSONParser.parse(response.getText());
141
 
142
							// Si la requête est un succès, reception d'une chaine
143
							if (responseValue.isString() != null) {
144
								Information info = new Information("suppression_personne", responseValue.isString().stringValue());
145
								r.rafraichir(info);
146
							} else {
351 gduche 147
							//	GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
220 aurelien 148
							}
149
						} else {
351 gduche 150
							//GWT.log(url, null);
220 aurelien 151
							if (response.getText().length() == 0) {
152
								GWT.log("\tLa réponse a une taille de 0", null);
153
							}
154
							if (response.getText() == null) {
155
								GWT.log("\tLa réponse vaul null", null);
156
							}
157
						}
158
					}
159
				}
160
 
161
			}) ;
162
		} catch (RequestException e) {
163
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
268 jp_milcent 164
			GWT.log("Erreur à la création du service "+SERVICE_NOM+" (suppression)", e);
220 aurelien 165
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
166
		}
167
	}
387 gduche 168
 
169
	public void ajouter(final Rafraichissable vue, Personne personne) {
170
 
171
		String utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
172
 
173
 
432 gduche 174
		// Ajout des paramètres et données à supprimer dans l'URL
387 gduche 175
 
432 gduche 176
		RequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM + "/", null, null, "POST");
177
 
178
		try	{
179
			String strChaineJson = personne.obtenirChaineJSON();
180
			strChaineJson += "&cmhl_ce_modifier_par=" + utilisateurId;
181
 
182
			rb.sendRequest(strChaineJson, new RequestCallback() {
183
 
184
				public void onError(Request request, Throwable exception) {
185
					// Gestion des exceptions déclenchées par l'exécution de la requête
186
					GWT.log("Erreur à l'exécution du service " + SERVICE_NOM + " (ajout)", exception);
187
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
188
				}
189
 
190
				public void onErrorHTTP(Request request, Response reponse) {
191
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
192
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
193
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
194
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
195
				}
196
 
197
				public void onResponseReceived(Request request, Response response) {
198
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanisme d'erreur HTTP
199
					if (response.getStatusCode() != 200) {
200
						onErrorHTTP(request, response);
201
					} else {
202
						if (response.getText().length() != 0 && response.getText() != null) {
203
							final JSONValue responseValue = JSONParser.parse(response.getText());
204
 
205
							// Si la requête est un succès, reception d'une chaine
206
							if (responseValue.isString() != null) {
207
								Information info = new Information("ajout_personne", responseValue.isString().stringValue());
208
								vue.rafraichir(info);
209
							} else {
210
							//	GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
211
							}
212
						} else {
213
							//GWT.log(url, null);
214
							if (response.getText().length() == 0) {
215
								GWT.log("\tLa réponse a une taille de 0", null);
216
							}
217
							if (response.getText() == null) {
218
								GWT.log("\tLa réponse vaut null", null);
219
							}
220
						}
221
					}
222
				}});
223
		}
224
		catch (RequestException e) {
225
			GWT.log("Exception", e);
226
		}
227
 
228
	}
229
 
230
	public void modifier(final Rafraichissable vue, Personne personne) {
231
 
232
		String utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
387 gduche 233
		String[] parametres = new String [1];
432 gduche 234
		parametres[0] = personne.getId();
387 gduche 235
 
236
		// Ajout des paramètres et données à supprimer dans l'URL
237
 
432 gduche 238
		RequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, "POST");
387 gduche 239
 
240
		try	{
241
			String strChaineJson = personne.obtenirChaineJSON();
242
			strChaineJson += "&cmhl_ce_modifier_par=" + utilisateurId;
243
 
244
			rb.sendRequest(strChaineJson, new RequestCallback() {
241 jp_milcent 245
 
387 gduche 246
				public void onError(Request request, Throwable exception) {
247
					// Gestion des exceptions déclenchées par l'exécution de la requête
248
					GWT.log("Erreur à l'exécution du service " + SERVICE_NOM + " (ajout)", exception);
249
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
250
				}
241 jp_milcent 251
 
387 gduche 252
				public void onErrorHTTP(Request request, Response reponse) {
253
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
254
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
255
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
256
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
257
				}
258
 
259
				public void onResponseReceived(Request request, Response response) {
260
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanisme d'erreur HTTP
261
					if (response.getStatusCode() != 200) {
262
						onErrorHTTP(request, response);
263
					} else {
264
						if (response.getText().length() != 0 && response.getText() != null) {
265
							final JSONValue responseValue = JSONParser.parse(response.getText());
266
 
267
							// Si la requête est un succès, reception d'une chaine
432 gduche 268
							Information info = new Information("modification_personne", responseValue.isString().stringValue());
387 gduche 269
							if (responseValue.isString() != null) {
270
								vue.rafraichir(info);
271
							} else {
272
							//	GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
273
							}
274
						} else {
275
							//GWT.log(url, null);
276
							if (response.getText().length() == 0) {
277
								GWT.log("\tLa réponse a une taille de 0", null);
278
							}
279
							if (response.getText() == null) {
280
								GWT.log("\tLa réponse vaut null", null);
281
							}
282
						}
283
					}
284
				}});
285
		}
286
		catch (RequestException e) {
287
			GWT.log("Exception", e);
288
		}
432 gduche 289
 
387 gduche 290
	}
126 gduche 291
 
292
}