Subversion Repositories eFlore/Applications.del

Rev

Rev 602 | Rev 939 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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