Subversion Repositories eFlore/Applications.cel

Rev

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