Subversion Repositories eFlore/Applications.coel

Rev

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

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