Subversion Repositories eFlore/Applications.coel

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
106 aurelien 1
package org.tela_botanica.client.modeles;
2
 
764 jpm 3
import org.tela_botanica.client.Mediateur;
4
import org.tela_botanica.client.RegistreId;
707 jp_milcent 5
import org.tela_botanica.client.http.JsonRestRequestBuilder;
6
import org.tela_botanica.client.http.JsonRestRequestCallback;
106 aurelien 7
import org.tela_botanica.client.interfaces.Rafraichissable;
751 jpm 8
import org.tela_botanica.client.util.UtilDAO;
106 aurelien 9
 
764 jpm 10
import com.extjs.gxt.ui.client.Registry;
238 aurelien 11
import com.google.gwt.core.client.GWT;
106 aurelien 12
import com.google.gwt.json.client.JSONArray;
238 aurelien 13
import com.google.gwt.json.client.JSONObject;
106 aurelien 14
import com.google.gwt.json.client.JSONValue;
15
 
268 jp_milcent 16
public class PublicationAsyncDao {
17
	private static final String SERVICE_NOM = "CoelPublication";
764 jpm 18
 
19
	private String utilisateurId = null;
707 jp_milcent 20
	private Rafraichissable vueARafraichir = null;
106 aurelien 21
 
707 jp_milcent 22
	public PublicationAsyncDao(Rafraichissable vueARafraichirCourrante) {
23
		vueARafraichir = vueARafraichirCourrante ;
764 jpm 24
		utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
106 aurelien 25
	}
26
 
751 jpm 27
	public void selectionner(final String publicationId, String projetId, String nomComplet) {
28
		String[] parametres = {projetId, publicationId, nomComplet};
106 aurelien 29
 
751 jpm 30
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
707 jp_milcent 31
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
32
			@Override
33
			public void surReponse(JSONValue responseValue) {
34
				if (responseValue != null) {
748 jpm 35
					// Si la requête est un succès, réception d'un objet ou d'un tableau
707 jp_milcent 36
					if (responseValue.isObject() != null) {
37
						final JSONObject reponse = responseValue.isObject();
38
						// Transformation du tableau JSON réponse en ListeInstitution
39
						Publication publication = new Publication(reponse);
40
						// et on met à jour le demandeur des données
41
						vueARafraichir.rafraichir(publication);
42
					} else if (responseValue.isArray() != null) {
43
						final JSONArray reponse = responseValue.isArray();
44
						PublicationListe publications = new PublicationListe(reponse);
45
						vueARafraichir.rafraichir(publications);
46
					} else {
723 jp_milcent 47
						GWT.log("La réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
106 aurelien 48
					}
707 jp_milcent 49
				} else {
50
					// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide
51
					if (publicationId == null) {
52
						PublicationListe publications = new PublicationListe(0);
711 aurelien 53
						vueARafraichir.rafraichir(publications);
106 aurelien 54
					}
55
				}
707 jp_milcent 56
			}
57
		});
106 aurelien 58
	}
756 jpm 59
 
764 jpm 60
	public void ajouter(Publication publication) {
756 jpm 61
		String postDonneesEncodees = publication.obtenirChainePOST()+"&cmhl_ce_modifier_par="+utilisateurId;
711 aurelien 62
 
756 jpm 63
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
711 aurelien 64
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
65
			@Override
714 jp_milcent 66
			public void surReponse(JSONValue reponseValeur) {
67
				traiterReponse(reponseValeur, "publication_valide");
711 aurelien 68
			}
756 jpm 69
		}) ;
230 aurelien 70
	}
756 jpm 71
 
764 jpm 72
	public void modifier(Publication publication) {
756 jpm 73
		String[] parametres = {publication.getId()};
74
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
75
 
764 jpm 76
		String postDonneesEncodees = publication.obtenirChainePOST()+"&cmhl_ce_modifier_par="+utilisateurId;;
756 jpm 77
 
711 aurelien 78
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
714 jp_milcent 79
			@Override
80
			public void surReponse(JSONValue reponseValeur) {
81
				traiterReponse(reponseValeur, "publication_valide");
711 aurelien 82
			}
756 jpm 83
		});
230 aurelien 84
	}
85
 
764 jpm 86
	public void supprimer(String publicationsId) {
756 jpm 87
		String[] parametres = {utilisateurId, publicationsId};
88
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
748 jpm 89
		rb.envoyerRequeteSuppression(new JsonRestRequestCallback() {
711 aurelien 90
			@Override
714 jp_milcent 91
			public void surReponse(JSONValue reponseValeur) {
92
				traiterReponse(reponseValeur, "suppression_publication");
711 aurelien 93
			}
94
		});
238 aurelien 95
	}
714 jp_milcent 96
 
97
	private void traiterReponse(JSONValue reponseValeur, String type) {
98
		Information info = new Information(type);
748 jpm 99
		// Si la requête est un succès, réception d'une chaîne
714 jp_milcent 100
		if (reponseValeur.isString() != null) {
736 aurelien 101
			info.setDonnee(reponseValeur.isString().stringValue());
714 jp_milcent 102
		} else {
103
			info.setDeboguage("La réponse n'est pas une chaine JSON.");
104
		}
105
		vueARafraichir.rafraichir(info);
106
	}
238 aurelien 107
 
106 aurelien 108
}