Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 116 Rev 140
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, Configuration.getServiceBaseUrl()
50
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl()
51
				+ "/InventoryKeyWordList/" + iModele.getIdentifiant());
51
				+ "/InventoryKeyWordList/" + iModele.getIdentifiant());
52
 
52
 
53
		try {
53
		try {
54
			rb.sendRequest(null, new RequestCallback() {
54
			rb.sendRequest(null, new RequestCallback() {
55
 
55
 
56
				public void onError(Request request, Throwable exception) {
56
				public void onError(Request request, Throwable exception) {
57
					// TODO Auto-generated method stub
57
					// TODO Auto-generated method stub
58
 
58
 
59
				}
59
				}
60
 
60
 
61
				public void onResponseReceived(Request request,
61
				public void onResponseReceived(Request request,
62
						Response response) {
62
						Response response) {
63
 
63
 
64
					final JSONValue responseValue = JSONParser.parse(response
64
					final JSONValue responseValue = JSONParser.parse(response
65
							.getText());
65
							.getText());
66
					// 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
67
					if (responseValue.isArray() != null) {
67
					if (responseValue.isArray() != null) {
68
 
68
 
69
						final JSONArray reponse = responseValue.isArray();
69
						final JSONArray reponse = responseValue.isArray();
70
						// et on met à jour le demandeur des données
70
						// et on met à jour le demandeur des données
71
						r.rafraichir(reponse, true);
71
						r.rafraichir(reponse, true);
72
					}
72
					}
73
 
73
 
74
				}
74
				}
75
 
75
 
76
			});
76
			});
77
		} catch (RequestException e) {
77
		} catch (RequestException e) {
78
			// TODO Auto-generated catch block
78
			// TODO Auto-generated catch block
79
			e.printStackTrace();
79
			e.printStackTrace();
80
		}
80
		}
81
	}
81
	}
82
 
82
 
83
	/**
83
	/**
84
	 * Envoie requete au serveur jrest pour ajouter un mot clé
84
	 * Envoie requete au serveur jrest pour ajouter un mot clé
85
	 * 
85
	 * 
86
	 * @param motcle
86
	 * @param motcle
87
	 *            le mots clés à ajouter avec son parent et son identifiant
87
	 *            le mots clés à ajouter avec son parent et son identifiant
88
	 */
88
	 */
89
	public void ajouterBaseDeDonnees(String motcle) {
89
	public void ajouterBaseDeDonnees(String motcle) {
90
		if (!motcle.equals("")) {
90
		if (!motcle.equals("")) {
91
			String postData = motcle;
91
			String postData = motcle;
92
 
92
 
93
			// on fait un post asynchrone
93
			// on fait un post asynchrone
94
			RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
94
			RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
95
					+ "/InventoryKeyWordList/");
95
					+ "/InventoryKeyWordList/");
96
			try {
96
			try {
97
				rb.sendRequest(postData, new RequestCallback() {
97
				rb.sendRequest(postData, new RequestCallback() {
98
 
98
 
99
					public void onError(Request request, Throwable exception) {
99
					public void onError(Request request, Throwable exception) {
100
						// TODO Auto-generated method stub
100
						// TODO Auto-generated method stub
101
 
101
 
102
					}
102
					}
103
 
103
 
104
					public void onResponseReceived(Request request,
104
					public void onResponseReceived(Request request,
105
							Response response) {
105
							Response response) {
106
 
106
 
107
						// si on reçoit une erreur d'ajout, on affiche un
107
						// si on reçoit une erreur d'ajout, on affiche un
108
						// message d'erreur
108
						// message d'erreur
109
						if (response.getText().equals("ERROR")) {
109
						if (response.getText().equals("ERROR")) {
110
							Window
110
							Window
111
									.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,"
112
											+ "nous vous invitons à recharger la page. ");
112
											+ "nous vous invitons à recharger la page. ");
113
						}
113
						}
114
 
114
 
115
					}
115
					}
116
 
116
 
117
				});
117
				});
118
			} catch (RequestException e) {
118
			} catch (RequestException e) {
119
				// TODO Auto-generated catch block
119
				// TODO Auto-generated catch block
120
				e.printStackTrace();
120
				e.printStackTrace();
121
			}
121
			}
122
		}
122
		}
123
	}
123
	}
124
 
124
 
125
	/**
125
	/**
126
	 * Envoie requete au serveur jrest pour supprimer un mot clé
126
	 * Envoie requete au serveur jrest pour supprimer un mot clé
127
	 * 
127
	 * 
128
	 * @param motcle
128
	 * @param motcle
129
	 *            le mots clés à supprimer
129
	 *            le mots clés à supprimer
130
	 */
130
	 */
131
	public void supprimerBaseDeDonnees(String motcle) {
131
	public void supprimerBaseDeDonnees(String motcle) {
132
		if (!motcle.equals("")) {
132
		if (!motcle.equals("")) {
133
			String postData = "";
133
			String postData = "";
134
			postData += "&action=DELETE";
134
			postData += "&action=DELETE";
135
 
135
 
136
			RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, iModele
-
 
137
					.getConfig().getServiceBaseUrl()
136
			RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
138
					+ "/InventoryKeyWordList/"
137
					+ "/InventoryKeyWordList/"
139
					+ iModele.getIdentifiant()
138
					+ iModele.getIdentifiant()
140
					+ "/"
139
					+ "/"
141
					+ motcle);
140
					+ motcle);
142
 
141
 
143
			try {
142
			try {
144
				rb.sendRequest(postData, new RequestCallback() {
143
				rb.sendRequest(postData, new RequestCallback() {
145
 
144
 
146
					public void onError(Request request, Throwable exception) {
145
					public void onError(Request request, Throwable exception) {
147
						// TODO Auto-generated method stub
146
						// TODO Auto-generated method stub
148
 
147
 
149
					}
148
					}
150
 
149
 
151
					public void onResponseReceived(Request request,
150
					public void onResponseReceived(Request request,
152
							Response response) {
151
							Response response) {
153
						if (response.equals("ERROR")) {
152
						if (response.equals("ERROR")) {
154
							Window
153
							Window
155
									.alert("Attention, la base de données des mots clés n'est plus synchronisée avec l'application,"
154
									.alert("Attention, la base de données des mots clés n'est plus synchronisée avec l'application,"
156
											+ "nous vous invitons à recharger la page. ");
155
											+ "nous vous invitons à recharger la page. ");
157
						}
156
						}
158
					}
157
					}
159
				});
158
				});
160
 
159
 
161
			} catch (RequestException e) {
160
			} catch (RequestException e) {
162
				// TODO Auto-generated catch block
161
				// TODO Auto-generated catch block
163
				e.printStackTrace();
162
				e.printStackTrace();
164
			}
163
			}
165
		}
164
		}
166
	}
165
	}
167
 
166
 
168
	/**
167
	/**
169
	 * Envoie requete au serveur jrest pour modifier un mot clé
168
	 * Envoie requete au serveur jrest pour modifier un mot clé
170
	 * 
169
	 * 
171
	 * @param motcle
170
	 * @param motcle
172
	 *            le mots clés à modifier avec son parent et son identifiant
171
	 *            le mots clés à modifier avec son parent et son identifiant
173
	 */
172
	 */
174
	public void modifierBaseDeDonnees(String motcle) {
173
	public void modifierBaseDeDonnees(String motcle) {
175
 
174
 
176
		if (!motcle.equals("")) {
175
		if (!motcle.equals("")) {
177
 
176
 
178
			String postData = "";
177
			String postData = "";
179
			postData += "&action=modification" + motcle;
178
			postData += "&action=modification" + motcle;
180
 
179
 
181
			RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
180
			RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
182
					+ "/InventoryKeyWordList/" + iModele.getIdentifiant());
181
					+ "/InventoryKeyWordList/" + iModele.getIdentifiant());
183
			try {
182
			try {
184
				rb.sendRequest(postData, new RequestCallback() {
183
				rb.sendRequest(postData, new RequestCallback() {
185
 
184
 
186
					public void onError(Request request, Throwable exception) {
185
					public void onError(Request request, Throwable exception) {
187
						// TODO Auto-generated method stub
186
						// TODO Auto-generated method stub
188
 
187
 
189
					}
188
					}
190
 
189
 
191
					public void onResponseReceived(Request request,
190
					public void onResponseReceived(Request request,
192
							Response response) {
191
							Response response) {
193
						// TODO Auto-generated method stub
192
						// TODO Auto-generated method stub
194
 
193
 
195
					}
194
					}
196
 
195
 
197
				});
196
				});
198
			} catch (RequestException e) {
197
			} catch (RequestException e) {
199
				// TODO Auto-generated catch block
198
				// TODO Auto-generated catch block
200
				e.printStackTrace();
199
				e.printStackTrace();
201
			}
200
			}
202
		}
201
		}
203
	}
202
	}
204
 
203
 
205
	/**
204
	/**
206
	 * Envoie requete au serveur jrest pour modifier un mot clé
205
	 * Envoie requete au serveur jrest pour modifier un mot clé
207
	 * 
206
	 * 
208
	 * @param motcle
207
	 * @param motcle
209
	 *            le mots clés à ajouter avec son ancien parent, son nouveau et
208
	 *            le mots clés à ajouter avec son ancien parent, son nouveau et
210
	 *            son identifiant
209
	 *            son identifiant
211
	 */
210
	 */
212
	public void deplacerBaseDeDonnees(String motcle) {
211
	public void deplacerBaseDeDonnees(String motcle) {
213
 
212
 
214
		if (!motcle.equals("")) {
213
		if (!motcle.equals("")) {
215
 
214
 
216
			String postData = "";
215
			String postData = "";
217
			postData += "&action=deplacement" + motcle;
216
			postData += "&action=deplacement" + motcle;
218
 
217
 
219
			RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
218
			RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
220
					+ "/InventoryKeyWordList/" + iModele.getIdentifiant());
219
					+ "/InventoryKeyWordList/" + iModele.getIdentifiant());
221
			try {
220
			try {
222
				rb.sendRequest(postData, new RequestCallback() {
221
				rb.sendRequest(postData, new RequestCallback() {
223
 
222
 
224
					public void onError(Request request, Throwable exception) {
223
					public void onError(Request request, Throwable exception) {
225
						// TODO Auto-generated method stub
224
						// TODO Auto-generated method stub
226
 
225
 
227
					}
226
					}
228
 
227
 
229
					public void onResponseReceived(Request request,
228
					public void onResponseReceived(Request request,
230
							Response response) {
229
							Response response) {
231
						// TODO Auto-generated method stub
230
						// TODO Auto-generated method stub
232
 
231
 
233
					}
232
					}
234
 
233
 
235
				});
234
				});
236
			} catch (RequestException e) {
235
			} catch (RequestException e) {
237
				// TODO Auto-generated catch block
236
				// TODO Auto-generated catch block
238
				e.printStackTrace();
237
				e.printStackTrace();
239
			}
238
			}
240
		}
239
		}
241
 
240
 
242
	}
241
	}
243
 
242
 
244
}
243
}