Subversion Repositories eFlore/Applications.coel

Rev

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