Subversion Repositories eFlore/Applications.coel

Rev

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

Rev Author Line No. Line
935 jpm 1
package org.tela_botanica.client.modeles.structure;
121 jpm 2
 
770 jpm 3
import org.tela_botanica.client.Mediateur;
121 jpm 4
import org.tela_botanica.client.RegistreId;
770 jpm 5
import org.tela_botanica.client.http.JsonRestRequestBuilder;
6
import org.tela_botanica.client.http.JsonRestRequestCallback;
121 jpm 7
import org.tela_botanica.client.interfaces.Rafraichissable;
935 jpm 8
import org.tela_botanica.client.modeles.Information;
9
import org.tela_botanica.client.modeles.projet.ProjetListe;
770 jpm 10
import org.tela_botanica.client.util.UtilDAO;
121 jpm 11
 
12
import com.extjs.gxt.ui.client.Registry;
133 jpm 13
import com.google.gwt.core.client.GWT;
121 jpm 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.JSONValue;
18
 
19
public class StructureAsyncDao {
268 jp_milcent 20
	private static final String SERVICE_NOM = "CoelStructure";
264 jp_milcent 21
 
770 jpm 22
	private String utilisateurId = null;
23
	private Rafraichissable vueARafraichir = null;
24
 
25
	public StructureAsyncDao(Rafraichissable vue) {
26
		vueARafraichir = vue;
27
		utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
865 jpm 28
		GWT.log("ID utilisateur :"+utilisateurId, null);
770 jpm 29
	}
30
 
31
	public void selectionner(final String projetId, final String structureId) {
32
		String[] parametres = {projetId, structureId};
33
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
34
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
35
			@Override
36
			public void surReponse(JSONValue responseValue) {
37
				if (responseValue != null) {
38
					Information info = new Information("selection_structure");
39
					// Si la requête est un succès, reception d'un objet ou d'un tableau
40
					if (responseValue.isObject() != null) {
41
						final JSONObject reponse = responseValue.isObject();
42
						Structure structure = new Structure(reponse);
43
						StructureConservation structureConservation = new StructureConservation(reponse);
44
						StructureValorisation structureValorisation = new StructureValorisation(reponse);
45
						info.setDonnee(0, structure);
46
						info.setDonnee(1, structureConservation);
47
						info.setDonnee(2, structureValorisation);
48
						vueARafraichir.rafraichir(info);
49
					} else if (responseValue.isArray() != null) {
50
						final JSONArray reponse = responseValue.isArray();
51
						StructureListe structures = new StructureListe(reponse);
52
						vueARafraichir.rafraichir(structures);
53
					} else {
54
						GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
55
					}
56
				} else {
57
					if (structureId == null) {
58
						// Dans le cas, où nous demandons toutes les institutions et qu'il n'y en a pas, nous retournons un objet vide
59
						StructureListe structures = new StructureListe(0);
60
						vueARafraichir.rafraichir(structures);
61
					}
62
				}
63
			}
64
		});
65
	}
66
 
67
	public void ajouter(final Structure str, StructureConservation conservation, StructureValorisation valorisation) {
68
		String postDonneesEncodees = construirePost(null, str, conservation, valorisation);
156 jp_milcent 69
 
770 jpm 70
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
71
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
72
			@Override
73
			public void surReponse(JSONValue responseValue) {
74
				if (responseValue.isString() != null) {
75
					Information info = new Information("ajout_structure");
76
					String structureIdOuMessage = responseValue.isString().stringValue();
77
					if (structureIdOuMessage.matches("^[0-9]+$")) {
78
						info.setDonnee(structureIdOuMessage);
156 jp_milcent 79
					} else {
770 jpm 80
						info.setMessage(structureIdOuMessage);
156 jp_milcent 81
					}
770 jpm 82
					vueARafraichir.rafraichir(info);
83
				} else {
84
					GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
156 jp_milcent 85
				}
770 jpm 86
			}
87
		});
156 jp_milcent 88
	}
770 jpm 89
 
90
	public void modifier(String structureId, Structure str, StructureConservation conservation, StructureValorisation valorisation) {
91
		String postDonneesEncodees = construirePost(structureId, str, conservation, valorisation);
772 jpm 92
		String[] parametres = {structureId};
93
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
94
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
95
			@Override
96
			public void surReponse(JSONValue responseValue) {
97
				// Si la requête est un succès, reception d'une chaine
98
				if (responseValue.isString() != null) {
99
					Information info = new Information("modif_structure");
100
					info.setMessage(responseValue.isString().stringValue());
101
					vueARafraichir.rafraichir(info);
102
				} else {
103
					GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
121 jpm 104
				}
772 jpm 105
			}
106
		});
121 jpm 107
	}
770 jpm 108
 
772 jpm 109
	public void supprimer(String structuresId) {
110
		String[] parametres = {utilisateurId, structuresId};
111
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
112
		rb.envoyerRequeteSuppression(new JsonRestRequestCallback() {
113
			@Override
114
			public void surReponse(JSONValue responseValue) {
115
				if (responseValue.isString() != null) {
116
					Information info = new Information("suppression_structure");
117
					info.setMessage(responseValue.isString().stringValue());
118
					vueARafraichir.rafraichir(info);
119
				} else {
120
					GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
133 jpm 121
				}
772 jpm 122
			}
123
		});
133 jpm 124
	}
169 jp_milcent 125
 
770 jpm 126
	private String construirePost(String structureId, Structure str, StructureConservation conservation, StructureValorisation valorisation) {
865 jpm 127
		String postDonnees = "cmhl_ce_modifier_par=" + URL.encodeComponent(utilisateurId);
128
 
602 jp_milcent 129
		if (str != null) {
612 jp_milcent 130
			if (structureId != null) {
131
				postDonnees += "&cs_id_structure=" + URL.encodeComponent(structureId);
132
			}
865 jpm 133
			postDonnees += "&cpr_abreviation=" + URL.encodeComponent(((ProjetListe) Registry.get(RegistreId.PROJETS)).get(str.getIdProjet()).getAbreviation());
602 jp_milcent 134
			postDonnees += "&cs_ce_projet=" + URL.encodeComponent(str.getIdProjet()) +
135
				"&cs_ce_mere=" + URL.encodeComponent(str.getIdMere()) +
136
				"&cs_guid=" + URL.encodeComponent(str.getGuid()) +
137
				"&cs_truk_identifiant_alternatif=" + URL.encodeComponent(str.getIdAlternatif()) +
138
				"&cs_nom=" + URL.encodeComponent(str.getNom()) +
139
				"&cs_truk_nom_alternatif=" + URL.encodeComponent(str.getNomAlternatif()) +
140
				"&cs_ce_type=" + URL.encodeComponent(str.getType()) +
141
				"&cs_ce_truk_type_prive=" + URL.encodeComponent(str.getTypePrive()) +
142
				"&cs_ce_truk_type_public=" + URL.encodeComponent(str.getTypePublic()) +
143
				"&cs_adresse_01=" + URL.encodeComponent(str.getAdresse()) +
144
				"&cs_adresse_02=" + URL.encodeComponent(str.getAdresseComplement()) +
145
				"&cs_date_fondation=" + URL.encodeComponent(str.getDateFondationFormatMysql()) +
146
				"&cs_code_postal=" + URL.encodeComponent(str.getCodePostal()) +
147
				"&cs_ville=" + URL.encodeComponent(str.getVille()) +
1037 gduche 148
				"&cs_ce_truk_region=" + URL.encodeComponent(str.get("ce_truk_region").toString()) +
602 jp_milcent 149
				"&cs_ce_truk_pays=" + URL.encodeComponent(str.getPays()) +
150
				"&cs_truk_telephone=" + URL.encodeComponent(str.getTelephone()) +
151
				"&cs_truk_url=" + URL.encodeComponent(str.getUrl()) +
152
				"&cs_nbre_personne=" + URL.encodeComponent(Integer.toString(str.getNbrePersonne()));
153
		}
154
		if (conservation != null) {
612 jp_milcent 155
			if (structureId != null) {
156
				postDonnees += "&csc_id_structure=" + URL.encodeComponent(structureId);
157
			}
602 jp_milcent 158
			postDonnees += "&csc_mark_formation=" + URL.encodeComponent(conservation.getFormation()) +
159
				"&csc_formation=" + URL.encodeComponent(conservation.getFormationInfo()) +
160
				"&csc_mark_formation_interet=" + URL.encodeComponent(conservation.getFormationInteret()) +
161
				"&csc_truk_stockage_local=" + URL.encodeComponent(conservation.getStockageLocal()) +
162
				"&csc_truk_stockage_meuble=" + URL.encodeComponent(conservation.getStockageMeuble()) +
163
				"&csc_truk_stockage_parametre=" + URL.encodeComponent(conservation.getStockageParametre()) +
164
				"&csc_mark_collection_commune=" + URL.encodeComponent(conservation.getCollectionCommune()) +
165
				"&csc_truk_collection_autre=" + URL.encodeComponent(conservation.getCollectionAutre()) +
166
				"&csc_mark_acces_controle=" + URL.encodeComponent(conservation.getAccesControle()) +
167
				"&csc_mark_restauration=" + URL.encodeComponent(conservation.getRestauration()) +
168
				"&csc_truk_restauration_operation=" + URL.encodeComponent(conservation.getRestaurationOperation()) +
169
				"&csc_ce_materiel_conservation=" + URL.encodeComponent(conservation.getMaterielConservation()) +
170
				"&csc_truk_materiel_autre=" + URL.encodeComponent(conservation.getMaterielAutre()) +
171
				"&csc_mark_traitement=" + URL.encodeComponent(conservation.getTraitement()) +
172
				"&csc_truk_traitement=" + URL.encodeComponent(conservation.getTraitements()) +
173
				"&csc_mark_acquisition_collection=" + URL.encodeComponent(conservation.getAcquisitionCollection()) +
174
				"&csc_mark_acquisition_echantillon=" + URL.encodeComponent(conservation.getAcquisitionEchantillon()) +
175
				"&csc_mark_acquisition_traitement=" + URL.encodeComponent(conservation.getAcquisitionTraitement()) +
176
				"&csc_truk_acquisition_traitement_poison=" + URL.encodeComponent(conservation.getAcquisitionTraitementPoison()) +
177
				"&csc_truk_acquisition_traitement_insecte=" + URL.encodeComponent(conservation.getAcquisitionTraitementInsecte());
178
		}
179
		if (valorisation != null) {
612 jp_milcent 180
			if (structureId != null) {
632 jp_milcent 181
				postDonnees += "&csv_id_structure=" + URL.encodeComponent(structureId);
612 jp_milcent 182
			}
602 jp_milcent 183
			postDonnees += "&csv_mark_action=" + URL.encodeComponent(valorisation.getAction()) +
184
				"&csv_truk_action=" + URL.encodeComponent(valorisation.getActionInfo()) +
185
				"&csv_publication=" + URL.encodeComponent(valorisation.getPublication()) +
186
				"&csv_collection_autre=" + URL.encodeComponent(valorisation.getCollectionAutre()) +
187
				"&csv_mark_action_future=" + URL.encodeComponent(valorisation.getActionFuture()) +
188
				"&csv_action_future=" + URL.encodeComponent(valorisation.getActionFutureInfo()) +
189
				"&csv_mark_recherche=" + URL.encodeComponent(valorisation.getRecherche()) +
190
				"&csv_truk_recherche_provenance=" + URL.encodeComponent(valorisation.getRechercheProvenance()) +
191
				"&csv_truk_recherche_type=" + URL.encodeComponent(valorisation.getRechercheType()) +
192
				"&csv_mark_acces_ss_motif=" + URL.encodeComponent(valorisation.getAccesSansMotif()) +
193
				"&csv_acces_ss_motif=" + URL.encodeComponent(valorisation.getAccesSansMotifInfo()) +
194
				"&csv_mark_visite_avec_motif=" + URL.encodeComponent(valorisation.getVisiteAvecMotif()) +
195
				"&csv_visite_avec_motif=" + URL.encodeComponent(valorisation.getVisiteAvecMotifInfo());
196
		}
197
		return postDonnees;
198
	}
121 jpm 199
}