Subversion Repositories eFlore/Applications.coel

Rev

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

Rev Author Line No. Line
147 gduche 1
package org.tela_botanica.client.modeles;
2
 
890 aurelien 3
import org.tela_botanica.client.Mediateur;
4
import org.tela_botanica.client.RegistreId;
751 jpm 5
import org.tela_botanica.client.http.JsonRestRequestBuilder;
6
import org.tela_botanica.client.http.JsonRestRequestCallback;
147 gduche 7
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.util.UtilDAO;
9
 
890 aurelien 10
import com.extjs.gxt.ui.client.Registry;
147 gduche 11
import com.google.gwt.json.client.JSONArray;
879 aurelien 12
import com.google.gwt.json.client.JSONObject;
147 gduche 13
import com.google.gwt.json.client.JSONValue;
14
 
268 jp_milcent 15
public class ProjetAsyncDao {
16
	private static final String SERVICE_NOM = "CoelProjet";
147 gduche 17
 
890 aurelien 18
	String utilisateurId = null;
751 jpm 19
	private Rafraichissable vueARafraichir = null;
147 gduche 20
 
751 jpm 21
	public ProjetAsyncDao(Rafraichissable vueARafraichirCourrante) {
22
		vueARafraichir = vueARafraichirCourrante;
890 aurelien 23
		utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
147 gduche 24
	}
25
 
268 jp_milcent 26
	public void selectionner()	{
751 jpm 27
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM);
28
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
29
			@Override
30
			public void surReponse(JSONValue responseValue) {
31
				ProjetListe projets;
32
				// Si la requête est un succès, reception d'un tableau
33
				if (responseValue.isArray() != null)	{
34
					final JSONArray reponse = responseValue.isArray();
35
					// Transformation du tableau JSON réponse en ListePersonnes
36
					projets = new ProjetListe(reponse);
37
				} else {
38
					projets = new ProjetListe();
147 gduche 39
				}
751 jpm 40
				// Mise à jour du demandeur des données
41
				vueARafraichir.rafraichir(projets);
42
			}
43
		});
147 gduche 44
	}
879 aurelien 45
 
46
	public void selectionnerProjet(String idProjet) {
47
		String[] param = {idProjet};
48
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM,param);
49
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
50
			@Override
51
			public void surReponse(JSONValue responseValue) {
52
				Projet projet;
53
				// Si la requête est un succès, reception d'un tableau
54
				if (responseValue.isObject() != null)	{
55
					final JSONObject reponse = responseValue.isObject();
56
					// Transformation du tableau JSON réponse en ListePersonnes
57
					projet = new Projet(reponse);
58
				} else {
59
					projet = new Projet();
60
				}
61
				// Mise à jour du demandeur des données
62
				vueARafraichir.rafraichir(projet);
63
			}
64
		});
65
 
66
	}
890 aurelien 67
 
68
	public void ajouter(Projet projet) {
69
		String postDonneesEncodees = projet.obtenirChainePOST()+"&cmhl_ce_modifier_par="+utilisateurId;
70
 
71
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
72
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
73
			@Override
74
			public void surReponse(JSONValue reponseValeur) {
75
				traiterReponse(reponseValeur, "projet_valide");
76
			}
77
		}) ;
78
	}
79
 
80
	public void modifier(Projet projet) {
81
		String[] parametres = {projet.getId()};
82
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
83
 
84
		String postDonneesEncodees = projet.obtenirChainePOST()+"&cmhl_ce_modifier_par="+utilisateurId;
85
 
86
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
87
			@Override
88
			public void surReponse(JSONValue reponseValeur) {
89
				traiterReponse(reponseValeur, "projet_valide");
90
			}
91
		});
92
	}
93
 
94
	public void supprimer(String projetsId) {
95
		String[] parametres = {utilisateurId, projetsId};
96
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
97
		rb.envoyerRequeteSuppression(new JsonRestRequestCallback() {
98
			@Override
99
			public void surReponse(JSONValue reponseValeur) {
100
				traiterReponse(reponseValeur, "suppression_projet");
101
			}
102
		});
103
	}
104
 
105
	private void traiterReponse(JSONValue reponseValeur, String type) {
106
		Information info = new Information(type);
107
		// Si la requête est un succès, réception d'une chaîne
108
		if (reponseValeur.isString() != null) {
109
			info.setDonnee(reponseValeur.isString().stringValue());
110
		} else {
111
			info.setDeboguage("La réponse n'est pas une chaine JSON.");
112
		}
113
		vueARafraichir.rafraichir(info);
114
	}
151 jpm 115
}