Subversion Repositories eFlore/Applications.coel

Rev

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

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