Subversion Repositories eFlore/Applications.coel

Rev

Rev 64 | Rev 66 | Go to most recent revision | Details | Compare with Previous | 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
 
65 jpm 26
	private Utilisateur utilisateur = null;
64 jpm 27
	private String urlServiceBase = null;
28
	private Rafraichissable rafraichissement = null;
29
 
30
	/**
31
	 * Constructeur
32
	 * @param retour : méthode appellée en retour d'appel.
33
	 */
34
	public UtilisateurAsynchroneDAO(Rafraichissable r) {
35
		rafraichissement = r;
36
		urlServiceBase = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
65 jpm 37
		utilisateur = (Utilisateur) Registry.get(RegistreId.UTILISATEUR);
64 jpm 38
	}
39
 
40
	/**
41
	 * Méthode de classe d'appel du service des gestion d'identification.
42
	 */
43
	public void getEtatUtilisateur() {
44
		// Recherche identifiant utilisateur identifie
45
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+"CoelUtilisateur/") ;
46
		try {
47
			rb.sendRequest(null, new RequestCallback() {
48
 
49
				public void onError(Request request, Throwable exception) {
50
					// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
51
				}
52
 
53
				public void onResponseReceived(Request request, Response response) {
54
					JSONValue jsonValue = JSONParser.parse(response.getText());
55
					JSONArray jsonArray;
56
					if ((jsonArray = jsonValue.isArray()) != null) {
57
						// Identifiant utilisateur ou identifiant de session si non identifié
58
						String identifiant = ((JSONString) jsonArray.get(0)).stringValue();
59
						// Drapeau leve si utilisateur deja identifié
60
						boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue();
65 jpm 61
						utilisateur.setIdentifie(identifie);
62
						utilisateur.setIdentifiant(identifiant);
63
						rafraichissement.rafraichir(utilisateur);
64 jpm 64
					}
65
				}
66
			}) ;
67
		} catch (RequestException e) {
68
			e.printStackTrace();
69
		}
70
	}
71
 
72
	/**
73
	 * Méthode déconnectant un utilisateur de l'application.
74
	 * @param identifiant de l'utilisateur à déconnecter.
75
	 */
65 jpm 76
	public void deconnecterUtilisateur() {
64 jpm 77
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+"CoelUtilisateur/"+utilisateur.getIdentifiant()) ;
78
		try {
79
			rb.sendRequest(null, new RequestCallback() {
80
 
81
				public void onError(Request request, Throwable exception) {
82
					// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
83
				}
84
 
85
				public void onResponseReceived(Request request, Response response) {
86
					JSONValue jsonValue = JSONParser.parse(response.getText());
87
					JSONArray jsonArray;
88
					if ((jsonArray = jsonValue.isArray()) != null) {
89
						// Identifiant utilisateur ou identifiant de session si non identifié
90
						String identifiant = ((JSONString) jsonArray.get(0)).stringValue();
91
						// Drapeau levé si l'utilisateur est déjà identifié
92
						boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue();
65 jpm 93
						utilisateur.setIdentifie(identifie);
94
						utilisateur.setIdentifiant(identifiant);
95
						rafraichissement.rafraichir(utilisateur);
64 jpm 96
					}
97
				}
98
			}) ;
99
		} catch (RequestException e) {
100
			e.printStackTrace();
101
		}
102
	}
103
 
104
	/**
105
	 * Méthode déconnectant un utilisateur de l'application.
106
	 * @param Utilisateur l'utilisateur courant.
107
	 */
65 jpm 108
	public void connecterUtilisateur () {
64 jpm 109
		String login = utilisateur.getLogin();
110
		String password = utilisateur.getMotDePasse();
65 jpm 111
		String url = urlServiceBase+"CoelUtilisateur/";
112
 
113
		if (login != null & password != null) {
114
			url = url+login+"/"+password;
115
		}
116
 
117
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url);
64 jpm 118
		try {
119
			rb.sendRequest(null, new RequestCallback() {
120
 
121
				public void onError(Request request, Throwable exception) {
122
					// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
123
				}
124
 
125
				public void onResponseReceived(Request request, Response response) {
126
					JSONValue jsonValue = JSONParser.parse(response.getText());
127
					JSONArray jsonArray;
128
					if ((jsonArray = jsonValue.isArray()) != null) {
129
						// Identifiant utilisateur ou identifiant de session si non identifié
130
						String identifiant = ((JSONString) jsonArray.get(0)).stringValue();
131
						// Drapeau levé si l'utilisateur est déjà identifié
132
						boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue();
65 jpm 133
						utilisateur.setIdentifie(identifie);
134
						utilisateur.setIdentifiant(identifiant);
135
						rafraichissement.rafraichir(utilisateur);
64 jpm 136
					}
137
				}
138
			}) ;
139
		} catch (RequestException e) {
140
			e.printStackTrace();
141
		}
142
	}
143
}