Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1329 Rev 1369
1
package org.tela_botanica.client.modeles;
1
package org.tela_botanica.client.modeles;
2
 
2
 
3
import org.tela_botanica.client.RegistreId;
3
import org.tela_botanica.client.RegistreId;
4
import org.tela_botanica.client.http.JsonRestRequestBuilder;
4
import org.tela_botanica.client.http.JsonRestRequestBuilder;
5
import org.tela_botanica.client.http.JsonRestRequestCallback;
5
import org.tela_botanica.client.http.JsonRestRequestCallback;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
7
import org.tela_botanica.client.util.Debug;
7
import org.tela_botanica.client.util.Debug;
8
import org.tela_botanica.client.util.UtilDAO;
8
import org.tela_botanica.client.util.UtilDAO;
9
 
9
 
10
import com.extjs.gxt.ui.client.Registry;
10
import com.extjs.gxt.ui.client.Registry;
11
import com.extjs.gxt.ui.client.widget.Info;
11
import com.extjs.gxt.ui.client.widget.Info;
12
import com.google.gwt.core.client.GWT;
12
import com.google.gwt.core.client.GWT;
13
import com.google.gwt.http.client.Request;
13
import com.google.gwt.http.client.Request;
14
import com.google.gwt.http.client.RequestBuilder;
14
import com.google.gwt.http.client.RequestBuilder;
15
import com.google.gwt.http.client.RequestCallback;
15
import com.google.gwt.http.client.RequestCallback;
16
import com.google.gwt.http.client.RequestException;
16
import com.google.gwt.http.client.RequestException;
17
import com.google.gwt.http.client.Response;
17
import com.google.gwt.http.client.Response;
18
import com.google.gwt.json.client.JSONArray;
18
import com.google.gwt.json.client.JSONArray;
19
import com.google.gwt.json.client.JSONBoolean;
19
import com.google.gwt.json.client.JSONBoolean;
20
import com.google.gwt.json.client.JSONObject;
20
import com.google.gwt.json.client.JSONObject;
21
import com.google.gwt.json.client.JSONParser;
21
import com.google.gwt.json.client.JSONParser;
22
import com.google.gwt.json.client.JSONString;
22
import com.google.gwt.json.client.JSONString;
23
import com.google.gwt.json.client.JSONValue;
23
import com.google.gwt.json.client.JSONValue;
24
import com.google.gwt.user.client.Window;
24
import com.google.gwt.user.client.Window;
25
 
25
 
26
/**
26
/**
27
 * Modele DAO, specifique, permettant la validation, l'acces aux donnees distantes et la présentation des donnees en retour
27
 * Modele DAO, specifique, permettant la validation, l'acces aux donnees distantes et la présentation des donnees en retour
28
 * 
28
 * 
29
 */
29
 */
30
public class UtilisateurAsyncDao {
30
public class UtilisateurAsyncDao {
31
	private static final String SERVICE_NOM = "CoelUtilisateur";
31
	private static final String SERVICE_NOM = "CoelUtilisateur";
32
	
32
	
33
	private Utilisateur utilisateur = null;
33
	private Utilisateur utilisateur = null;
34
	private Rafraichissable vueARafraichir = null;
34
	private Rafraichissable vueARafraichir = null;
35
	
35
	
36
	/**
36
	/**
37
	 * Constructeur
37
	 * Constructeur
38
	 * @param retour : méthode appellée en retour d'appel. 
38
	 * @param retour : méthode appellée en retour d'appel. 
39
	 */
39
	 */
40
	public UtilisateurAsyncDao(Rafraichissable vueARafraichirCourrante) {
40
	public UtilisateurAsyncDao(Rafraichissable vueARafraichirCourrante) {
41
		vueARafraichir = vueARafraichirCourrante;
41
		vueARafraichir = vueARafraichirCourrante;
42
		utilisateur = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);
42
		utilisateur = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);
43
	}
43
	}
44
		
44
		
45
	/**
45
	/**
46
	 * Méthode de classe d'appel du service des gestion d'identification. 
46
	 * Méthode de classe d'appel du service des gestion d'identification. 
47
	 */
47
	 */
48
	public void getEtatUtilisateur() {
48
	public void getEtatUtilisateur() {
49
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM);
49
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM);
50
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
50
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
51
			@Override
51
			@Override
52
			public void surReponse(JSONValue responseValue) {
52
			public void surReponse(JSONValue responseValue) {
53
				if (responseValue.isArray() != null) {
53
				if (responseValue.isArray() != null) {
54
					final JSONArray reponse = responseValue.isArray();
54
					final JSONArray reponse = responseValue.isArray();
55
					// Identifiant utilisateur ou identifiant de session si non identifié
55
					// Identifiant utilisateur ou identifiant de session si non identifié
56
					String login = ((JSONString) reponse.get(2)).stringValue();
56
					String login = ((JSONString) reponse.get(2)).stringValue();
57
					// Drapeau leve si utilisateur deja identifié
57
					// Drapeau leve si utilisateur deja identifié
58
					boolean identifie = ((JSONBoolean) reponse.get(3)).booleanValue();
58
					boolean identifie = ((JSONBoolean) reponse.get(3)).booleanValue();
59
					utilisateur.setIdentification(identifie);
59
					utilisateur.setIdentification(identifie);
60
					utilisateur.setLogin(login);
60
					utilisateur.setLogin(login);
61
					vueARafraichir.rafraichir(utilisateur);
61
					vueARafraichir.rafraichir(utilisateur);
62
				}
62
				}
63
			}
63
			}
64
		});
64
		});
65
	}
65
	}
66
 
66
 
67
	/**
67
	/**
68
	 * Méthode déconnectant un utilisateur de l'application. 
68
	 * Méthode déconnectant un utilisateur de l'application. 
69
	 * @param identifiant de l'utilisateur à déconnecter.
69
	 * @param identifiant de l'utilisateur à déconnecter.
70
	 */
70
	 */
71
	public void deconnecterUtilisateur() {
71
	public void deconnecterUtilisateur() {
72
		String[] parametres = {utilisateur.getId()};
72
		String[] parametres = {utilisateur.getId()};
73
		
73
		
74
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
74
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
75
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
75
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
76
			@Override
76
			@Override
77
			public void surReponse(JSONValue responseValue) {
77
			public void surReponse(JSONValue responseValue) {
78
				if (responseValue.isArray() != null) {
78
				if (responseValue.isArray() != null) {
79
					final JSONArray reponse = responseValue.isArray();
79
					final JSONArray reponse = responseValue.isArray();
80
					// Identifiant utilisateur ou identifiant de session si non identifié
80
					// Identifiant utilisateur ou identifiant de session si non identifié
81
					String id = ((JSONString) reponse.get(1)).stringValue();
81
					String id = ((JSONString) reponse.get(1)).stringValue();
82
					// Drapeau levé si l'utilisateur est déjà identifié
82
					// Drapeau levé si l'utilisateur est déjà identifié
83
					boolean identifie = ((JSONBoolean) reponse.get(2)).booleanValue();
83
					boolean identifie = ((JSONBoolean) reponse.get(2)).booleanValue();
84
					
84
					
85
					// Nous réinitialisons l'utilisateur
85
					// Nous réinitialisons l'utilisateur
86
					utilisateur = new Utilisateur(id, identifie);
86
					utilisateur = new Utilisateur(id, identifie);
87
					
87
					
88
					GWT.log(utilisateur.toString(), null);
88
					GWT.log(utilisateur.toString(), null);
89
					vueARafraichir.rafraichir(utilisateur);
89
					vueARafraichir.rafraichir(utilisateur);
90
				}
90
				}
91
			}
91
			}
92
		});
92
		});
93
	}
93
	}
94
	
94
	
95
	/**
95
	/**
96
	 * Méthode connectant un utilisateur à l'application. 
96
	 * Méthode connectant un utilisateur à l'application. 
97
	 * @param Utilisateur l'utilisateur courant.
97
	 * @param Utilisateur l'utilisateur courant.
98
	 */
98
	 */
99
	public void connecterUtilisateur() {
99
	public void connecterUtilisateur() {
100
		String[] parametres = {utilisateur.getLogin(), utilisateur.getMotDePasse()};
100
		String[] parametres = {utilisateur.getLogin(), utilisateur.getMotDePasse()};
101
		
101
		
102
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
102
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
-
 
103
		
103
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
104
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
104
			@Override
105
			@Override
105
			public void surReponse(JSONValue responseValue) {
106
			public void surReponse(JSONValue responseValue) {
106
				if (responseValue.isArray() != null) {
107
				if (responseValue.isArray() != null) {
107
					final JSONArray reponse = responseValue.isArray();
108
					final JSONArray reponse = responseValue.isArray();
108
					
109
					
109
					//Ajout des informations licence
110
					//Ajout des informations licence
110
					if (reponse.get(0).isString() != null)	{
111
					if (reponse.get(0).isString() != null)	{
111
						utilisateur.setLicence(reponse.get(0).isString().stringValue());
112
						utilisateur.setLicence(reponse.get(0).isString().stringValue());
112
					} else {
113
					} else {
113
						utilisateur.setLicence("");						
114
						utilisateur.setLicence("");						
114
					}
115
					}
115
					
116
					
116
					if (reponse.size() > 0) {
117
					if (reponse.size() > 0) {
-
 
118
						
117
						// Identifiant de l'utilisateur ou identifiant de session si non identifié
119
						// Identifiant de l'utilisateur ou identifiant de session si non identifié
118
						utilisateur.setId(((JSONString) reponse.get(1)).stringValue());
120
						utilisateur.setId(((JSONString) reponse.get(1)).stringValue());
119
					
121
					
120
						// Drapeau levé si l'utilisateur est déjà identifié
122
						// Drapeau levé si l'utilisateur est déjà identifié
121
						GWT.log(reponse.toString(), null);
-
 
122
						utilisateur.setIdentification(((JSONBoolean) reponse.get(2)).booleanValue());
123
						utilisateur.setIdentification(((JSONBoolean) reponse.get(2)).booleanValue());
123
					
124
					
124
						// Plus de deux valeurs, l'utilisateur est identifié nous récupérons des données supplémentaires
125
						// Plus de deux valeurs, l'utilisateur est identifié nous récupérons des données supplémentaires
125
						if (reponse.size() > 3) {
126
						if (reponse.size() > 3) {
126
							// Nom complet de l'utilisateur
127
							// Nom complet de l'utilisateur
127
							if (reponse.get(3).isString() != null) {
128
							if (reponse.get(3).isString() != null) {
128
								utilisateur.setNomComplet(((JSONString) reponse.get(3)).stringValue());
129
								utilisateur.setNomComplet(((JSONString) reponse.get(3)).stringValue());
129
							}
130
							}
130
							// Prénom de l'utilisateur
131
							// Prénom de l'utilisateur
131
							if (reponse.get(4).isString() != null) {
132
							if (reponse.get(4).isString() != null) {
132
								utilisateur.setPrenom(((JSONString) reponse.get(4)).stringValue());
133
								utilisateur.setPrenom(((JSONString) reponse.get(4)).stringValue());
133
							}
134
							}
134
							
135
							
135
							// Nom de l'utilisateur
136
							// Nom de l'utilisateur
136
							if (reponse.get(5).isString() != null) {
137
							if (reponse.get(5).isString() != null) {
137
								utilisateur.setNom(((JSONString) reponse.get(5)).stringValue());
138
								utilisateur.setNom(((JSONString) reponse.get(5)).stringValue());
138
							}
139
							}
139
							
140
							
140
							// Paramètres
141
							// Paramètres
141
							if (reponse.get(6).isString() != null) {
142
							if (reponse.get(6).isString() != null) {
142
								utilisateur.setParametre(((JSONString) reponse.get(6)).stringValue());
143
								utilisateur.setParametre(((JSONString) reponse.get(6)).stringValue());
143
							}
144
							}
144
							
145
							
145
						}
146
						}
146
						vueARafraichir.rafraichir(utilisateur);
147
						vueARafraichir.rafraichir(utilisateur);
147
					}
148
					}
148
				}
149
				}
149
			}
150
			}
150
		});
151
		});
151
	}
152
	}
152
	
153
	
153
	/*
154
	/*
154
	 * */
155
	 * */
155
	public void accepterLicence()	{
156
	public void accepterLicence()	{
156
		String[] parametres = {utilisateur.getLogin(), utilisateur.getMotDePasse(), utilisateur.getId()};
157
		String[] parametres = {utilisateur.getLogin(), utilisateur.getMotDePasse(), utilisateur.getId()};
157
		
158
		
158
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
159
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
159
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
160
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
160
			@Override
161
			@Override
161
			public void surReponse(JSONValue responseValue) {
162
			public void surReponse(JSONValue responseValue) {
162
				if (responseValue.isArray() != null) {
163
				if (responseValue.isArray() != null) {
163
					final JSONArray reponse = responseValue.isArray();
164
					final JSONArray reponse = responseValue.isArray();
164
					if (reponse.get(0).isString() != null)	{
165
					if (reponse.get(0).isString() != null)	{
165
						String licenceAcceptee = reponse.get(0).isString().stringValue();
166
						String licenceAcceptee = reponse.get(0).isString().stringValue();
166
						Information info = new Information("maj_licence");
167
						Information info = new Information("maj_licence");
167
						info.setDonnee(0, licenceAcceptee);
168
						info.setDonnee(0, licenceAcceptee);
168
						vueARafraichir.rafraichir(info);
169
						vueARafraichir.rafraichir(info);
169
					}
170
					}
170
				}
171
				}
171
			}
172
			}
172
		});
173
		});
173
	}
174
	}
174
}	
175
}