Subversion Repositories eFlore/Applications.coel

Rev

Rev 1218 | 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);
1312 cyprien 103
 
772 jpm 104
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
105
			@Override
106
			public void surReponse(JSONValue responseValue) {
107
				if (responseValue.isArray() != null) {
108
					final JSONArray reponse = responseValue.isArray();
897 gduche 109
 
110
					//Ajout des informations licence
1196 jpm 111
					if (reponse.get(0).isString() != null)	{
112
						utilisateur.setLicence(reponse.get(0).isString().stringValue());
897 gduche 113
					} else {
114
						utilisateur.setLicence("");
115
					}
116
 
772 jpm 117
					if (reponse.size() > 0) {
1312 cyprien 118
 
772 jpm 119
						// Identifiant de l'utilisateur ou identifiant de session si non identifié
1196 jpm 120
						utilisateur.setId(((JSONString) reponse.get(1)).stringValue());
772 jpm 121
 
122
						// Drapeau levé si l'utilisateur est déjà identifié
1312 cyprien 123
						GWT.log("reponse="+reponse.toString(), null);
1218 cyprien 124
 
1196 jpm 125
						utilisateur.setIdentification(((JSONBoolean) reponse.get(2)).booleanValue());
772 jpm 126
 
127
						// Plus de deux valeurs, l'utilisateur est identifié nous récupérons des données supplémentaires
1196 jpm 128
						if (reponse.size() > 3) {
772 jpm 129
							// Nom complet de l'utilisateur
1196 jpm 130
							if (reponse.get(3).isString() != null) {
1198 jpm 131
								utilisateur.setNomComplet(((JSONString) reponse.get(3)).stringValue());
132 jpm 132
							}
772 jpm 133
							// Prénom de l'utilisateur
1196 jpm 134
							if (reponse.get(4).isString() != null) {
1198 jpm 135
								utilisateur.setPrenom(((JSONString) reponse.get(4)).stringValue());
772 jpm 136
							}
897 gduche 137
 
772 jpm 138
							// Nom de l'utilisateur
1196 jpm 139
							if (reponse.get(5).isString() != null) {
1198 jpm 140
								utilisateur.setNom(((JSONString) reponse.get(5)).stringValue());
912 jpm 141
							}
897 gduche 142
 
912 jpm 143
							// Paramètres
1196 jpm 144
							if (reponse.get(6).isString() != null) {
1198 jpm 145
								utilisateur.setParametre(((JSONString) reponse.get(6)).stringValue());
912 jpm 146
							}
147
 
132 jpm 148
						}
1312 cyprien 149
 
772 jpm 150
						vueARafraichir.rafraichir(utilisateur);
358 jp_milcent 151
					}
64 jpm 152
				}
772 jpm 153
			}
154
		});
64 jpm 155
	}
897 gduche 156
 
157
	/*
158
	 * */
159
	public void accepterLicence()	{
160
		String[] parametres = {utilisateur.getLogin(), utilisateur.getMotDePasse(), utilisateur.getId()};
161
 
162
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
163
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
164
			@Override
165
			public void surReponse(JSONValue responseValue) {
166
				if (responseValue.isArray() != null) {
167
					final JSONArray reponse = responseValue.isArray();
1312 cyprien 168
					if (reponse.get(0).isString() != null)	{
169
						String licenceAcceptee = reponse.get(0).isString().stringValue();
897 gduche 170
						Information info = new Information("maj_licence");
171
						info.setDonnee(0, licenceAcceptee);
172
						vueARafraichir.rafraichir(info);
173
					}
174
				}
175
			}
176
		});
177
	}
178
}