Subversion Repositories eFlore/Applications.cel

Rev

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