Subversion Repositories eFlore/Applications.cel

Rev

Rev 2621 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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