Subversion Repositories eFlore/Applications.cel

Rev

Details | Last modification | View Log | RSS feed

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