Subversion Repositories eFlore/Applications.cel

Rev

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

Rev Author Line No. Line
989 aurelien 1
package org.tela_botanica.client.modeles.dao;
21 david 2
 
3
import org.tela_botanica.client.interfaces.Rafraichissable;
989 aurelien 4
import org.tela_botanica.client.modeles.objets.Configuration;
5
import org.tela_botanica.client.modeles.objets.Observation;
21 david 6
import org.tela_botanica.client.observation.ObservationModele;
1549 aurelien 7
import org.tela_botanica.client.util.Util;
21 david 8
 
9
import com.google.gwt.http.client.Request;
1918 aurelien 10
import org.tela_botanica.client.util.RequestBuilderWithCredentials;
21 david 11
import com.google.gwt.http.client.RequestCallback;
12
import com.google.gwt.http.client.RequestException;
13
import com.google.gwt.http.client.Response;
14
import com.google.gwt.http.client.URL;
1628 raphael 15
import com.google.gwt.user.client.Window;
21 david 16
 
116 aurelien 17
 
21 david 18
/**
19
 * DAO d'accès a une observation
20
 *
21
 * @author aurelien
22
 *
23
 */
24
public class ObservationAsynchroneDAO {
25
 
26
	/**
27
	 * Le modele associé au DAO
28
	 */
29
	private ObservationModele oModele = null;
30
 
31
	public ObservationAsynchroneDAO(ObservationModele obs) {
32
		oModele = obs;
33
	}
34
 
35
	/**
36
	 * Setteur pour le modèle
37
	 *
38
	 * @param obs
39
	 *            le modèle à associer
40
	 */
41
	public void setoModele(ObservationModele obs) {
42
		oModele = obs;
43
	}
44
 
45
	/**
46
	 * Envoie requete au serveur pour ajouter une observations
47
	 *
48
	 * @param motcle
49
	 *            le mots clés à ajouter avec son parent et son identifiant
50
	 */
51
 
52
	public void ajouter(final Rafraichissable r, String utilisateur, final Observation obs) {
122 aurelien 53
 
1918 aurelien 54
			RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST,Configuration.getServiceBaseUrl()+ "/Inventory/") ;
1549 aurelien 55
			rb.setHeader("Content-type", "application/x-www-form-urlencoded");
963 aurelien 56
			String postData = "ce_utilisateur="
259 aurelien 57
				+ utilisateur
58
				+"&nom_sel="+URL.encodeComponent(obs.getNomSaisi())
963 aurelien 59
				+"&nom_sel_nn="+obs.getNumeroNomenclaturalSaisi()
60
				+"&zone_geo="+URL.encodeComponent(obs.getLocalite())
2568 aurelien 61
				+"&pays="+ (obs.getPays() != null ? obs.getPays() : "")
963 aurelien 62
				+"&ce_zone_geo="+obs.getIdentifiantLocalite()
259 aurelien 63
				+"&date_observation=" +  obs.getDate()
64
				+"&lieudit="+ URL.encodeComponent(obs.getLieudit())
65
				+"&station="+URL.encodeComponent(obs.getStation())
66
				+"&milieu="+URL.encodeComponent(obs.getMilieu())
411 aurelien 67
				+"&commentaire="+obs.getCommentaire()
963 aurelien 68
				+"&latitude="+URL.encodeComponent(""+obs.getLatitude())
1488 aurelien 69
				+"&longitude="+URL.encodeComponent(""+obs.getLongitude())
1572 aurelien 70
				+"&altitude="+URL.encodeComponent(""+obs.getAltitude())
1488 aurelien 71
				+"&abondance="+URL.encodeComponent(""+obs.getAbondance())
1542 aurelien 72
				+"&certitude="+URL.encodeComponent(""+obs.getCertitude())
73
				+"&phenologie="+URL.encodeComponent(""+obs.getPhenologie())
2157 mathias 74
				+"&nom_referentiel="+URL.encodeComponent(""+obs.getCodeCourtReferentielTaxo())
1572 aurelien 75
				+"&obs_etendue="+URL.encodeComponent(""+Util.convertirChampsEtendusEnChaineRequete(obs.getChampsEtendus()));
32 jpm 76
			try {
77
 
78
				rb.sendRequest(postData, new RequestCallback() {
21 david 79
 
1293 aurelien 80
					@Override
32 jpm 81
					public void onError(Request request, Throwable exception) {
1628 raphael 82
							// TODO Auto-generated method stub
83
 
32 jpm 84
					}
21 david 85
 
1293 aurelien 86
					@Override
32 jpm 87
					public void onResponseReceived(Request request,
88
							Response response) {
1628 raphael 89
							if(response.getStatusCode() >= 400) {
90
									com.google.gwt.user.client.Window.alert(response.getText());
91
							}
92
							r.rafraichir(obs,true);
1293 aurelien 93
					}
32 jpm 94
				}) ;
95
 
96
			} catch (RequestException e) {
97
 
21 david 98
		}
32 jpm 99
	}
74 david 100
 
101
	/**
102
	 * Envoie requete au serveur pour modifier une observations
103
	 *
104
	 * @param motcle
105
	 *            le mots clés à ajouter avec son parent et son identifiant
106
	 */
107
 
79 david 108
	public void modifier(final Rafraichissable r, String utilisateur, final Observation obs) {
74 david 109
 
1918 aurelien 110
			RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST,Configuration.getServiceBaseUrl()+ "/Inventory/" + utilisateur + "/" + obs.getNumeroOrdre()+ "/") ;
1549 aurelien 111
			rb.setHeader("Content-type", "application/x-www-form-urlencoded");
971 aurelien 112
			String postData = "ce_utilisateur="
220 aurelien 113
				+ utilisateur
114
				+ "&nom_sel=" + URL.encodeComponent(obs.getNomSaisi())
963 aurelien 115
				+ "&nom_sel_nn=" + obs.getNumeroNomenclaturalSaisi()
116
				+ "&zone_geo=" + URL.encodeComponent(obs.getLocalite())
2568 aurelien 117
				+"&pays="+ (obs.getPays() != null ? obs.getPays() : "")
963 aurelien 118
				+ "&ce_zone_geo=" + obs.getIdentifiantLocalite()
220 aurelien 119
				+ "&date_observation=" +  obs.getDate()
120
				+ "&lieudit="+ URL.encodeComponent(obs.getLieudit())
121
				+ "&station="+ URL.encodeComponent(obs.getStation())
122
				+"&milieu="+ URL.encodeComponent(obs.getMilieu())
411 aurelien 123
				+"&commentaire="+obs.getCommentaire()
963 aurelien 124
				+"&latitude="+URL.encodeComponent(""+obs.getLatitude())
1488 aurelien 125
				+"&longitude="+URL.encodeComponent(""+obs.getLongitude())
1572 aurelien 126
				+"&altitude="+URL.encodeComponent(""+obs.getAltitude())
1488 aurelien 127
				+"&abondance="+URL.encodeComponent(""+obs.getAbondance())
1542 aurelien 128
				+"&certitude="+URL.encodeComponent(""+obs.getCertitude())
129
				+"&phenologie="+URL.encodeComponent(""+obs.getPhenologie())
2157 mathias 130
				+"&nom_referentiel="+URL.encodeComponent(""+obs.getCodeCourtReferentielTaxo())
1572 aurelien 131
				+"&obs_etendue="+URL.encodeComponent(""+Util.convertirChampsEtendusEnChaineRequete(obs.getChampsEtendus()));
74 david 132
			try {
133
 
134
				rb.sendRequest(postData, new RequestCallback() {
135
 
1293 aurelien 136
					@Override
74 david 137
					public void onError(Request request, Throwable exception) {
138
						// TODO Auto-generated method stub
139
 
140
					}
141
 
1293 aurelien 142
					@Override
74 david 143
					public void onResponseReceived(Request request,
144
							Response response) {
1628 raphael 145
							if(response.getStatusCode() >= 400) {
146
									com.google.gwt.user.client.Window.alert(response.getText());
147
							}
148
							r.rafraichir(obs,true);
74 david 149
					}
150
 
151
 
152
				}) ;
153
 
154
			} catch (RequestException e) {
155
 
156
		}
157
 
158
	}
77 jpm 159
 
160
	public void supprimer(Rafraichissable r, String identifiant, String numeroOrdre) {
161
 
162
		String postData = "";
163
		postData += "&action=DELETE";
164
 
165
		// on envoie un post avec l'id de l'image à supprimer
1918 aurelien 166
		RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST,
107 aurelien 167
				Configuration.getServiceBaseUrl()
77 jpm 168
				+ "/inventory/"
169
				+ identifiant
170
				+ "/"
171
				+ numeroOrdre);
172
 
173
		try {
174
			rb.sendRequest(postData, new RequestCallback() {
175
 
1293 aurelien 176
				@Override
77 jpm 177
				public void onError(Request request, Throwable exception) {
178
					// TODO Auto-generated method stub
179
 
180
				}
181
 
1293 aurelien 182
				@Override
77 jpm 183
				public void onResponseReceived(Request request,
184
						Response response) {
185
 
186
					if (response.getText().equals("OK")) {
187
 
188
 
189
					} else {
190
						com.google.gwt.user.client.Window
191
								.alert("Problème lors de la mise à jour des données");
192
						return ;
193
					}
194
				}
195
 
196
			});
197
 
198
			r.rafraichir("OK", true) ;
199
 
200
		} catch (RequestException e) {
201
			// TODO Auto-generated catch block
202
			e.printStackTrace();
203
		}
204
 
205
	}
74 david 206
 
1628 raphael 207
}