Subversion Repositories eFlore/Applications.cel

Rev

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

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