Subversion Repositories eFlore/Applications.cel

Rev

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

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