Subversion Repositories eFlore/Applications.coel

Rev

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