Subversion Repositories eFlore/Applications.coel

Rev

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

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