Subversion Repositories eFlore/Applications.coel

Rev

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