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);
92
 
772 jpm 93
		String[] parametres = {structureId};
94
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
95
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
96
			@Override
97
			public void surReponse(JSONValue responseValue) {
98
				// Si la requête est un succès, reception d'une chaine
99
				if (responseValue.isString() != null) {
100
					Information info = new Information("modif_structure");
101
					info.setMessage(responseValue.isString().stringValue());
102
					vueARafraichir.rafraichir(info);
103
				} else {
104
					GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
121 jpm 105
				}
772 jpm 106
			}
107
		});
121 jpm 108
	}
770 jpm 109
 
772 jpm 110
	public void supprimer(String structuresId) {
111
		String[] parametres = {utilisateurId, structuresId};
112
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
113
		rb.envoyerRequeteSuppression(new JsonRestRequestCallback() {
114
			@Override
115
			public void surReponse(JSONValue responseValue) {
116
				if (responseValue.isString() != null) {
117
					Information info = new Information("suppression_structure");
118
					info.setMessage(responseValue.isString().stringValue());
119
					vueARafraichir.rafraichir(info);
120
				} else {
121
					GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
133 jpm 122
				}
772 jpm 123
			}
124
		});
133 jpm 125
	}
169 jp_milcent 126
 
770 jpm 127
	private String construirePost(String structureId, Structure str, StructureConservation conservation, StructureValorisation valorisation) {
865 jpm 128
		String postDonnees = "cmhl_ce_modifier_par=" + URL.encodeComponent(utilisateurId);
129
 
602 jp_milcent 130
		if (str != null) {
612 jp_milcent 131
			if (structureId != null) {
132
				postDonnees += "&cs_id_structure=" + URL.encodeComponent(structureId);
133
			}
865 jpm 134
			postDonnees += "&cpr_abreviation=" + URL.encodeComponent(((ProjetListe) Registry.get(RegistreId.PROJETS)).get(str.getIdProjet()).getAbreviation());
602 jp_milcent 135
			postDonnees += "&cs_ce_projet=" + URL.encodeComponent(str.getIdProjet()) +
136
				"&cs_ce_mere=" + URL.encodeComponent(str.getIdMere()) +
137
				"&cs_guid=" + URL.encodeComponent(str.getGuid()) +
138
				"&cs_truk_identifiant_alternatif=" + URL.encodeComponent(str.getIdAlternatif()) +
139
				"&cs_nom=" + URL.encodeComponent(str.getNom()) +
140
				"&cs_truk_nom_alternatif=" + URL.encodeComponent(str.getNomAlternatif()) +
141
				"&cs_ce_type=" + URL.encodeComponent(str.getType()) +
142
				"&cs_ce_truk_type_prive=" + URL.encodeComponent(str.getTypePrive()) +
143
				"&cs_ce_truk_type_public=" + URL.encodeComponent(str.getTypePublic()) +
144
				"&cs_adresse_01=" + URL.encodeComponent(str.getAdresse()) +
145
				"&cs_adresse_02=" + URL.encodeComponent(str.getAdresseComplement()) +
146
				"&cs_date_fondation=" + URL.encodeComponent(str.getDateFondationFormatMysql()) +
147
				"&cs_code_postal=" + URL.encodeComponent(str.getCodePostal()) +
148
				"&cs_ville=" + URL.encodeComponent(str.getVille()) +
149
				"&cs_ce_truk_region=" + URL.encodeComponent(str.getRegion()) +
150
				"&cs_ce_truk_pays=" + URL.encodeComponent(str.getPays()) +
151
				"&cs_truk_telephone=" + URL.encodeComponent(str.getTelephone()) +
152
				"&cs_truk_url=" + URL.encodeComponent(str.getUrl()) +
153
				"&cs_nbre_personne=" + URL.encodeComponent(Integer.toString(str.getNbrePersonne()));
154
		}
155
		if (conservation != null) {
612 jp_milcent 156
			if (structureId != null) {
157
				postDonnees += "&csc_id_structure=" + URL.encodeComponent(structureId);
158
			}
602 jp_milcent 159
			postDonnees += "&csc_mark_formation=" + URL.encodeComponent(conservation.getFormation()) +
160
				"&csc_formation=" + URL.encodeComponent(conservation.getFormationInfo()) +
161
				"&csc_mark_formation_interet=" + URL.encodeComponent(conservation.getFormationInteret()) +
162
				"&csc_truk_stockage_local=" + URL.encodeComponent(conservation.getStockageLocal()) +
163
				"&csc_truk_stockage_meuble=" + URL.encodeComponent(conservation.getStockageMeuble()) +
164
				"&csc_truk_stockage_parametre=" + URL.encodeComponent(conservation.getStockageParametre()) +
165
				"&csc_mark_collection_commune=" + URL.encodeComponent(conservation.getCollectionCommune()) +
166
				"&csc_truk_collection_autre=" + URL.encodeComponent(conservation.getCollectionAutre()) +
167
				"&csc_mark_acces_controle=" + URL.encodeComponent(conservation.getAccesControle()) +
168
				"&csc_mark_restauration=" + URL.encodeComponent(conservation.getRestauration()) +
169
				"&csc_truk_restauration_operation=" + URL.encodeComponent(conservation.getRestaurationOperation()) +
170
				"&csc_ce_materiel_conservation=" + URL.encodeComponent(conservation.getMaterielConservation()) +
171
				"&csc_truk_materiel_autre=" + URL.encodeComponent(conservation.getMaterielAutre()) +
172
				"&csc_mark_traitement=" + URL.encodeComponent(conservation.getTraitement()) +
173
				"&csc_truk_traitement=" + URL.encodeComponent(conservation.getTraitements()) +
174
				"&csc_mark_acquisition_collection=" + URL.encodeComponent(conservation.getAcquisitionCollection()) +
175
				"&csc_mark_acquisition_echantillon=" + URL.encodeComponent(conservation.getAcquisitionEchantillon()) +
176
				"&csc_mark_acquisition_traitement=" + URL.encodeComponent(conservation.getAcquisitionTraitement()) +
177
				"&csc_truk_acquisition_traitement_poison=" + URL.encodeComponent(conservation.getAcquisitionTraitementPoison()) +
178
				"&csc_truk_acquisition_traitement_insecte=" + URL.encodeComponent(conservation.getAcquisitionTraitementInsecte());
179
		}
180
		if (valorisation != null) {
612 jp_milcent 181
			if (structureId != null) {
632 jp_milcent 182
				postDonnees += "&csv_id_structure=" + URL.encodeComponent(structureId);
612 jp_milcent 183
			}
602 jp_milcent 184
			postDonnees += "&csv_mark_action=" + URL.encodeComponent(valorisation.getAction()) +
185
				"&csv_truk_action=" + URL.encodeComponent(valorisation.getActionInfo()) +
186
				"&csv_publication=" + URL.encodeComponent(valorisation.getPublication()) +
187
				"&csv_collection_autre=" + URL.encodeComponent(valorisation.getCollectionAutre()) +
188
				"&csv_mark_action_future=" + URL.encodeComponent(valorisation.getActionFuture()) +
189
				"&csv_action_future=" + URL.encodeComponent(valorisation.getActionFutureInfo()) +
190
				"&csv_mark_recherche=" + URL.encodeComponent(valorisation.getRecherche()) +
191
				"&csv_truk_recherche_provenance=" + URL.encodeComponent(valorisation.getRechercheProvenance()) +
192
				"&csv_truk_recherche_type=" + URL.encodeComponent(valorisation.getRechercheType()) +
193
				"&csv_mark_acces_ss_motif=" + URL.encodeComponent(valorisation.getAccesSansMotif()) +
194
				"&csv_acces_ss_motif=" + URL.encodeComponent(valorisation.getAccesSansMotifInfo()) +
195
				"&csv_mark_visite_avec_motif=" + URL.encodeComponent(valorisation.getVisiteAvecMotif()) +
196
				"&csv_visite_avec_motif=" + URL.encodeComponent(valorisation.getVisiteAvecMotifInfo());
197
		}
198
		return postDonnees;
199
	}
121 jpm 200
}