Subversion Repositories eFlore/Applications.del

Rev

Rev 942 | Rev 948 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
602 aurelien 1
package org.tela_botanica.del.client.composants.formulaires.identification;
536 gduche 2
 
3
import org.tela_botanica.del.client.cache.CacheClient;
4
import org.tela_botanica.del.client.modeles.Utilisateur;
549 gduche 5
import org.tela_botanica.del.client.services.rest.UtilisateurService;
536 gduche 6
import org.tela_botanica.del.client.services.rest.async.UtilisateurCallback;
939 benjamin 7
 
536 gduche 8
import com.google.gwt.event.dom.client.ClickEvent;
9
import com.google.gwt.event.dom.client.ClickHandler;
10
import com.google.gwt.event.dom.client.HasClickHandlers;
597 aurelien 11
import com.google.gwt.event.dom.client.HasKeyPressHandlers;
12
import com.google.gwt.event.dom.client.KeyCodes;
13
import com.google.gwt.event.dom.client.KeyPressEvent;
14
import com.google.gwt.event.dom.client.KeyPressHandler;
549 gduche 15
import com.google.gwt.user.client.ui.HasText;
536 gduche 16
import com.google.gwt.user.client.ui.HasWidgets;
17
import com.google.gwt.user.client.ui.IsWidget;
18
 
19
public class FormulaireIdentificationPresenteur {
939 benjamin 20
 
536 gduche 21
	public abstract interface Vue extends IsWidget {
22
		public void ajouterVue(HasWidgets composite);
939 benjamin 23
 
536 gduche 24
		public HasClickHandlers getSeConnecter();
939 benjamin 25
 
536 gduche 26
		public HasClickHandlers getSeDeconnecter();
939 benjamin 27
 
536 gduche 28
		public void basculerAffichageFormulaire();
939 benjamin 29
 
536 gduche 30
		public void basculerModeConnecte(Utilisateur utilisateur);
939 benjamin 31
 
536 gduche 32
		public HasClickHandlers getBoutonOK();
939 benjamin 33
 
549 gduche 34
		public HasText getLogin();
939 benjamin 35
 
549 gduche 36
		public HasText getMotdepasse();
939 benjamin 37
 
536 gduche 38
		public void afficherErreur();
939 benjamin 39
 
536 gduche 40
		public void masquerErreur();
939 benjamin 41
 
536 gduche 42
		public void viderFormulaire();
939 benjamin 43
 
549 gduche 44
		public void setErreur(String idTexte);
939 benjamin 45
 
549 gduche 46
		public String getErreur();
939 benjamin 47
 
597 aurelien 48
		public HasKeyPressHandlers getLoginHasKeyPressHandler();
939 benjamin 49
 
597 aurelien 50
		public HasKeyPressHandlers getMotdepasseHasKeyPressHandler();
536 gduche 51
	}
939 benjamin 52
 
536 gduche 53
	private Vue vue;
54
	private Utilisateur utilisateur;
549 gduche 55
	private UtilisateurService utilisateurService;
939 benjamin 56
 
549 gduche 57
	public FormulaireIdentificationPresenteur(Vue vue, UtilisateurService utilisateurService) {
536 gduche 58
		this.vue = vue;
549 gduche 59
		this.utilisateurService = utilisateurService;
536 gduche 60
		utilisateurService.obtenirUtilisateur(new UtilisateurCallback() {
939 benjamin 61
 
536 gduche 62
			@Override
939 benjamin 63
			public void surRetour(Utilisateur objetRetour) {
946 benjamin 64
				utilisateur=objetRetour;
536 gduche 65
				CacheClient.getInstance().setUtilisateur(utilisateur);
66
				rafraichir();
67
			}
68
		});
69
		gererEvenements();
939 benjamin 70
 
536 gduche 71
	}
939 benjamin 72
 
536 gduche 73
	public void rafraichir() {
939 benjamin 74
		utilisateur = CacheClient.getInstance().getUtilisateur();
536 gduche 75
		vue.basculerModeConnecte(this.utilisateur);
76
	}
939 benjamin 77
 
536 gduche 78
	public void gererEvenements() {
79
		vue.getSeConnecter().addClickHandler(new ClickHandler() {
939 benjamin 80
 
536 gduche 81
			@Override
82
			public void onClick(ClickEvent event) {
83
				vue.basculerAffichageFormulaire();
84
			}
85
		});
939 benjamin 86
 
536 gduche 87
		vue.getBoutonOK().addClickHandler(new ClickHandler() {
88
			@Override
89
			public void onClick(ClickEvent event) {
597 aurelien 90
				surTentativeLogin();
536 gduche 91
			}
92
		});
939 benjamin 93
 
536 gduche 94
		vue.getSeDeconnecter().addClickHandler(new ClickHandler() {
95
			@Override
96
			public void onClick(ClickEvent event) {
939 benjamin 97
				deconnecterUtilisateur();
536 gduche 98
			}
99
		});
939 benjamin 100
 
597 aurelien 101
		vue.getLoginHasKeyPressHandler().addKeyPressHandler(creerGestionnaireEvenementToucheEntree());
102
		vue.getMotdepasseHasKeyPressHandler().addKeyPressHandler(creerGestionnaireEvenementToucheEntree());
536 gduche 103
	}
939 benjamin 104
 
597 aurelien 105
	private void surTentativeLogin() {
939 benjamin 106
		String login = vue.getLogin().getText();
597 aurelien 107
		String motdepasse = vue.getMotdepasse().getText();
939 benjamin 108
 
597 aurelien 109
		if (login.equals("") || motdepasse.equals("")) {
110
			gererErreur("saisirLogin");
111
		} else {
112
			connecterUtilisateur(login, motdepasse);
113
		}
114
	}
939 benjamin 115
 
597 aurelien 116
	public KeyPressHandler creerGestionnaireEvenementToucheEntree() {
117
		return new KeyPressHandler() {
118
			public void onKeyPress(KeyPressEvent event) {
119
				if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) {
120
					surTentativeLogin();
121
				}
122
			}
123
		};
124
	}
939 benjamin 125
 
549 gduche 126
	public void gererErreur(String erreur) {
127
		vue.setErreur(erreur);
128
		vue.afficherErreur();
129
	}
939 benjamin 130
 
549 gduche 131
	public void connecterUtilisateur(String login, String motdepasse) {
132
 
133
		utilisateurService.connecterUtilisateur(login, motdepasse, new UtilisateurCallback() {
939 benjamin 134
 
135
			public void surErreur(String message) {
136
				vue.setErreur("identificationRefus");
137
				vue.afficherErreur();
138
			}
139
 
549 gduche 140
			@Override
939 benjamin 141
			public void surRetour(Utilisateur objetRetour) {
942 benjamin 142
				utilisateur=objetRetour;
946 benjamin 143
				CacheClient.getInstance().setUtilisateur(utilisateur);
597 aurelien 144
				if (utilisateur.estIdentifie()) {
549 gduche 145
					vue.masquerErreur();
146
					rafraichir();
147
					vue.basculerAffichageFormulaire();
148
					vue.viderFormulaire();
939 benjamin 149
				}
549 gduche 150
			}
151
		});
152
	}
939 benjamin 153
 
804 gduche 154
	public void deconnecterUtilisateur() {
155
		utilisateurService.deconnecterUtilisateur(new UtilisateurCallback() {
939 benjamin 156
 
157
			public void surErreur(String message) {
158
				vue.setErreur("identificationRefus");
159
				vue.afficherErreur();
160
			}
161
 
549 gduche 162
			@Override
939 benjamin 163
			public void surRetour(Utilisateur objetRetour) {
549 gduche 164
				CacheClient.getInstance().setUtilisateur(utilisateur);
165
				rafraichir();
166
			}
167
		});
168
	}
939 benjamin 169
 
536 gduche 170
	public void go(HasWidgets composite) {
171
		vue.ajouterVue(composite);
172
	}
173
}