Subversion Repositories eFlore/Applications.cel

Rev

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

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