Subversion Repositories eFlore/Applications.cel

Rev

Rev 104 | 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
 
107 aurelien 100
									observationData.put(obs.getNumeroOrdre(),obs);
101
								}
99 jpm 102
							}
103
						} else {
104
 
105
							observationData = new ListeObservation(0) ;
106
						}
107
 
108
						// dans tous les cas on transmet la liste crée au rafraichissable en lui demandant de répandre les données car il est
109
						// le premier à les recevoir
110
 
111
						// TODO : ce n'est pas ici qu'on devrait le decider ..
112
						raf.rafraichir(observationData,true);
62 jpm 113
					}
114
				});
115
 
116
			} catch (RequestException e) {
117
				// TODO Auto-generated catch block
118
				e.printStackTrace();
119
			}
5 aperonnet 120
	}
121
 
94 jpm 122
	public void obtenirLiaisonsObservationsImages(Rafraichissable r,String idObs, String utilisateur)
123
	{
124
		String paramGet = "&coi_ce_observation="+idObs ;
125
		raf = r ;
126
 
127
		// et on envoie ça au serveur
104 jpm 128
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl()
94 jpm 129
				+ "/inventoryImageLink/" + utilisateur + "/" + paramGet);
130
			try {
131
				rb.sendRequest(null, new RequestCallback() {
132
 
133
					public void onError(Request request, Throwable exception) {
134
						// TODO Auto-generated method stub
135
 
136
					}
137
 
138
					public void onResponseReceived(Request request,
139
							Response response) {
140
 
104 jpm 141
						String baseUrl = Configuration.getImageBaseUrl() ;
94 jpm 142
 
143
						final JSONValue responseValue = JSONParser.parse(response
144
								.getText());
145
						// si c'est un tableau
146
						if (responseValue.isArray() != null) {
147
 
148
							final JSONArray reponse = responseValue.isArray();
149
 
150
							final int taillemax = reponse.size();
151
 
104 jpm 152
							String imgTab[] = new String[taillemax] ;
94 jpm 153
 
154
							for(int i = 0 ;i<taillemax ;i++)
155
							{
156
 
157
								final JSONArray reponseInt = reponse.get(i).isArray();
158
								String idImg = ((JSONString)reponseInt.get(0)).stringValue() ;
104 jpm 159
								imgTab[i] = idImg ;
94 jpm 160
 
161
							}
162
 
104 jpm 163
							raf.rafraichir(imgTab, false) ;
94 jpm 164
						}
165
						else
166
						{
104 jpm 167
							String imgTab[] = new String[0] ;
168
							raf.rafraichir(imgTab, false) ;
94 jpm 169
						}
170
					}
171
 
172
				});
173
 
174
			} catch (RequestException e) {
175
				// TODO Auto-generated catch block
176
				e.printStackTrace();
177
			}
178
	}
179
 
5 aperonnet 180
	public void lierImageBaseDeDonnees(String idsImages, String idsObs) {
181
 
182
		String postData = "";
183
 
184
		postData += "&coi_ce_image="+idsImages ;
185
		postData += "&coi_ce_observation="+idsObs ;
186
		postData += "&identifiant="+iModele.getIdentifiant() ;
187
 
188
		// et on envoie ça au serveur
104 jpm 189
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
5 aperonnet 190
				+ "/inventoryImageLink/");
62 jpm 191
 
192
		if(Window.confirm("Lier les images "+idsImages+" aux observations "+idsObs+" ?"))
193
		{
194
			try {
195
				rb.sendRequest(postData, new RequestCallback() {
196
 
197
					public void onError(Request request, Throwable exception) {
198
						// TODO Auto-generated method stub
199
 
200
					}
201
 
202
					public void onResponseReceived(Request request,
203
							Response response) {
204
 
205
						// quand la requête est éxecutée on le signale au modèle
206
						// poru qu'il mette à jour les données
207
						// et en notifie le médiateur
208
					//	iModele.requeteTerminee();
209
 
210
					}
211
				});
212
 
213
			} catch (RequestException e) {
214
				// TODO Auto-generated catch block
215
				e.printStackTrace();
216
			}
5 aperonnet 217
		}
218
	}
104 jpm 219
 
220
	public void supprimerLienImageObservation(String idImg, String idObs) {
221
 
222
		String postData = "";
223
 
224
		postData += "&action=DELETE" ;
225
		String identifiant = "" ;
226
 
227
		if(iModele == null) {
228
			identifiant = oModele.getIdentifiant() ;  ;
229
		}
230
		else
231
		{
232
			identifiant = iModele.getIdentifiant() ;
233
		}
234
 
235
		// et on envoie ça au serveur
236
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
237
				+ "/inventoryImageLink/"+identifiant+"/"+idImg+"/"+idObs);
238
 
239
			try {
240
				rb.sendRequest(postData, new RequestCallback() {
241
 
242
					public void onError(Request request, Throwable exception) {
243
						// TODO Auto-generated method stub
244
 
245
					}
246
 
247
					public void onResponseReceived(Request request,
248
							Response response) {
249
 
250
						// quand la requête est éxecutée on le signale au modèle
251
						// poru qu'il mette à jour les données
252
						// et en notifie le médiateur
253
					//	iModele.requeteTerminee();
254
 
255
					}
256
				});
257
 
258
			} catch (RequestException e) {
259
				// TODO Auto-generated catch block
260
				e.printStackTrace();
261
			}
262
	}
5 aperonnet 263
}