Subversion Repositories eFlore/Applications.cel

Rev

Rev 99 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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