Subversion Repositories eFlore/Applications.coel

Rev

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

Rev Author Line No. Line
121 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;
153 jpm 7
import com.extjs.gxt.ui.client.widget.Info;
133 jpm 8
import com.google.gwt.core.client.GWT;
121 jpm 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.http.client.URL;
15
import com.google.gwt.json.client.JSONArray;
156 jp_milcent 16
import com.google.gwt.json.client.JSONObject;
121 jpm 17
import com.google.gwt.json.client.JSONParser;
18
import com.google.gwt.json.client.JSONValue;
19
 
20
public class StructureAsyncDao {
21
 
245 jp_milcent 22
	public void selectionner(final Rafraichissable r, String idUtilisateur, final String projetId, final String idStr) {
156 jp_milcent 23
		// Ajout des paramètres et données à selectionner dans l'URL
24
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
25
			"CoelStructureListe/" +
245 jp_milcent 26
			(projetId == null ? "*" : projetId) + "/" +
156 jp_milcent 27
			(idStr == null ? "" : idStr) +
28
			"";
29
 
30
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url);
31
		try {
32
			rb.sendRequest(null, new RequestCallback() {
33
 
34
				public void onError(Request request, Throwable exception) {
35
					// Gestion des exceptions déclenchées par l'exécution de la requête
36
					GWT.log("Erreur à l'exécution du service CoelStructureListe (selection)", exception);
37
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
38
				}
39
 
40
				public void onErrorHTTP(Request request, Response reponse) {
41
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
42
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
43
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
44
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
45
				}
46
 
47
				public void onResponseReceived(Request request, Response response) {
48
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP
49
					if (response.getStatusCode() != 200) {
50
						onErrorHTTP(request, response);
51
					} else {
52
						if (response.getText().length() != 0 && response.getText() != null) {
53
							final JSONValue responseValue = JSONParser.parse(response.getText());
54
 
55
							// Si la requête est un succès, reception d'un objet ou d'un tableau
56
							if (responseValue.isObject() != null) {
57
								final JSONObject reponse = responseValue.isObject();
58
								// Transformation du tableau JSON réponse en ListeInstitution
59
								Structure structure = new Structure(reponse);
188 jp_milcent 60
								StructureConservation structureConservation = new StructureConservation(reponse);
192 jp_milcent 61
								StructureValorisation structureValorisation = new StructureValorisation(reponse);
188 jp_milcent 62
								Information info = new Information("selection_structure");
63
								info.setDonnee(0, structure);
64
								info.setDonnee(1, structureConservation);
192 jp_milcent 65
								info.setDonnee(2, structureValorisation);
156 jp_milcent 66
								r.rafraichir(info);
67
							} else if (responseValue.isArray() != null) {
68
								final JSONArray reponse = responseValue.isArray();
69
								// Transformation du tableau JSON réponse en ListeInstitution
70
								StructureListe structures = new StructureListe(reponse);
71
								// et on met à jour le demandeur des données
72
								r.rafraichir(structures);
73
							} else {
74
								GWT.log(url+"\n\tLa réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
75
							}
76
						} else {
77
							if (idStr == null) {
78
								// Dans le cas, où nous demandons toutes les institutions et qu'il n'y en a pas, nous retournons un objet vide
79
								StructureListe structures = new StructureListe(0);
80
								r.rafraichir(structures);
81
							} else {
82
								GWT.log(url, null);
83
								if (response.getText().length() == 0) {
84
									GWT.log("\tLa réponse a une taille de 0", null);
85
								}
86
								if (response.getText() == null) {
87
									GWT.log("\tLa réponse vaul null", null);
88
								}
89
							}
90
						}
91
					}
92
				}
93
			});
94
		} catch (RequestException e) {
95
			e.printStackTrace();
96
		}
97
	}
98
 
121 jpm 99
	public void ajouter(final Rafraichissable r, String utilisateurId, final Structure str) {
153 jpm 100
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
101
			"CoelStructureListe/";
121 jpm 102
 
153 jpm 103
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url);
104
 
140 jpm 105
		String postDonnees = 	"cmhl_ce_modifier_par=" + utilisateurId +
106
			"&cs_ce_projet =" + URL.encodeComponent(str.getIdProjet()) +
107
			"&cs_ce_mere =" + URL.encodeComponent(str.getIdMere()) +
108
			"&cs_guid =" + URL.encodeComponent(str.getGuid()) +
109
			"&cs_truk_identifiant_alternatif =" + URL.encodeComponent(str.getIdAlternatif()) +
110
			"&cs_nom=" + URL.encodeComponent(str.getNom()) +
111
			"&cs_truk_nom_alternatif =" + URL.encodeComponent(str.getNomAlternatif()) +
112
			"&cs_ce_type =" + URL.encodeComponent(str.getType()) +
113
			"&cs_ce_truk_type_prive =" + URL.encodeComponent(str.getTypePrive()) +
114
			"&cs_ce_truk_type_public =" + URL.encodeComponent(str.getTypePublic()) +
115
			"&cs_adresse_01 =" + URL.encodeComponent(str.getAdresse()) +
116
			"&cs_adresse_02 =" + URL.encodeComponent(str.getAdresseComplement()) +
169 jp_milcent 117
			"&cs_date_fondation =" + URL.encodeComponent(str.getDateFondationFormatMysql()) +
140 jpm 118
			"&cs_code_postal =" + URL.encodeComponent(str.getCodePostal()) +
119
			"&cs_ville =" + URL.encodeComponent(str.getVille()) +
120
			"&cs_region =" + URL.encodeComponent(str.getRegion()) +
121
			"&cs_pays =" + URL.encodeComponent(str.getPays()) +
122
			"&cs_telephone =" + URL.encodeComponent(str.getTelephone()) +
123
			"&cs_fax =" + URL.encodeComponent(str.getFax()) +
124
			"&cs_truk_url =" + URL.encodeComponent(str.getUrl()) +
208 jp_milcent 125
			"&cs_nbre_personne =" + URL.encodeComponent(Integer.toString(str.getNbrePersonne())) +
121 jpm 126
			"";
127
 
128
		try {
129
			rb.sendRequest(postDonnees, new RequestCallback() {
130
 
131
				public void onError(Request request, Throwable exception) {
153 jpm 132
					// Gestion des exceptions déclenchées par l'exécution de la requête
156 jp_milcent 133
					GWT.log("Erreur à l'exécution du service CoelStructureListe (ajout)", exception);
153 jpm 134
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
121 jpm 135
				}
153 jpm 136
 
137
				public void onErrorHTTP(Request request, Response reponse) {
138
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
139
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
140
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
141
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
142
				}
121 jpm 143
 
144
				public void onResponseReceived(Request request, Response response) {
153 jpm 145
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP
146
					if (response.getStatusCode() != 200) {
147
						onErrorHTTP(request, response);
148
					} else {
149
						if (response.getText().length() != 0 && response.getText() != null) {
150
							final JSONValue responseValue = JSONParser.parse(response.getText());
151
 
155 jpm 152
							// Si la requête est un succès, reception d'une chaine
153
							if (responseValue.isString() != null) {
154
								Information info = new Information("ajout_structure", responseValue.isString().stringValue());
153 jpm 155
								r.rafraichir(info);
156
							} else {
155 jpm 157
								GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
153 jpm 158
							}
159
						} else {
160
							GWT.log(url, null);
161
							if (response.getText().length() == 0) {
162
								GWT.log("\tLa réponse a une taille de 0", null);
163
							}
164
							if (response.getText() == null) {
165
								GWT.log("\tLa réponse vaul null", null);
166
							}
121 jpm 167
						}
168
					}
169
				}
170
 
171
			}) ;
172
		} catch (RequestException e) {
153 jpm 173
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
174
			GWT.log("Erreur à la création du service CoelProjetsListe", e);
175
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
121 jpm 176
		}
177
	}
133 jpm 178
 
179
	public void supprimer(final Rafraichissable r, String idUtilisateur, String idStr) {
180
		// Ajout des paramètres et données à supprimer dans l'URL
181
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
182
			"CoelStructureListe/" +
183
			idUtilisateur + "/" +
184
			idStr +
185
			"";
186
 
187
		// DELETE n'étant pas disponible comme méthode HTTP, nous utilisons POST avec le paramètre action=DELETE
188
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url);
189
		String postDonnees = "action=DELETE";
190
 
191
		try {
192
			rb.sendRequest(postDonnees, new RequestCallback() {
193
 
194
				public void onError(Request request, Throwable exception) {
156 jp_milcent 195
					// Gestion des exceptions déclenchées par l'exécution de la requête
196
					GWT.log("Erreur à l'exécution du service CoelStructureListe (suppression)", exception);
197
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
133 jpm 198
				}
199
 
153 jpm 200
				public void onErrorHTTP(Request request, Response reponse) {
201
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
202
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
203
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
204
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
205
				}
206
 
133 jpm 207
				public void onResponseReceived(Request request, Response response) {
153 jpm 208
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP
209
					if (response.getStatusCode() != 200) {
210
						onErrorHTTP(request, response);
211
					} else {
212
						if (response.getText().length() != 0 && response.getText() != null) {
213
							final JSONValue responseValue = JSONParser.parse(response.getText());
214
 
156 jp_milcent 215
							// Si la requête est un succès, reception d'une chaine
153 jpm 216
							if (responseValue.isString() != null) {
217
								Information info = new Information("suppression_structure", responseValue.isString().stringValue());
218
								r.rafraichir(info);
219
							} else {
220
								GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
221
							}
133 jpm 222
						} else {
153 jpm 223
							GWT.log(url, null);
224
							if (response.getText().length() == 0) {
225
								GWT.log("\tLa réponse a une taille de 0", null);
226
							}
227
							if (response.getText() == null) {
228
								GWT.log("\tLa réponse vaul null", null);
229
							}
133 jpm 230
						}
231
					}
232
				}
233
 
234
			}) ;
235
		} catch (RequestException e) {
153 jpm 236
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
237
			GWT.log("Erreur à la création du service CoelProjetsListe", e);
238
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
133 jpm 239
		}
240
	}
169 jp_milcent 241
 
192 jp_milcent 242
	public void modifier(final Rafraichissable r, String utilisateurId, Structure str, StructureConservation conservation, StructureValorisation valorisation) {
169 jp_milcent 243
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
244
		"CoelStructureListe/" +
245
		str.getId()
246
		;
247
 
248
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url);
249
 
250
		String postDonnees = 	"cmhl_ce_modifier_par=" + utilisateurId +
251
			"&cs_ce_projet =" + URL.encodeComponent(str.getIdProjet()) +
252
			"&cs_ce_mere =" + URL.encodeComponent(str.getIdMere()) +
253
			"&cs_guid =" + URL.encodeComponent(str.getGuid()) +
254
			"&cs_truk_identifiant_alternatif =" + URL.encodeComponent(str.getIdAlternatif()) +
255
			"&cs_nom=" + URL.encodeComponent(str.getNom()) +
256
			"&cs_truk_nom_alternatif =" + URL.encodeComponent(str.getNomAlternatif()) +
257
			"&cs_ce_type =" + URL.encodeComponent(str.getType()) +
258
			"&cs_ce_truk_type_prive =" + URL.encodeComponent(str.getTypePrive()) +
259
			"&cs_ce_truk_type_public =" + URL.encodeComponent(str.getTypePublic()) +
260
			"&cs_adresse_01 =" + URL.encodeComponent(str.getAdresse()) +
261
			"&cs_adresse_02 =" + URL.encodeComponent(str.getAdresseComplement()) +
262
			"&cs_date_fondation =" + URL.encodeComponent(str.getDateFondationFormatMysql()) +
263
			"&cs_code_postal =" + URL.encodeComponent(str.getCodePostal()) +
264
			"&cs_ville =" + URL.encodeComponent(str.getVille()) +
265
			"&cs_region =" + URL.encodeComponent(str.getRegion()) +
266
			"&cs_pays =" + URL.encodeComponent(str.getPays()) +
267
			"&cs_telephone =" + URL.encodeComponent(str.getTelephone()) +
268
			"&cs_fax =" + URL.encodeComponent(str.getFax()) +
177 jp_milcent 269
			"&cs_courriel =" + URL.encodeComponent(str.getCourriel()) +
169 jp_milcent 270
			"&cs_truk_url =" + URL.encodeComponent(str.getUrl()) +
208 jp_milcent 271
			"&cs_nbre_personne =" + URL.encodeComponent(Integer.toString(str.getNbrePersonne())) +
192 jp_milcent 272
			"&csc_mark_formation =" + URL.encodeComponent(conservation.getFormation()) +
273
			"&csc_formation =" + URL.encodeComponent(conservation.getFormationInfo()) +
274
			"&csc_mark_formation_interet =" + URL.encodeComponent(conservation.getFormationInteret()) +
275
			"&csc_truk_stockage_local =" + URL.encodeComponent(conservation.getStockageLocal()) +
276
			"&csc_truk_stockage_meuble =" + URL.encodeComponent(conservation.getStockageMeuble()) +
277
			"&csc_truk_stockage_parametre =" + URL.encodeComponent(conservation.getStockageParametre()) +
278
			"&csc_mark_collection_commune =" + URL.encodeComponent(conservation.getCollectionCommune()) +
279
			"&csc_truk_collection_autre =" + URL.encodeComponent(conservation.getCollectionAutre()) +
280
			"&csc_mark_acces_controle =" + URL.encodeComponent(conservation.getAccesControle()) +
281
			"&csc_mark_restauration =" + URL.encodeComponent(conservation.getRestauration()) +
282
			"&csc_truk_restauration_operation =" + URL.encodeComponent(conservation.getRestaurationOperation()) +
283
			"&csc_ce_materiel_conservation =" + URL.encodeComponent(conservation.getMaterielConservation()) +
284
			"&csc_truk_materiel_autre =" + URL.encodeComponent(conservation.getMaterielAutre()) +
285
			"&csc_mark_traitement =" + URL.encodeComponent(conservation.getTraitement()) +
286
			"&csc_truk_traitement =" + URL.encodeComponent(conservation.getTraitements()) +
287
			"&csc_mark_acquisition_collection =" + URL.encodeComponent(conservation.getAcquisitionCollection()) +
288
			"&csc_mark_acquisition_echantillon =" + URL.encodeComponent(conservation.getAcquisitionEchantillon()) +
289
			"&csc_mark_acquisition_traitement =" + URL.encodeComponent(conservation.getAcquisitionTraitement()) +
290
			"&csc_truk_acquisition_traitement_poison =" + URL.encodeComponent(conservation.getAcquisitionTraitementPoison()) +
291
			"&csc_truk_acquisition_traitement_insecte =" + URL.encodeComponent(conservation.getAcquisitionTraitementInsecte()) +
292
			"&csv_mark_action =" + URL.encodeComponent(valorisation.getAction()) +
293
			"&csv_truk_action =" + URL.encodeComponent(valorisation.getActionInfo()) +
294
			"&csv_publication =" + URL.encodeComponent(valorisation.getPublication()) +
295
			"&csv_collection_autre =" + URL.encodeComponent(valorisation.getCollectionAutre()) +
296
			"&csv_mark_action_future =" + URL.encodeComponent(valorisation.getActionFuture()) +
297
			"&csv_action_future =" + URL.encodeComponent(valorisation.getActionFutureInfo()) +
204 jp_milcent 298
			"&csv_mark_recherche =" + URL.encodeComponent(valorisation.getRecherche()) +
299
			"&csv_truk_recherche_provenance =" + URL.encodeComponent(valorisation.getRechercheProvenance()) +
300
			"&csv_truk_recherche_type =" + URL.encodeComponent(valorisation.getRechercheType()) +
301
			"&csv_mark_acces_ss_motif =" + URL.encodeComponent(valorisation.getAccesSansMotif()) +
302
			"&csv_acces_ss_motif =" + URL.encodeComponent(valorisation.getAccesSansMotifInfo()) +
303
			"&csv_mark_visite_avec_motif =" + URL.encodeComponent(valorisation.getVisiteAvecMotif()) +
304
			"&csv_visite_avec_motif =" + URL.encodeComponent(valorisation.getVisiteAvecMotifInfo()) +
169 jp_milcent 305
			"";
306
 
307
		try {
308
			rb.sendRequest(postDonnees, new RequestCallback() {
309
 
310
				public void onError(Request request, Throwable exception) {
311
					// Gestion des exceptions déclenchées par l'exécution de la requête
312
					GWT.log("Erreur à l'exécution du service CoelStructureListe (modif)", exception);
313
					Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
314
				}
315
 
316
				public void onErrorHTTP(Request request, Response reponse) {
317
					// Gestion des erreurs HTTP renvoyé par Apache ou JRest
318
					Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray());
319
					GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null);
320
					Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString());
321
				}
322
 
323
				public void onResponseReceived(Request request, Response response) {
324
					// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP
325
					if (response.getStatusCode() != 200) {
326
						onErrorHTTP(request, response);
327
					} else {
328
						if (response.getText().length() != 0 && response.getText() != null) {
329
							final JSONValue responseValue = JSONParser.parse(response.getText());
330
 
331
							// Si la requête est un succès, reception d'une chaine
332
							if (responseValue.isString() != null) {
333
								Information info = new Information("modif_structure", responseValue.isString().stringValue());
334
								r.rafraichir(info);
335
							} else {
336
								GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null);
337
							}
338
						} else {
339
							GWT.log(url, null);
340
							if (response.getText().length() == 0) {
341
								GWT.log("\tLa réponse a une taille de 0", null);
342
							}
343
							if (response.getText() == null) {
344
								GWT.log("\tLa réponse vaul null", null);
345
							}
346
						}
347
					}
348
				}
349
 
350
			}) ;
351
		} catch (RequestException e) {
352
			// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?)
353
			GWT.log("Erreur à la création du service CoelProjetsListe", e);
354
			Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête.");
355
		}
356
	}
121 jpm 357
}