Subversion Repositories eFlore/Applications.coel

Rev

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

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