Subversion Repositories eFlore/Applications.cel

Rev

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

Rev Author Line No. Line
989 aurelien 1
package org.tela_botanica.client.modeles.dao;
2 aperonnet 2
 
3
import org.tela_botanica.client.interfaces.Rafraichissable;
989 aurelien 4
import org.tela_botanica.client.modeles.objets.Configuration;
5
import org.tela_botanica.client.modeles.objets.Utilisateur;
157 aurelien 6
 
2 aperonnet 7
import com.google.gwt.http.client.Request;
8
import com.google.gwt.http.client.RequestBuilder;
9
import com.google.gwt.http.client.RequestCallback;
10
import com.google.gwt.http.client.RequestException;
11
import com.google.gwt.http.client.Response;
12
import com.google.gwt.json.client.JSONArray;
13
import com.google.gwt.json.client.JSONParser;
14
import com.google.gwt.json.client.JSONValue;
15
import com.google.gwt.user.client.Window;
16
 
17
/**
18
 * DAO d'accès à l'arbre de mots clés
5 aperonnet 19
 *
2 aperonnet 20
 * @author aurelien
5 aperonnet 21
 *
2 aperonnet 22
 */
23
public class MotsClesAsynchroneDAO {
157 aurelien 24
 
25
	private String identifiant = "" ;
318 aurelien 26
	private String mode = "";
5 aperonnet 27
 
1009 aurelien 28
	public MotsClesAsynchroneDAO() {
318 aurelien 29
		mode = "images";
937 aurelien 30
		identifiant = Utilisateur.getInstance().getIdentifiantUtilisateurConsulte();
157 aurelien 31
	}
5 aperonnet 32
 
2 aperonnet 33
	/**
34
	 * Envoie une requete au serveur jrest pour obtenir l'arbre des mots clés
5 aperonnet 35
	 *
36
	 * @param r
37
	 *            le rafraichissable qui demande les données
2 aperonnet 38
	 */
5 aperonnet 39
	public void obtenirListeMotsCles(final Rafraichissable r) {
2 aperonnet 40
		// on demande tous les mots clés associés à l'utilisateur
116 aurelien 41
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl()
318 aurelien 42
				+ "/InventoryKeyWordList/"+mode+"/"+identifiant+"/");
5 aperonnet 43
 
2 aperonnet 44
		try {
45
			rb.sendRequest(null, new RequestCallback() {
46
 
47
				public void onError(Request request, Throwable exception) {
48
					// TODO Auto-generated method stub
5 aperonnet 49
 
2 aperonnet 50
				}
51
 
5 aperonnet 52
				public void onResponseReceived(Request request,
53
						Response response) {
318 aurelien 54
 
5 aperonnet 55
					final JSONValue responseValue = JSONParser.parse(response
56
							.getText());
318 aurelien 57
 
2 aperonnet 58
					// si la requête est un succès on reçoit un tableau
59
					if (responseValue.isArray() != null) {
5 aperonnet 60
 
2 aperonnet 61
						final JSONArray reponse = responseValue.isArray();
5 aperonnet 62
						// et on met à jour le demandeur des données
63
						r.rafraichir(reponse, true);
341 aurelien 64
					} else  {
65
						JSONArray vide = new JSONArray();
66
						r.rafraichir(vide, true);
5 aperonnet 67
					}
68
 
2 aperonnet 69
				}
5 aperonnet 70
 
71
			});
2 aperonnet 72
		} catch (RequestException e) {
73
			// TODO Auto-generated catch block
74
			e.printStackTrace();
75
		}
76
	}
5 aperonnet 77
 
2 aperonnet 78
	/**
79
	 * Envoie requete au serveur jrest pour ajouter un mot clé
5 aperonnet 80
	 *
81
	 * @param motcle
82
	 *            le mots clés à ajouter avec son parent et son identifiant
2 aperonnet 83
	 */
5 aperonnet 84
	public void ajouterBaseDeDonnees(String motcle) {
85
		if (!motcle.equals("")) {
318 aurelien 86
			String postData = motcle+"&mode="+mode;
5 aperonnet 87
 
2 aperonnet 88
			// on fait un post asynchrone
116 aurelien 89
			RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
5 aperonnet 90
					+ "/InventoryKeyWordList/");
2 aperonnet 91
			try {
92
				rb.sendRequest(postData, new RequestCallback() {
93
 
94
					public void onError(Request request, Throwable exception) {
95
						// TODO Auto-generated method stub
5 aperonnet 96
 
2 aperonnet 97
					}
98
 
99
					public void onResponseReceived(Request request,
100
							Response response) {
1009 aurelien 101
 
102
						// TODO: les messages ne devraient pas être affichés ici
103
						// mais l'architecture par très malléable complique les choses
104
						if (response.getText().equals("OK")) {
105
							com.google.gwt.user.client.Window
106
							.alert("Le mot clé a été ajouté");
107
							return;
108
						} else {
109
							com.google.gwt.user.client.Window
110
									.alert("Problème lors de la mise à jour des données, le serveur a répondu "+response.getText());
2 aperonnet 111
						}
112
					}
5 aperonnet 113
 
114
				});
2 aperonnet 115
			} catch (RequestException e) {
116
				// TODO Auto-generated catch block
117
				e.printStackTrace();
118
			}
119
		}
5 aperonnet 120
	}
121
 
2 aperonnet 122
	/**
123
	 * Envoie requete au serveur jrest pour supprimer un mot clé
5 aperonnet 124
	 *
125
	 * @param motcle
126
	 *            le mots clés à supprimer
2 aperonnet 127
	 */
5 aperonnet 128
	public void supprimerBaseDeDonnees(String motcle) {
129
		if (!motcle.equals("")) {
130
			String postData = "";
131
			postData += "&action=DELETE";
2 aperonnet 132
 
140 aurelien 133
			RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
5 aperonnet 134
					+ "/InventoryKeyWordList/"
341 aurelien 135
					+ mode+"/"
157 aurelien 136
					+ identifiant
5 aperonnet 137
					+ "/"
138
					+ motcle);
139
 
140
			try {
141
				rb.sendRequest(postData, new RequestCallback() {
142
 
143
					public void onError(Request request, Throwable exception) {
144
						// TODO Auto-generated method stub
145
 
146
					}
147
 
148
					public void onResponseReceived(Request request,
149
							Response response) {
1009 aurelien 150
						// TODO: les messages ne devraient pas être affichés ici
151
						// mais l'architecture par très malléable complique les choses
152
						if (response.getText().equals("OK")) {
153
							com.google.gwt.user.client.Window
154
							.alert("Le mot clé a été supprimé");
155
							return;
156
						} else {
157
							com.google.gwt.user.client.Window
158
									.alert("Problème lors de la mise à jour des données, le serveur a répondu "+response.getText());
2 aperonnet 159
						}
5 aperonnet 160
					}
161
				});
2 aperonnet 162
 
5 aperonnet 163
			} catch (RequestException e) {
164
				// TODO Auto-generated catch block
165
				e.printStackTrace();
166
			}
2 aperonnet 167
		}
168
	}
169
 
170
	/**
171
	 * Envoie requete au serveur jrest pour modifier un mot clé
5 aperonnet 172
	 *
173
	 * @param motcle
174
	 *            le mots clés à modifier avec son parent et son identifiant
2 aperonnet 175
	 */
176
	public void modifierBaseDeDonnees(String motcle) {
177
 
5 aperonnet 178
		if (!motcle.equals("")) {
179
 
180
			String postData = "";
318 aurelien 181
			postData += "&action=modification"+motcle;
5 aperonnet 182
 
116 aurelien 183
			RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
318 aurelien 184
					+ "/InventoryKeyWordList/"+mode+"/"+ identifiant);
2 aperonnet 185
			try {
186
				rb.sendRequest(postData, new RequestCallback() {
5 aperonnet 187
 
2 aperonnet 188
					public void onError(Request request, Throwable exception) {
189
						// TODO Auto-generated method stub
5 aperonnet 190
 
2 aperonnet 191
					}
5 aperonnet 192
 
193
					public void onResponseReceived(Request request,
194
							Response response) {
1009 aurelien 195
						// TODO: les messages ne devraient pas être affichés ici
196
						// mais l'architecture par très malléable complique les choses
197
						if (response.getText().equals("OK")) {
198
							com.google.gwt.user.client.Window
199
							.alert("Le mot clé a été renommé");
200
							return;
201
						} else {
202
							com.google.gwt.user.client.Window
203
									.alert("Problème lors de la mise à jour des données, le serveur a répondu "+response.getText());
204
						}
2 aperonnet 205
					}
5 aperonnet 206
 
2 aperonnet 207
				});
208
			} catch (RequestException e) {
209
				// TODO Auto-generated catch block
210
				e.printStackTrace();
211
			}
212
		}
213
	}
5 aperonnet 214
 
2 aperonnet 215
	/**
216
	 * Envoie requete au serveur jrest pour modifier un mot clé
5 aperonnet 217
	 *
218
	 * @param motcle
219
	 *            le mots clés à ajouter avec son ancien parent, son nouveau et
220
	 *            son identifiant
2 aperonnet 221
	 */
222
	public void deplacerBaseDeDonnees(String motcle) {
223
 
5 aperonnet 224
		if (!motcle.equals("")) {
225
 
226
			String postData = "";
318 aurelien 227
			postData += "&action=deplacement"+motcle;
5 aperonnet 228
 
116 aurelien 229
			RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
318 aurelien 230
					+ "/InventoryKeyWordList/"+mode+"/"+identifiant);
2 aperonnet 231
			try {
232
				rb.sendRequest(postData, new RequestCallback() {
5 aperonnet 233
 
2 aperonnet 234
					public void onError(Request request, Throwable exception) {
235
						// TODO Auto-generated method stub
5 aperonnet 236
 
2 aperonnet 237
					}
5 aperonnet 238
 
239
					public void onResponseReceived(Request request,
240
							Response response) {
2 aperonnet 241
						// TODO Auto-generated method stub
5 aperonnet 242
 
2 aperonnet 243
					}
5 aperonnet 244
 
2 aperonnet 245
				});
246
			} catch (RequestException e) {
247
				// TODO Auto-generated catch block
248
				e.printStackTrace();
249
			}
250
		}
251
 
5 aperonnet 252
	}
253
 
2 aperonnet 254
}