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
 
593 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;
748 jpm 7
import org.tela_botanica.client.http.JsonRestRequestBuilder;
8
import org.tela_botanica.client.http.JsonRestRequestCallback;
126 gduche 9
import org.tela_botanica.client.interfaces.Rafraichissable;
146 gduche 10
import org.tela_botanica.client.util.UtilDAO;
126 gduche 11
import com.extjs.gxt.ui.client.Registry;
12
import com.google.gwt.core.client.GWT;
13
import com.google.gwt.json.client.JSONArray;
14
import com.google.gwt.json.client.JSONValue;
15
 
268 jp_milcent 16
public class PersonneAsyncDao {
17
	private static final String SERVICE_NOM = "CoelPersonne";
126 gduche 18
 
748 jpm 19
	private String utilisateurId = null;
277 jp_milcent 20
	private Rafraichissable vueARafraichir = null;
126 gduche 21
 
277 jp_milcent 22
	public PersonneAsyncDao(Rafraichissable vue) {
23
		vueARafraichir = vue;
748 jpm 24
		utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
126 gduche 25
	}
268 jp_milcent 26
 
654 gduche 27
	public void selectionner(String personneId, String projetId, String nomComplet, final int pageCourante, final int nbElements) {
748 jpm 28
		String[] parametres = {personneId, projetId, nomComplet};
415 gduche 29
 
748 jpm 30
		HashMap<String, String> restrictions = new HashMap<String, String>();
31
		restrictions.put("start", String.valueOf(pageCourante));
593 gduche 32
		if (nbElements != -1)	{
748 jpm 33
			restrictions.put("limit", String.valueOf(nbElements));
593 gduche 34
		}
35
 
755 aurelien 36
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions);
748 jpm 37
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
38
			@Override
39
			public void surReponse(JSONValue responseValue) {
40
				// Si la requête est un succès, réception d'un tableau
41
				if (responseValue.isArray() != null) {
42
					final JSONArray reponse = responseValue.isArray();
43
 
44
					// Transformation du tableau JSON réponse en ListeInstitution
45
					Information info = new Information("liste_personne");
46
					PersonneListe personnes;
47
					if (reponse.get(0).isArray() != null)	{
48
						personnes = new PersonneListe(reponse);
241 jp_milcent 49
					} else {
748 jpm 50
						personnes = new PersonneListe(reponse.get(1).isArray(), reponse.get(0).isNumber(), vueARafraichir);
241 jp_milcent 51
					}
748 jpm 52
					personnes.setTaillePage(nbElements);
53
					personnes.setPageCourante(pageCourante);
54
					info.setDonnee(0, personnes);
55
 
56
					// et on met à jour le demandeur des données
57
					vueARafraichir.rafraichir(info);
58
				} else {
59
					GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un tableau JSON et vaut : "+responseValue.toString(), null);
241 jp_milcent 60
				}
748 jpm 61
			}
62
		});
126 gduche 63
	}
241 jp_milcent 64
 
748 jpm 65
	public void ajouter(Personne personne) {
66
		String postDonneesEncodees = personne.obtenirChainePOST();
67
		postDonneesEncodees += "&cmhl_ce_modifier_par=" + utilisateurId;
432 gduche 68
 
748 jpm 69
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
70
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
71
			@Override
72
			public void surReponse(JSONValue responseValue) {
73
				if (responseValue.isString() != null) {
772 jpm 74
					Information info = new Information("ajout_personne");
884 jpm 75
					String structureIdOuMessage = responseValue.isString().stringValue();
76
					if (structureIdOuMessage.matches("^[0-9]+$")) {
77
						info.setDonnee(structureIdOuMessage);
78
					} else {
79
						info.setMessage(structureIdOuMessage);
80
					}
748 jpm 81
					vueARafraichir.rafraichir(info);
82
				} else {
83
					GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
432 gduche 84
				}
748 jpm 85
			}
86
		});
432 gduche 87
	}
88
 
748 jpm 89
	public void modifier(Personne personne) {
90
		String postDonneesEncodees = personne.obtenirChainePOST();
91
		postDonneesEncodees += "&cmhl_ce_modifier_par=" + utilisateurId;
775 jpm 92
		GWT.log(postDonneesEncodees, null);
748 jpm 93
		String[] parametres = {personne.getId()};
755 aurelien 94
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
748 jpm 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) {
772 jpm 100
					Information info = new Information("modification_personne");
101
					info.setMessage(responseValue.isString().stringValue());
748 jpm 102
					vueARafraichir.rafraichir(info);
103
				} else {
104
					GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
387 gduche 105
				}
748 jpm 106
			}
107
		});
387 gduche 108
	}
751 jpm 109
 
772 jpm 110
	public void supprimer(String personnesId) {
111
		String[] parametres = {utilisateurId, personnesId};
755 aurelien 112
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
751 jpm 113
		rb.envoyerRequeteSuppression(new JsonRestRequestCallback() {
114
			@Override
115
			public void surReponse(JSONValue responseValue) {
116
				if (responseValue.isString() != null) {
772 jpm 117
					Information info = new Information("suppression_personne");
118
					info.setMessage(responseValue.isString().stringValue());
751 jpm 119
					vueARafraichir.rafraichir(info);
120
				} else {
121
					GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
122
				}
123
			}
124
		});
125
	}
126 gduche 126
 
127
}