Subversion Repositories eFlore/Applications.coel

Rev

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

Rev Author Line No. Line
106 aurelien 1
package org.tela_botanica.client.modeles;
2
 
3
import org.tela_botanica.client.RegistreId;
707 jp_milcent 4
import org.tela_botanica.client.http.JsonRestRequestBuilder;
5
import org.tela_botanica.client.http.JsonRestRequestCallback;
106 aurelien 6
import org.tela_botanica.client.interfaces.Rafraichissable;
7
 
8
import com.extjs.gxt.ui.client.Registry;
238 aurelien 9
import com.google.gwt.core.client.GWT;
106 aurelien 10
import com.google.gwt.http.client.Request;
11
import com.google.gwt.http.client.RequestBuilder;
12
import com.google.gwt.http.client.RequestCallback;
13
import com.google.gwt.http.client.RequestException;
14
import com.google.gwt.http.client.Response;
15
import com.google.gwt.json.client.JSONArray;
238 aurelien 16
import com.google.gwt.json.client.JSONObject;
106 aurelien 17
import com.google.gwt.json.client.JSONParser;
18
import com.google.gwt.json.client.JSONValue;
19
 
268 jp_milcent 20
public class PublicationAsyncDao {
21
	private static final String SERVICE_NOM = "CoelPublication";
22
 
106 aurelien 23
	private PublicationListe publications = null;
707 jp_milcent 24
	private Rafraichissable vueARafraichir = null;
106 aurelien 25
 
707 jp_milcent 26
	public PublicationAsyncDao(Rafraichissable vueARafraichirCourrante) {
27
		vueARafraichir = vueARafraichirCourrante ;
106 aurelien 28
	}
29
 
707 jp_milcent 30
	public void selectionnerPublication(final String publicationId, String projetId, String nomComplet) {
31
		// Ajout des paramètres et données à selectionner dans l'URL
32
		final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
33
			SERVICE_NOM + "/" +
34
			(projetId == null ? "*" : projetId) + "/" +
35
			(publicationId == null ? "*" : publicationId) + "/" +
36
			(nomComplet == null ? "*" : nomComplet) + "/" +
37
			"";
106 aurelien 38
 
707 jp_milcent 39
		JsonRestRequestBuilder rb = new JsonRestRequestBuilder(RequestBuilder.GET, url);
40
 
41
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
42
			@Override
43
			public void surReponse(JSONValue responseValue) {
44
				if (responseValue != null) {
45
					// Si la requête est un succès, reception d'un objet ou d'un tableau
46
					if (responseValue.isObject() != null) {
47
						final JSONObject reponse = responseValue.isObject();
48
						// Transformation du tableau JSON réponse en ListeInstitution
49
						Publication publication = new Publication(reponse);
50
						// et on met à jour le demandeur des données
51
						vueARafraichir.rafraichir(publication);
52
					} else if (responseValue.isArray() != null) {
53
						final JSONArray reponse = responseValue.isArray();
54
						PublicationListe publications = new PublicationListe(reponse);
55
						vueARafraichir.rafraichir(publications);
56
					} else {
57
						GWT.log(url+"\n\tLa réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
106 aurelien 58
					}
707 jp_milcent 59
				} else {
60
					// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide
61
					if (publicationId == null) {
62
						PublicationListe publications = new PublicationListe(0);
63
						vueARafraichir.rafraichir(publications);
106 aurelien 64
					}
65
				}
707 jp_milcent 66
			}
67
		});
106 aurelien 68
	}
230 aurelien 69
 
277 jp_milcent 70
	public void modifierPublication(String utilisateurId, Publication pubAModifier) {
230 aurelien 71
		// Demande de toutes les structures
72
    	String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
268 jp_milcent 73
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url+SERVICE_NOM+"/"+pubAModifier.getId());
106 aurelien 74
 
230 aurelien 75
		try {
264 jp_milcent 76
			rb.sendRequest(pubAModifier.toReqString()+"&cmhl_ce_modifier_par="+utilisateurId, new RequestCallback() {
230 aurelien 77
 
78
				public void onError(Request request, Throwable exception) {
79
					// TODO Auto-generated method stub
80
 
81
				}
82
 
83
				public void onResponseReceived(Request request, Response response) {
84
					Boolean defaut = true;
85
					if (response.getText().length() != 0 && response.getText() != null) {
86
						final JSONValue responseValue = JSONParser.parse(response.getText());
87
 
88
						// Si la requête est un succès, reception d'un tableau
89
						if (responseValue.isArray() != null) {
238 aurelien 90
							final JSONObject reponse = responseValue.isObject();
230 aurelien 91
							// Transformation du tableau JSON réponse en ListeInstitution
92
							publications = new PublicationListe(reponse);
93
							// et on met à jour le demandeur des données
707 jp_milcent 94
							vueARafraichir.rafraichir(publications);
230 aurelien 95
							// Tout c'est bien déroulé, on courcircuite l'affichage par défaut
96
							defaut = false;
97
						}
98
					}
99
					if (defaut == true) {
100
						publications = new PublicationListe(0);
707 jp_milcent 101
						vueARafraichir.rafraichir(publications);
230 aurelien 102
					}
103
				}
104
			});
105
		} catch (RequestException e) {
106
			e.printStackTrace();
107
		}
108
	}
109
 
277 jp_milcent 110
	public void ajouterPublication(String utilisateurId, Publication pubAModifier) {
230 aurelien 111
		String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
268 jp_milcent 112
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url+SERVICE_NOM+"/");
230 aurelien 113
 
114
		try {
264 jp_milcent 115
			rb.sendRequest(pubAModifier.toReqString()+"&cmhl_ce_modifier_par="+utilisateurId, new RequestCallback() {
230 aurelien 116
 
117
				public void onError(Request request, Throwable exception) {
118
					// TODO Auto-generated method stub
119
 
120
				}
121
 
122
				public void onResponseReceived(Request request, Response response) {
123
					Boolean defaut = true;
124
					if (response.getText().length() != 0 && response.getText() != null) {
125
						final JSONValue responseValue = JSONParser.parse(response.getText());
126
 
127
						// Si la requête est un succès, reception d'un tableau
238 aurelien 128
						if (responseValue.isObject() != null) {
129
							final JSONObject reponse = responseValue.isObject();
230 aurelien 130
							// Transformation du tableau JSON réponse en ListeInstitution
131
							publications = new PublicationListe(reponse);
132
							// et on met à jour le demandeur des données
707 jp_milcent 133
							vueARafraichir.rafraichir(publications);
230 aurelien 134
							// Tout c'est bien déroulé, on courcircuite l'affichage par défaut
135
							defaut = false;
136
						}
137
					}
138
					if (defaut == true) {
139
						publications = new PublicationListe(0);
707 jp_milcent 140
						vueARafraichir.rafraichir(publications);
230 aurelien 141
					}
142
				}
143
			});
144
		} catch (RequestException e) {
145
			e.printStackTrace();
146
		}
147
 
148
	}
149
 
277 jp_milcent 150
	public void supprimerPublication(String utilisateurId, String idPubs) {
238 aurelien 151
		String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
268 jp_milcent 152
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url+SERVICE_NOM+"/"+utilisateurId+"/"+idPubs);
238 aurelien 153
 
154
		try {
155
			rb.sendRequest("action=DELETE", new RequestCallback() {
156
 
157
				public void onError(Request request, Throwable exception) {
158
 
159
					GWT.log("Erreur dans la requête de suppression", exception);
160
 
161
				}
162
 
163
				public void onResponseReceived(Request request, Response response) {
164
					Boolean defaut = true;
165
					if (response.getText().length() != 0 && response.getText() != null) {
166
						final JSONValue responseValue = JSONParser.parse(response.getText());
167
 
168
						// Si la requête est un succès, reception d'un tableau
169
						if (responseValue.isObject() != null) {
170
							final JSONObject reponse = responseValue.isObject();
171
							// Transformation du tableau JSON réponse en ListeInstitution
172
							publications = new PublicationListe(reponse);
173
							// et on met à jour le demandeur des données
707 jp_milcent 174
							vueARafraichir.rafraichir(publications);
238 aurelien 175
							// Tout c'est bien déroulé, on courcircuite l'affichage par défaut
176
							defaut = false;
177
						}
178
					}
179
					if (defaut == true) {
180
						publications = new PublicationListe(0);
707 jp_milcent 181
						vueARafraichir.rafraichir(publications);
238 aurelien 182
					}
183
				}
184
			});
185
		} catch (RequestException e) {
186
			e.printStackTrace();
187
		}
188
 
189
	}
190
 
106 aurelien 191
}