Subversion Repositories eFlore/Applications.cel

Rev

Rev 2568 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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