Subversion Repositories eFlore/Applications.coel

Rev

Rev 65 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
64 jpm 1
package org.tela_botanica.client.modeles;
2
 
3
/**
4
 * Modele DAO, specifique, permettant la validation, l'acces aux donnees distantes et la présentation des donnees en retour
5
 *
6
 */
7
 
8
import org.tela_botanica.client.RegistreId;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
10
 
11
import com.extjs.gxt.ui.client.Registry;
12
import com.google.gwt.http.client.Request;
13
import com.google.gwt.http.client.RequestBuilder;
14
import com.google.gwt.http.client.RequestCallback;
15
import com.google.gwt.http.client.RequestException;
16
import com.google.gwt.http.client.Response;
17
import com.google.gwt.json.client.JSONArray;
18
import com.google.gwt.json.client.JSONBoolean;
19
import com.google.gwt.json.client.JSONParser;
20
import com.google.gwt.json.client.JSONString;
21
import com.google.gwt.json.client.JSONValue;
22
import com.google.gwt.user.client.ResponseTextHandler;
23
 
24
public class UtilisateurAsynchroneDAO {
25
 
26
	private String urlServiceBase = null;
27
	private Rafraichissable rafraichissement = null;
28
 
29
	/**
30
	 * Constructeur
31
	 * @param retour : méthode appellée en retour d'appel.
32
	 */
33
	public UtilisateurAsynchroneDAO(Rafraichissable r) {
34
		rafraichissement = r;
35
		urlServiceBase = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
36
	}
37
 
38
	/**
39
	 * Méthode de classe d'appel du service des gestion d'identification.
40
	 */
41
	public void getEtatUtilisateur() {
42
		// Recherche identifiant utilisateur identifie
43
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+"CoelUtilisateur/") ;
44
		try {
45
			rb.sendRequest(null, new RequestCallback() {
46
 
47
				public void onError(Request request, Throwable exception) {
48
					// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
49
				}
50
 
51
				public void onResponseReceived(Request request, Response response) {
52
					JSONValue jsonValue = JSONParser.parse(response.getText());
53
					JSONArray jsonArray;
54
					if ((jsonArray = jsonValue.isArray()) != null) {
55
						// Identifiant utilisateur ou identifiant de session si non identifié
56
						String identifiant = ((JSONString) jsonArray.get(0)).stringValue();
57
						// Drapeau leve si utilisateur deja identifié
58
						boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue();
59
						rafraichissement.rafraichir(new Utilisateur(identifiant, identifie),true);
60
					}
61
				}
62
			}) ;
63
		} catch (RequestException e) {
64
			e.printStackTrace();
65
		}
66
	}
67
 
68
	/**
69
	 * Méthode déconnectant un utilisateur de l'application.
70
	 * @param identifiant de l'utilisateur à déconnecter.
71
	 */
72
	public void deconnecterUtilisateur(Utilisateur utilisateur) {
73
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+"CoelUtilisateur/"+utilisateur.getIdentifiant()) ;
74
		try {
75
			rb.sendRequest(null, new RequestCallback() {
76
 
77
				public void onError(Request request, Throwable exception) {
78
					// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
79
				}
80
 
81
				public void onResponseReceived(Request request, Response response) {
82
					JSONValue jsonValue = JSONParser.parse(response.getText());
83
					JSONArray jsonArray;
84
					if ((jsonArray = jsonValue.isArray()) != null) {
85
						// Identifiant utilisateur ou identifiant de session si non identifié
86
						String identifiant = ((JSONString) jsonArray.get(0)).stringValue();
87
						// Drapeau levé si l'utilisateur est déjà identifié
88
						boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue();
89
						rafraichissement.rafraichir(new Utilisateur(identifiant, identifie));
90
					}
91
				}
92
			}) ;
93
		} catch (RequestException e) {
94
			e.printStackTrace();
95
		}
96
	}
97
 
98
	/**
99
	 * Méthode déconnectant un utilisateur de l'application.
100
	 * @param Utilisateur l'utilisateur courant.
101
	 */
102
	public void connecterUtilisateur (Utilisateur utilisateur) {
103
		String login = utilisateur.getLogin();
104
		String password = utilisateur.getMotDePasse();
105
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,urlServiceBase+"CoelUtilisateur/"+login+"/"+password);
106
		try {
107
			rb.sendRequest(null, new RequestCallback() {
108
 
109
				public void onError(Request request, Throwable exception) {
110
					// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
111
				}
112
 
113
				public void onResponseReceived(Request request, Response response) {
114
					JSONValue jsonValue = JSONParser.parse(response.getText());
115
					JSONArray jsonArray;
116
					if ((jsonArray = jsonValue.isArray()) != null) {
117
						// Identifiant utilisateur ou identifiant de session si non identifié
118
						String identifiant = ((JSONString) jsonArray.get(0)).stringValue();
119
						// Drapeau levé si l'utilisateur est déjà identifié
120
						boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue();
121
						rafraichissement.rafraichir(new Utilisateur(identifiant, identifie));
122
					}
123
				}
124
			}) ;
125
		} catch (RequestException e) {
126
			e.printStackTrace();
127
		}
128
	}
129
}