Subversion Repositories eFlore/Applications.cel

Rev

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

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