Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 971 Rev 973
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.ObservationModele;
5
import org.tela_botanica.client.observation.ObservationModele;
6
import org.tela_botanica.client.util.Util;
6
import org.tela_botanica.client.util.Util;
7
 
7
 
8
import com.google.gwt.core.client.GWT;
8
import com.google.gwt.core.client.GWT;
9
import com.google.gwt.http.client.Request;
9
import com.google.gwt.http.client.Request;
10
import com.google.gwt.http.client.RequestBuilder;
10
import com.google.gwt.http.client.RequestBuilder;
11
import com.google.gwt.http.client.RequestCallback;
11
import com.google.gwt.http.client.RequestCallback;
12
import com.google.gwt.http.client.RequestException;
12
import com.google.gwt.http.client.RequestException;
13
import com.google.gwt.http.client.Response;
13
import com.google.gwt.http.client.Response;
14
import com.google.gwt.json.client.JSONArray;
14
import com.google.gwt.json.client.JSONArray;
-
 
15
import com.google.gwt.json.client.JSONObject;
15
import com.google.gwt.json.client.JSONParser;
16
import com.google.gwt.json.client.JSONParser;
16
import com.google.gwt.json.client.JSONString;
17
import com.google.gwt.json.client.JSONString;
17
import com.google.gwt.json.client.JSONValue;
18
import com.google.gwt.json.client.JSONValue;
18
import com.google.gwt.user.client.Window;
19
import com.google.gwt.user.client.Window;
19
 
20
 
20
public class LienImageAsynchroneDAO {
21
public class LienImageAsynchroneDAO {
21
 
22
 
22
	private ImageModele iModele = null ;
23
	private ImageModele iModele = null ;
23
	
24
	
24
	private ObservationModele oModele = null ;
25
	private ObservationModele oModele = null ;
25
	
26
	
26
	private Rafraichissable raf = null ;
27
	private Rafraichissable raf = null ;
27
	
28
	
28
	public LienImageAsynchroneDAO(ImageModele im) {
29
	public LienImageAsynchroneDAO(ImageModele im) {
29
		iModele = im;
30
		iModele = im;
30
	}
31
	}
31
	
32
	
32
	public LienImageAsynchroneDAO(ObservationModele om) {
33
	public LienImageAsynchroneDAO(ObservationModele om) {
33
		oModele = om;
34
		oModele = om;
34
	}
35
	}
35
 
36
 
36
	/**
37
	/**
37
	 * Setteur pour le modèle
38
	 * Setteur pour le modèle
38
	 * 
39
	 * 
39
	 * @param im
40
	 * @param im
40
	 *            le modèle à associer
41
	 *            le modèle à associer
41
	 */
42
	 */
42
	public void setIModele(ImageModele im) {
43
	public void setIModele(ImageModele im) {
43
		iModele = im;
44
		iModele = im;
44
	}
45
	}
45
	
46
	
46
	public void obtenirLiaisonsImagesObservations(Rafraichissable r,String id)
47
	public void obtenirLiaisonsImagesObservations(Rafraichissable r,String id)
47
	{
48
	{
48
		String paramGet = "&id_image="+id ;
49
		String paramGet = "id_image="+id ;
49
		
50
		
50
		raf = r ;
51
		raf = r ;
51
		
52
		
52
		// et on envoie ça au serveur
53
		// et on envoie ça au serveur
53
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl()
54
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl()
54
				+ "/inventoryImageLink/" + Utilisateur.getInstance().getIdentifiantUtilisateurConsulte() + "/" + paramGet);
55
				+ "/inventoryImageLink/" + Utilisateur.getInstance().getIdentifiantUtilisateurConsulte() + "/" + paramGet);
55
			try {
56
			try {
56
				rb.sendRequest(null, new RequestCallback() {
57
				rb.sendRequest(null, new RequestCallback() {
57
	
58
	
58
					public void onError(Request request, Throwable exception) {
59
					public void onError(Request request, Throwable exception) {
59
						// TODO Auto-generated method stub
60
						// TODO Auto-generated method stub
60
	
61
	
61
					}
62
					}
62
	
63
	
63
					public void onResponseReceived(Request request,
64
					public void onResponseReceived(Request request,
64
							Response response) {
65
							Response response) {
65
	
66
	
66
						final ListeObservation observationData ;
67
						final ListeObservation observationData ;
67
						final JSONValue responseValue = JSONParser.parse(response.getText());
68
						final JSONValue responseValue = JSONParser.parse(response.getText());
68
									
69
									
69
						JSONArray reponse=null;
70
						JSONArray reponse=null;
70
						
71
						
71
						// si c'est un tableau
72
						// si c'est un tableau
72
						if ((reponse=responseValue.isArray()) != null) {
73
						if ((reponse=responseValue.isArray()) != null) {
73
							
74
							
74
							JSONArray observation;
75
							JSONObject observation;
75
							final int taillemax = reponse.size();
76
							final int taillemax = reponse.size();
76
							
77
							
77
							observationData = new ListeObservation(taillemax);
78
							observationData = new ListeObservation(taillemax);
78
							
79
							
79
							for (int i = 0; i < taillemax; i++) {
80
							for (int i = 0; i < taillemax; i++) {
80
								
81
								
81
								if ((observation=reponse.get(i).isArray()) != null) {								
-
 
82
									
-
 
83
									String transmis=((JSONString) observation.get(13)).stringValue();
-
 
84
									String identifiantLocalite=((JSONString) observation.get(14)).toString();
-
 
85
									String nomSaisi=Util.toCelString(((JSONString) observation.get(0)).toString());
-
 
86
									String nomRetenu=Util.toCelString(((JSONString) observation.get(2)).toString());
-
 
87
									String numeroNomenclaturalSaisi=((JSONString) observation.get(1)).stringValue();
-
 
88
									String numeroNomenclaturalRetenu=((JSONString) observation.get(3)).stringValue();
-
 
89
									String numeroTaxonomique=((JSONString) observation.get(4)).stringValue();
-
 
90
									String famille=Util.toCelString(((JSONString) observation .get(5)).toString());
-
 
91
									String localite=Util.toCelString(((JSONString) observation .get(6)).toString());
-
 
92
									String lieudit=Util.toCelString(((JSONString) observation .get(9)).toString());
-
 
93
									String station=Util.toCelString(((JSONString) observation .get(10)).toString());
-
 
94
									String milieu=Util.toCelString(((JSONString) observation .get(11)).toString());
82
								if ((observation = reponse.get(i).isObject()) != null) {								
95
									String commentaire=Util.toCelString(((JSONString) observation .get(12)).toString());
-
 
96
									String date=((JSONString) observation .get(8)).stringValue();
-
 
97
									String numeroOrdre=((JSONString) observation.get(7)).stringValue();
-
 
98
									
-
 
99
									Observation obs=new Observation(transmis, nomSaisi, nomRetenu, numeroNomenclaturalSaisi, numeroNomenclaturalRetenu ,numeroTaxonomique, famille, localite, identifiantLocalite, lieudit, station, milieu, commentaire, date, numeroOrdre);
83
									
100
				
84
									Observation obs= new Observation(observation);
101
									observationData.put(obs.getNumeroOrdre(),obs);				
85
									observationData.put(obs.getNumeroOrdre(),obs);				
102
								}		
86
								}		
103
							}
87
							}
104
						} else {
88
						} else {
105
							
89
							
106
							observationData = new ListeObservation(0) ;
90
							observationData = new ListeObservation(0) ;
107
						}
91
						}
108
											
92
											
109
						// dans tous les cas on transmet la liste crée au rafraichissable en lui demandant de répandre les données car il est
93
						// dans tous les cas on transmet la liste crée au rafraichissable en lui demandant de répandre les données car il est
110
						// le premier à les recevoir
94
						// le premier à les recevoir
111
						
95
						
112
						// TODO : ce n'est pas ici qu'on devrait le decider ..
96
						// TODO : ce n'est pas ici qu'on devrait le decider ..
113
						raf.rafraichir(observationData,true);	
97
						raf.rafraichir(observationData,true);	
114
					}
98
					}
115
				});
99
				});
116
	
100
	
117
			} catch (RequestException e) {
101
			} catch (RequestException e) {
118
				// TODO Auto-generated catch block
102
				// TODO Auto-generated catch block
119
				e.printStackTrace();
103
				e.printStackTrace();
120
			}
104
			}
121
	}
105
	}
122
	
106
	
123
	public void obtenirLiaisonsObservationsImages(Rafraichissable r,String idObs, String utilisateur)
107
	public void obtenirLiaisonsObservationsImages(Rafraichissable r,String idObs, String utilisateur)
124
	{
108
	{
125
		String paramGet = "&id_observation="+idObs ;
109
		String paramGet = "id_observation="+idObs ;
126
		raf = r ;
110
		raf = r ;
127
 
111
 
128
		// et on envoie ça au serveur
112
		// et on envoie ça au serveur
129
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl()
113
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl()
130
				+ "/inventoryImageLink/" + utilisateur + "/" + paramGet);
114
				+ "/inventoryImageLink/" + utilisateur + "/" + paramGet);
131
			try {
115
			try {
132
				rb.sendRequest(null, new RequestCallback() {
116
				rb.sendRequest(null, new RequestCallback() {
133
	
117
	
134
					public void onError(Request request, Throwable exception) {
118
					public void onError(Request request, Throwable exception) {
135
						// TODO Auto-generated method stub
119
						// TODO Auto-generated method stub
136
	
120
	
137
					}
121
					}
138
	
122
	
139
					public void onResponseReceived(Request request,
123
					public void onResponseReceived(Request request,
140
							Response response) {
124
							Response response) {
141
	
125
	
142
						String baseUrl = Configuration.getImageBaseUrl() ;
126
						String baseUrl = Configuration.getImageBaseUrl() ;
143
						
127
						
144
						final JSONValue responseValue = JSONParser.parse(response
128
						final JSONValue responseValue = JSONParser.parse(response
145
								.getText());
129
								.getText());
146
						// si c'est un tableau
130
						// si c'est un tableau
147
						if (responseValue.isArray() != null) {
131
						if (responseValue.isArray() != null) {
148
 
132
 
149
							final JSONArray reponse = responseValue.isArray();
133
							final JSONArray reponse = responseValue.isArray();
150
							
134
							
151
							final int taillemax = reponse.size();
135
							final int taillemax = reponse.size();
152
							
136
							
153
							String imgTab[][] = new String[taillemax][3] ;
137
							String imgTab[][] = new String[taillemax][3] ;
154
							
138
							
155
							for(int i = 0 ;i<taillemax ;i++)
139
							for(int i = 0 ;i<taillemax ;i++)
156
							{
140
							{
157
								
141
								
158
								final JSONArray reponseInt = reponse.get(i).isArray();
142
								final JSONObject reponseInt = reponse.get(i).isObject();
159
								String idImg = ((JSONString)reponseInt.get(0)).stringValue() ;
143
								String idImg = ((JSONString)reponseInt.get("id_image")).stringValue() ;
160
								String X = ((JSONString)reponseInt.get(1)).stringValue() ;
144
								String X = ((JSONString)reponseInt.get("hauteur")).stringValue() ;
161
								String Y = ((JSONString)reponseInt.get(2)).stringValue() ;
145
								String Y = ((JSONString)reponseInt.get("largeur")).stringValue() ;
162
								imgTab[i][0] = idImg ;
146
								imgTab[i][0] = idImg ;
163
								imgTab[i][1] = X ;
147
								imgTab[i][1] = X ;
164
								imgTab[i][2] = Y ;
148
								imgTab[i][2] = Y ;
165
								
149
								
166
							}
150
							}
167
							
151
							
168
							raf.rafraichir(imgTab, false) ;
152
							raf.rafraichir(imgTab, false) ;
169
						}
153
						}
170
						else
154
						else
171
						{
155
						{
172
							String imgTab[] = new String[0] ;
156
							String imgTab[] = new String[0] ;
173
							raf.rafraichir(imgTab, false) ;
157
							raf.rafraichir(imgTab, false) ;
174
						}
158
						}
175
					}
159
					}
176
					
160
					
177
				});
161
				});
178
	
162
	
179
			} catch (RequestException e) {
163
			} catch (RequestException e) {
180
				// TODO Auto-generated catch block
164
				// TODO Auto-generated catch block
181
				e.printStackTrace();
165
				e.printStackTrace();
182
			}
166
			}
183
	}
167
	}
184
	
168
	
185
	public void lierImageBaseDeDonnees(String idsImages, String idsObs) {
169
	public void lierImageBaseDeDonnees(String idsImages, String idsObs) {
186
		
170
		
187
		String postData = "";
171
		String postData = "";
188
		
172
		
189
		postData += "&id_image="+idsImages ;
173
		postData += "id_image="+idsImages ;
190
		postData += "&id_observation="+idsObs ;
174
		postData += "&id_observation="+idsObs ;
191
		postData += "&ce_utilisateur="+Utilisateur.getInstance().getIdentifiantUtilisateurConsulte() ;
175
		postData += "&ce_utilisateur="+Utilisateur.getInstance().getIdentifiantUtilisateurConsulte() ;
192
 
176
 
193
		// et on envoie ça au serveur
177
		// et on envoie ça au serveur
194
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
178
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
195
				+ "/inventoryImageLink/");
179
				+ "/inventoryImageLink/");
196
		try {
180
		try {
197
			rb.sendRequest(postData, new RequestCallback() {
181
			rb.sendRequest(postData, new RequestCallback() {
198
 
182
 
199
				public void onError(Request request, Throwable exception) {
183
				public void onError(Request request, Throwable exception) {
200
					// TODO Auto-generated method stub
184
					// TODO Auto-generated method stub
201
 
185
 
202
				}
186
				}
203
 
187
 
204
				public void onResponseReceived(Request request,
188
				public void onResponseReceived(Request request,
205
						Response response) {
189
						Response response) {
206
 
190
 
207
					iModele.requeteTerminee();
191
					iModele.requeteTerminee();
208
 
192
 
209
				}
193
				}
210
			});
194
			});
211
 
195
 
212
		} catch (RequestException e) {
196
		} catch (RequestException e) {
213
			// TODO Auto-generated catch block
197
			// TODO Auto-generated catch block
214
			e.printStackTrace();
198
			e.printStackTrace();
215
		}
199
		}
216
	}
200
	}
217
 
201
 
218
	public void supprimerLienImageObservation(String idImg, String idObs) {
202
	public void supprimerLienImageObservation(String idImg, String idObs) {
219
		
203
		
220
		String postData = "";
204
		String postData = "";
221
		
205
		
222
		postData += "&action=DELETE" ;
206
		postData += "&action=DELETE" ;
223
		String identifiant = "" ;
207
		String identifiant = "" ;
224
		
208
		
225
		identifiant = Utilisateur.getInstance().getIdentifiantUtilisateurConsulte();
209
		identifiant = Utilisateur.getInstance().getIdentifiantUtilisateurConsulte();
226
		
210
		
227
		// et on envoie ça au serveur
211
		// et on envoie ça au serveur
228
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
212
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
229
				+ "/inventoryImageLink/"+identifiant+"/"+idImg+"/"+idObs);
213
				+ "/inventoryImageLink/"+identifiant+"/"+idImg+"/"+idObs);
230
		
214
		
231
			try {
215
			try {
232
				rb.sendRequest(postData, new RequestCallback() {
216
				rb.sendRequest(postData, new RequestCallback() {
233
	
217
	
234
					public void onError(Request request, Throwable exception) {
218
					public void onError(Request request, Throwable exception) {
235
						// TODO Auto-generated method stub
219
						// TODO Auto-generated method stub
236
	
220
	
237
					}
221
					}
238
	
222
	
239
					public void onResponseReceived(Request request,
223
					public void onResponseReceived(Request request,
240
							Response response) {
224
							Response response) {
241
	
225
	
242
						// quand la requête est éxecutée on le signale au modèle
226
						// quand la requête est éxecutée on le signale au modèle
243
						// poru qu'il mette à jour les données
227
						// pour qu'il mette à jour les données
244
						// et en notifie le médiateur
228
						// et en notifie le médiateur
245
						iModele.requeteTerminee();
229
						iModele.requeteTerminee();
246
	
230
	
247
					}
231
					}
248
				});
232
				});
249
	
233
	
250
			} catch (RequestException e) {
234
			} catch (RequestException e) {
251
				// TODO Auto-generated catch block
235
				// TODO Auto-generated catch block
252
				e.printStackTrace();
236
				e.printStackTrace();
253
			}
237
			}
254
	}
238
	}
255
}
239
}