Subversion Repositories eFlore/Applications.coel

Rev

Rev 1369 | 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é
1210 cyprien 81
					String id = ((JSONString) reponse.get(1)).stringValue();
772 jpm 82
					// Drapeau levé si l'utilisateur est déjà identifié
1210 cyprien 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);
1369 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
1197 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) {
1369 cyprien 118
 
772 jpm 119
						// Identifiant de l'utilisateur ou identifiant de session si non identifié
1197 jpm 120
						utilisateur.setId(((JSONString) reponse.get(1)).stringValue());
772 jpm 121
 
122
						// Drapeau levé si l'utilisateur est déjà identifié
1197 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
1197 jpm 126
						if (reponse.size() > 3) {
772 jpm 127
							// Nom complet de l'utilisateur
1197 jpm 128
							if (reponse.get(3).isString() != null) {
1210 cyprien 129
								utilisateur.setNomComplet(((JSONString) reponse.get(3)).stringValue());
132 jpm 130
							}
772 jpm 131
							// Prénom de l'utilisateur
1197 jpm 132
							if (reponse.get(4).isString() != null) {
1210 cyprien 133
								utilisateur.setPrenom(((JSONString) reponse.get(4)).stringValue());
772 jpm 134
							}
897 gduche 135
 
772 jpm 136
							// Nom de l'utilisateur
1197 jpm 137
							if (reponse.get(5).isString() != null) {
1210 cyprien 138
								utilisateur.setNom(((JSONString) reponse.get(5)).stringValue());
912 jpm 139
							}
897 gduche 140
 
912 jpm 141
							// Paramètres
1197 jpm 142
							if (reponse.get(6).isString() != null) {
1210 cyprien 143
								utilisateur.setParametre(((JSONString) reponse.get(6)).stringValue());
912 jpm 144
							}
145
 
132 jpm 146
						}
772 jpm 147
						vueARafraichir.rafraichir(utilisateur);
358 jp_milcent 148
					}
64 jpm 149
				}
772 jpm 150
			}
151
		});
64 jpm 152
	}
897 gduche 153
 
154
	/*
155
	 * */
156
	public void accepterLicence()	{
157
		String[] parametres = {utilisateur.getLogin(), utilisateur.getMotDePasse(), utilisateur.getId()};
158
 
159
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
160
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
161
			@Override
162
			public void surReponse(JSONValue responseValue) {
163
				if (responseValue.isArray() != null) {
164
					final JSONArray reponse = responseValue.isArray();
1329 cyprien 165
					if (reponse.get(0).isString() != null)	{
166
						String licenceAcceptee = reponse.get(0).isString().stringValue();
897 gduche 167
						Information info = new Information("maj_licence");
168
						info.setDonnee(0, licenceAcceptee);
169
						vueARafraichir.rafraichir(info);
170
					}
171
				}
172
			}
173
		});
174
	}
175
}