Subversion Repositories eFlore/Applications.cel

Rev

Rev 1009 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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