Subversion Repositories eFlore/Applications.cel

Rev

Rev 398 | 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
 
127 aurelien 98
									Observation obs=new Observation(transmis, nomSaisi, nomRetenu, numeroNomenclaturalSaisi, numeroNomenclaturalRetenu ,numeroTaxonomique, famille, localite, identifiantLocalite, lieudit, station, milieu, commentaire, date, numeroOrdre);
99 jpm 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
 
210 aurelien 152
							String imgTab[][] = new String[taillemax][3] ;
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() ;
210 aurelien 159
								String X = ((JSONString)reponseInt.get(1)).stringValue() ;
160
								String Y = ((JSONString)reponseInt.get(2)).stringValue() ;
161
								imgTab[i][0] = idImg ;
162
								imgTab[i][1] = X ;
163
								imgTab[i][2] = Y ;
94 jpm 164
 
165
							}
166
 
104 jpm 167
							raf.rafraichir(imgTab, false) ;
94 jpm 168
						}
169
						else
170
						{
104 jpm 171
							String imgTab[] = new String[0] ;
172
							raf.rafraichir(imgTab, false) ;
94 jpm 173
						}
174
					}
175
 
176
				});
177
 
178
			} catch (RequestException e) {
179
				// TODO Auto-generated catch block
180
				e.printStackTrace();
181
			}
182
	}
183
 
5 aperonnet 184
	public void lierImageBaseDeDonnees(String idsImages, String idsObs) {
185
 
186
		String postData = "";
187
 
188
		postData += "&coi_ce_image="+idsImages ;
189
		postData += "&coi_ce_observation="+idsObs ;
190
		postData += "&identifiant="+iModele.getIdentifiant() ;
191
 
192
		// et on envoie ça au serveur
104 jpm 193
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
5 aperonnet 194
				+ "/inventoryImageLink/");
210 aurelien 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
 
398 aurelien 206
					iModele.requeteTerminee();
210 aurelien 207
 
208
				}
209
			});
210
 
211
		} catch (RequestException e) {
212
			// TODO Auto-generated catch block
213
			e.printStackTrace();
5 aperonnet 214
		}
215
	}
104 jpm 216
 
217
	public void supprimerLienImageObservation(String idImg, String idObs) {
218
 
219
		String postData = "";
220
 
221
		postData += "&action=DELETE" ;
222
		String identifiant = "" ;
223
 
224
		if(iModele == null) {
225
			identifiant = oModele.getIdentifiant() ;  ;
226
		}
227
		else
228
		{
229
			identifiant = iModele.getIdentifiant() ;
230
		}
231
 
232
		// et on envoie ça au serveur
233
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
234
				+ "/inventoryImageLink/"+identifiant+"/"+idImg+"/"+idObs);
235
 
236
			try {
237
				rb.sendRequest(postData, new RequestCallback() {
238
 
239
					public void onError(Request request, Throwable exception) {
240
						// TODO Auto-generated method stub
241
 
242
					}
243
 
244
					public void onResponseReceived(Request request,
245
							Response response) {
246
 
247
						// quand la requête est éxecutée on le signale au modèle
248
						// poru qu'il mette à jour les données
249
						// et en notifie le médiateur
411 aurelien 250
						iModele.requeteTerminee();
104 jpm 251
 
252
					}
253
				});
254
 
255
			} catch (RequestException e) {
256
				// TODO Auto-generated catch block
257
				e.printStackTrace();
258
			}
259
	}
5 aperonnet 260
}