Subversion Repositories eFlore/Applications.cel

Rev

Rev 640 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
989 aurelien 1
package org.tela_botanica.client.modeles.dao;
91 jpm 2
 
3
import org.tela_botanica.client.interfaces.Rafraichissable;
989 aurelien 4
import org.tela_botanica.client.modeles.objets.Configuration;
5
import org.tela_botanica.client.modeles.objets.ListeDate;
91 jpm 6
import org.tela_botanica.client.observation.ObservationModele;
7
 
8
import com.google.gwt.http.client.Request;
9
import com.google.gwt.http.client.RequestBuilder;
10
import com.google.gwt.http.client.RequestCallback;
11
import com.google.gwt.http.client.RequestException;
12
import com.google.gwt.http.client.Response;
217 aurelien 13
import com.google.gwt.http.client.URL;
91 jpm 14
import com.google.gwt.json.client.JSONArray;
15
import com.google.gwt.json.client.JSONParser;
16
import com.google.gwt.json.client.JSONString;
17
import com.google.gwt.json.client.JSONValue;
18
import com.google.gwt.user.client.Window;
19
 
20
public class ListeDateObservationAsynchroneDAO {
21
 
22
	/**
23
	 * Le modèle associé au DAO.
24
	 */
25
	private ObservationModele observationModele = null;
26
 
27
 
28
	/**
29
	 *  Constructeur.
30
	 * @param obs : Modele
31
	 */
32
 
33
	public ListeDateObservationAsynchroneDAO(final ObservationModele obs) {
34
		this.observationModele = obs;
35
	}
36
 
37
 
38
	/**
39
	 * Envoie une requete au serveur jrest pour obtenir les communes  correspondant
40
	 * à des critères données en paramètres.
41
	 * @param r le rafraichissable qui demande la mise à jour
42
	 * @param critere un string contenant le terme a rechercher
43
	 */
44
 
45
 
46
	public final void obtenirListeDate(final Rafraichissable r, final String utilisateur) {
47
 
48
 
49
 
145 aurelien 50
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl() + "/InventoryDateList/" + utilisateur);
91 jpm 51
 
52
 
53
		try {
54
 
55
			rb.sendRequest(null, new RequestCallback() {
56
 
57
				public void onError(final Request request, final Throwable exception) {
58
					// TODO Auto-generated method stub
59
 
60
				}
61
 
62
				public void onResponseReceived(final Request request,
63
						final Response response) {
64
 
640 aurelien 65
					final ListeDate lDateObs;
91 jpm 66
 
67
					final JSONValue responseValue = JSONParser.parse(response.getText());
68
 
69
					JSONArray reponse = responseValue.isArray();
70
 
71
 
72
					// si c'est un tableau
73
					if ((reponse) != null) {
74
 
640 aurelien 75
						lDateObs = new ListeDate(reponse);
91 jpm 76
 
77
					} else {
78
 
640 aurelien 79
						lDateObs = new ListeDate(0);
91 jpm 80
 
81
					}
82
					// dans tous les cas on transmet la liste crée au rafraichissable en lui demandant de répandre les données car il est
83
					// le premier à les recevoir
84
					r.rafraichir(lDateObs, true);
85
				}
86
 
87
			});
88
 
89
		} catch (RequestException e) {
90
 
91
			e.printStackTrace();
92
		}
93
 
94
	}
95
 
96
}