Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 132 Rev 268
1
package org.tela_botanica.client.modeles;
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
 
2
 
8
import org.tela_botanica.client.RegistreId;
3
import org.tela_botanica.client.RegistreId;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
10
 
5
 
11
import com.extjs.gxt.ui.client.Registry;
6
import com.extjs.gxt.ui.client.Registry;
12
import com.google.gwt.core.client.GWT;
7
import com.google.gwt.core.client.GWT;
13
import com.google.gwt.http.client.Request;
8
import com.google.gwt.http.client.Request;
14
import com.google.gwt.http.client.RequestBuilder;
9
import com.google.gwt.http.client.RequestBuilder;
15
import com.google.gwt.http.client.RequestCallback;
10
import com.google.gwt.http.client.RequestCallback;
16
import com.google.gwt.http.client.RequestException;
11
import com.google.gwt.http.client.RequestException;
17
import com.google.gwt.http.client.Response;
12
import com.google.gwt.http.client.Response;
18
import com.google.gwt.json.client.JSONArray;
13
import com.google.gwt.json.client.JSONArray;
19
import com.google.gwt.json.client.JSONBoolean;
14
import com.google.gwt.json.client.JSONBoolean;
20
import com.google.gwt.json.client.JSONNull;
-
 
21
import com.google.gwt.json.client.JSONParser;
15
import com.google.gwt.json.client.JSONParser;
22
import com.google.gwt.json.client.JSONString;
16
import com.google.gwt.json.client.JSONString;
23
import com.google.gwt.json.client.JSONValue;
17
import com.google.gwt.json.client.JSONValue;
-
 
18
 
-
 
19
/**
-
 
20
 * Modele DAO, specifique, permettant la validation, l'acces aux donnees distantes et la présentation des donnees en retour
-
 
21
 * 
24
 
22
 */
-
 
23
public class UtilisateurAsyncDao {
25
public class UtilisateurAsyncDao {
24
	private static final String SERVICE_NOM = "CoelUtilisateur";
26
 
25
	
27
	private Utilisateur utilisateur = null;
26
	private Utilisateur utilisateur = null;
28
	private String urlServiceBase = null;
27
	private String urlServiceBase = null;
29
	private Rafraichissable rafraichissement = null;
28
	private Rafraichissable rafraichissement = null;
30
	
29
	
31
	/**
30
	/**
32
	 * Constructeur
31
	 * Constructeur
33
	 * @param retour : méthode appellée en retour d'appel. 
32
	 * @param retour : méthode appellée en retour d'appel. 
34
	 */
33
	 */
35
	public UtilisateurAsyncDao(Rafraichissable r) {
34
	public UtilisateurAsyncDao(Rafraichissable r) {
36
		rafraichissement = r;
35
		rafraichissement = r;
37
		urlServiceBase = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
36
		urlServiceBase = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
38
		utilisateur = (Utilisateur) Registry.get(RegistreId.UTILISATEUR);
37
		utilisateur = (Utilisateur) Registry.get(RegistreId.UTILISATEUR);
39
	}
38
	}
40
		
39
		
41
	/**
40
	/**
42
	 * Méthode de classe d'appel du service des gestion d'identification. 
41
	 * Méthode de classe d'appel du service des gestion d'identification. 
43
	 */
42
	 */
44
	public void getEtatUtilisateur() {
43
	public void getEtatUtilisateur() {
45
		// Recherche identifiant utilisateur identifie
44
		// Recherche identifiant utilisateur identifie
46
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+"CoelUtilisateur/") ;
45
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+SERVICE_NOM+"/") ;
47
		try {
46
		try {
48
			rb.sendRequest(null, new RequestCallback() {
47
			rb.sendRequest(null, new RequestCallback() {
49
 
48
 
50
				public void onError(Request request, Throwable exception) {
49
				public void onError(Request request, Throwable exception) {
51
					// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
50
					// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
52
				}
51
				}
53
 
52
 
54
				public void onResponseReceived(Request request, Response response) {
53
				public void onResponseReceived(Request request, Response response) {
55
					JSONValue jsonValue = JSONParser.parse(response.getText());
54
					JSONValue jsonValue = JSONParser.parse(response.getText());
56
					JSONArray jsonArray;
55
					JSONArray jsonArray;
57
					if ((jsonArray = jsonValue.isArray()) != null) {
56
					if ((jsonArray = jsonValue.isArray()) != null) {
58
						// Identifiant utilisateur ou identifiant de session si non identifié
57
						// Identifiant utilisateur ou identifiant de session si non identifié
59
						String login = ((JSONString) jsonArray.get(0)).stringValue();
58
						String login = ((JSONString) jsonArray.get(0)).stringValue();
60
						// Drapeau leve si utilisateur deja identifié
59
						// Drapeau leve si utilisateur deja identifié
61
						boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue();
60
						boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue();
62
						utilisateur.setIdentifie(identifie);
61
						utilisateur.setIdentifie(identifie);
63
						utilisateur.setLogin(login);
62
						utilisateur.setLogin(login);
64
						rafraichissement.rafraichir(utilisateur);
63
						rafraichissement.rafraichir(utilisateur);
65
					}			
64
					}			
66
				}			
65
				}			
67
			}) ;
66
			}) ;
68
		} catch (RequestException e) {
67
		} catch (RequestException e) {
69
			e.printStackTrace();
68
			e.printStackTrace();
70
		}
69
		}
71
	}
70
	}
72
 
71
 
73
	/**
72
	/**
74
	 * Méthode déconnectant un utilisateur de l'application. 
73
	 * Méthode déconnectant un utilisateur de l'application. 
75
	 * @param identifiant de l'utilisateur à déconnecter.
74
	 * @param identifiant de l'utilisateur à déconnecter.
76
	 */
75
	 */
77
	public void deconnecterUtilisateur() {
76
	public void deconnecterUtilisateur() {
78
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+"CoelUtilisateur/"+utilisateur.getId()) ;
77
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+SERVICE_NOM+"/"+utilisateur.getId()) ;
79
		try {
78
		try {
80
			rb.sendRequest(null, new RequestCallback() {
79
			rb.sendRequest(null, new RequestCallback() {
81
 
80
 
82
				public void onError(Request request, Throwable exception) {
81
				public void onError(Request request, Throwable exception) {
83
					// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
82
					// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
84
				}
83
				}
85
 
84
 
86
				public void onResponseReceived(Request request, Response response) {
85
				public void onResponseReceived(Request request, Response response) {
87
					JSONValue jsonValue = JSONParser.parse(response.getText());
86
					JSONValue jsonValue = JSONParser.parse(response.getText());
88
					JSONArray jsonArray;
87
					JSONArray jsonArray;
89
					if ((jsonArray = jsonValue.isArray()) != null) {
88
					if ((jsonArray = jsonValue.isArray()) != null) {
90
						// Identifiant utilisateur ou identifiant de session si non identifié
89
						// Identifiant utilisateur ou identifiant de session si non identifié
91
						String id = ((JSONString) jsonArray.get(0)).stringValue();
90
						String id = ((JSONString) jsonArray.get(0)).stringValue();
92
						// Drapeau levé si l'utilisateur est déjà identifié
91
						// Drapeau levé si l'utilisateur est déjà identifié
93
						boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue();
92
						boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue();
94
						
93
						
95
						// Nous réinitialisons l'utilisateur
94
						// Nous réinitialisons l'utilisateur
96
						utilisateur = new Utilisateur(id, identifie);
95
						utilisateur = new Utilisateur(id, identifie);
97
						
96
						
98
						GWT.log(utilisateur.toString(), null);
97
						GWT.log(utilisateur.toString(), null);
99
						rafraichissement.rafraichir(utilisateur);
98
						rafraichissement.rafraichir(utilisateur);
100
					}				
99
					}				
101
				}			
100
				}			
102
			}) ;
101
			}) ;
103
		} catch (RequestException e) {
102
		} catch (RequestException e) {
104
			e.printStackTrace();
103
			e.printStackTrace();
105
		}
104
		}
106
	}
105
	}
107
	
106
	
108
	/**
107
	/**
109
	 * Méthode déconnectant un utilisateur de l'application. 
108
	 * Méthode déconnectant un utilisateur de l'application. 
110
	 * @param Utilisateur l'utilisateur courant.
109
	 * @param Utilisateur l'utilisateur courant.
111
	 */
110
	 */
112
	public void connecterUtilisateur () {
111
	public void connecterUtilisateur () {
113
		String login = utilisateur.getLogin();
112
		String login = utilisateur.getLogin();
114
		String password = utilisateur.getMotDePasse();
113
		String password = utilisateur.getMotDePasse();
115
		String url = urlServiceBase+"CoelUtilisateur/";
114
		String url = urlServiceBase+SERVICE_NOM+"/";
116
		
115
		
117
		if (login != null & password != null) {
116
		if (login != null & password != null) {
118
			url = url+login+"/"+password;
117
			url = url+login+"/"+password;
119
		}
118
		}
120
		
119
		
121
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url);
120
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url);
122
		try {
121
		try {
123
			rb.sendRequest(null, new RequestCallback() {
122
			rb.sendRequest(null, new RequestCallback() {
124
 
123
 
125
				public void onError(Request request, Throwable exception) {
124
				public void onError(Request request, Throwable exception) {
126
					// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
125
					// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
127
				}
126
				}
128
 
127
 
129
				public void onResponseReceived(Request request, Response response) {
128
				public void onResponseReceived(Request request, Response response) {
130
					JSONValue jsonValue = JSONParser.parse(response.getText());
129
					JSONValue jsonValue = JSONParser.parse(response.getText());
131
					JSONArray jsonArray;
130
					JSONArray jsonArray;
132
					if ((jsonArray = jsonValue.isArray()) != null) {
131
					if ((jsonArray = jsonValue.isArray()) != null) {
133
						// Identifiant de l'utilisateur ou identifiant de session si non identifié
132
						// Identifiant de l'utilisateur ou identifiant de session si non identifié
134
						utilisateur.setId(((JSONString) jsonArray.get(0)).stringValue());
133
						utilisateur.setId(((JSONString) jsonArray.get(0)).stringValue());
135
						
134
						
136
						// Drapeau levé si l'utilisateur est déjà identifié
135
						// Drapeau levé si l'utilisateur est déjà identifié
137
						utilisateur.setIdentifie(((JSONBoolean) jsonArray.get(1)).booleanValue());
136
						utilisateur.setIdentifie(((JSONBoolean) jsonArray.get(1)).booleanValue());
138
						
137
						
139
						// Plus de deux valeurs, l'utilisateur est identifié nous récupérons des données supplémentaires
138
						// Plus de deux valeurs, l'utilisateur est identifié nous récupérons des données supplémentaires
140
						if (jsonArray.size() > 2) {
139
						if (jsonArray.size() > 2) {
141
							// Nom complet de l'utilisateur
140
							// Nom complet de l'utilisateur
142
							if (jsonArray.get(2).isString() != null) {
141
							if (jsonArray.get(2).isString() != null) {
143
								utilisateur.setNomComplet(((JSONString) jsonArray.get(2)).stringValue());
142
								utilisateur.setNomComplet(((JSONString) jsonArray.get(2)).stringValue());
144
							}
143
							}
145
							// Prénom de l'utilisateur
144
							// Prénom de l'utilisateur
146
							if (jsonArray.get(3).isString() != null) {
145
							if (jsonArray.get(3).isString() != null) {
147
								utilisateur.setPrenom(((JSONString) jsonArray.get(3)).stringValue());
146
								utilisateur.setPrenom(((JSONString) jsonArray.get(3)).stringValue());
148
							}
147
							}
149
							// Nom de l'utilisateur
148
							// Nom de l'utilisateur
150
							if (jsonArray.get(4).isString() != null) {
149
							if (jsonArray.get(4).isString() != null) {
151
								utilisateur.setNom(((JSONString) jsonArray.get(4)).stringValue());
150
								utilisateur.setNom(((JSONString) jsonArray.get(4)).stringValue());
152
							}
151
							}
153
							GWT.log(utilisateur.toString(), null);
152
							GWT.log(utilisateur.toString(), null);
154
						}
153
						}
155
						rafraichissement.rafraichir(utilisateur);
154
						rafraichissement.rafraichir(utilisateur);
156
					}				
155
					}				
157
				}
156
				}
158
			}) ;
157
			}) ;
159
		} catch (RequestException e) {
158
		} catch (RequestException e) {
160
			e.printStackTrace();
159
			e.printStackTrace();
161
		}
160
		}
162
	}
161
	}
163
}
162
}