Subversion Repositories eFlore/Applications.coel

Rev

Rev 769 | Rev 897 | 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
import org.tela_botanica.client.RegistreId;
772 jpm 4
import org.tela_botanica.client.http.JsonRestRequestBuilder;
5
import org.tela_botanica.client.http.JsonRestRequestCallback;
64 jpm 6
import org.tela_botanica.client.interfaces.Rafraichissable;
346 gduche 7
import org.tela_botanica.client.util.UtilDAO;
64 jpm 8
 
9
import com.extjs.gxt.ui.client.Registry;
346 gduche 10
import com.extjs.gxt.ui.client.widget.Info;
132 jpm 11
import com.google.gwt.core.client.GWT;
64 jpm 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
 
268 jp_milcent 23
/**
24
 * Modele DAO, specifique, permettant la validation, l'acces aux donnees distantes et la présentation des donnees en retour
25
 *
26
 */
69 jpm 27
public class UtilisateurAsyncDao {
268 jp_milcent 28
	private static final String SERVICE_NOM = "CoelUtilisateur";
29
 
65 jpm 30
	private Utilisateur utilisateur = null;
358 jp_milcent 31
	private Rafraichissable vueARafraichir = null;
64 jpm 32
 
33
	/**
34
	 * Constructeur
35
	 * @param retour : méthode appellée en retour d'appel.
36
	 */
772 jpm 37
	public UtilisateurAsyncDao(Rafraichissable vueARafraichirCourrante) {
38
		vueARafraichir = vueARafraichirCourrante;
277 jp_milcent 39
		utilisateur = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);
64 jpm 40
	}
41
 
42
	/**
43
	 * Méthode de classe d'appel du service des gestion d'identification.
44
	 */
45
	public void getEtatUtilisateur() {
772 jpm 46
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM);
47
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
48
			@Override
49
			public void surReponse(JSONValue responseValue) {
50
				if (responseValue.isArray() != null) {
51
					final JSONArray reponse = responseValue.isArray();
52
					// Identifiant utilisateur ou identifiant de session si non identifié
53
					String login = ((JSONString) reponse.get(0)).stringValue();
54
					// Drapeau leve si utilisateur deja identifié
55
					boolean identifie = ((JSONBoolean) reponse.get(1)).booleanValue();
56
					utilisateur.setIdentification(identifie);
57
					utilisateur.setLogin(login);
58
					vueARafraichir.rafraichir(utilisateur);
64 jpm 59
				}
772 jpm 60
			}
61
		});
64 jpm 62
	}
63
 
64
	/**
65
	 * Méthode déconnectant un utilisateur de l'application.
66
	 * @param identifiant de l'utilisateur à déconnecter.
67
	 */
65 jpm 68
	public void deconnecterUtilisateur() {
772 jpm 69
		String[] parametres = {utilisateur.getId()};
70
 
71
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
72
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
73
			@Override
74
			public void surReponse(JSONValue responseValue) {
75
				if (responseValue.isArray() != null) {
76
					final JSONArray reponse = responseValue.isArray();
77
					// Identifiant utilisateur ou identifiant de session si non identifié
78
					String id = ((JSONString) reponse.get(0)).stringValue();
79
					// Drapeau levé si l'utilisateur est déjà identifié
80
					boolean identifie = ((JSONBoolean) reponse.get(1)).booleanValue();
81
 
82
					// Nous réinitialisons l'utilisateur
83
					utilisateur = new Utilisateur(id, identifie);
84
 
85
					GWT.log(utilisateur.toString(), null);
86
					vueARafraichir.rafraichir(utilisateur);
64 jpm 87
				}
772 jpm 88
			}
89
		});
64 jpm 90
	}
91
 
92
	/**
358 jp_milcent 93
	 * Méthode connectant un utilisateur à l'application.
64 jpm 94
	 * @param Utilisateur l'utilisateur courant.
95
	 */
772 jpm 96
	public void connecterUtilisateur() {
97
		String[] parametres = {utilisateur.getLogin(), utilisateur.getMotDePasse()};
65 jpm 98
 
772 jpm 99
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
100
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
101
			@Override
102
			public void surReponse(JSONValue responseValue) {
103
				if (responseValue.isArray() != null) {
104
					final JSONArray reponse = responseValue.isArray();
105
					if (reponse.size() > 0) {
106
						// Identifiant de l'utilisateur ou identifiant de session si non identifié
107
						utilisateur.setId(((JSONString) reponse.get(0)).stringValue());
108
 
109
						// Drapeau levé si l'utilisateur est déjà identifié
110
						GWT.log(reponse.toString(), null);
111
						utilisateur.setIdentification(((JSONBoolean) reponse.get(1)).booleanValue());
112
 
113
						// Plus de deux valeurs, l'utilisateur est identifié nous récupérons des données supplémentaires
114
						if (reponse.size() > 2) {
115
							// Nom complet de l'utilisateur
116
							if (reponse.get(2).isString() != null) {
117
								utilisateur.setNomComplet(((JSONString) reponse.get(2)).stringValue());
132 jpm 118
							}
772 jpm 119
							// Prénom de l'utilisateur
120
							if (reponse.get(3).isString() != null) {
121
								utilisateur.setPrenom(((JSONString) reponse.get(3)).stringValue());
122
							}
123
							// Nom de l'utilisateur
124
							if (reponse.get(4).isString() != null) {
125
								utilisateur.setNom(((JSONString) reponse.get(4)).stringValue());
126
							}
127
							GWT.log(utilisateur.toString(), null);
132 jpm 128
						}
772 jpm 129
						vueARafraichir.rafraichir(utilisateur);
358 jp_milcent 130
					}
64 jpm 131
				}
772 jpm 132
			}
133
		});
64 jpm 134
	}
135
}