Subversion Repositories eFlore/Applications.cel

Rev

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

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