Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1175 Rev 1183
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.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
4
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
5
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
5
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
6
import org.tela_botanica.del.client.composants.preferences.PreferencesPresenteur;
6
import org.tela_botanica.del.client.composants.preferences.PreferencesPresenteur;
7
import org.tela_botanica.del.client.composants.preferences.PreferencesVue;
7
import org.tela_botanica.del.client.composants.preferences.PreferencesVue;
8
import org.tela_botanica.del.client.modeles.Utilisateur;
8
import org.tela_botanica.del.client.modeles.Utilisateur;
9
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
9
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
10
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
10
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
11
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
11
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
12
import org.tela_botanica.del.client.navigation.evenement.changementPreferences.EvenementChangementPreferences;
12
import org.tela_botanica.del.client.navigation.evenement.changementPreferences.EvenementChangementPreferences;
13
import org.tela_botanica.del.client.navigation.evenement.changementPreferences.GestionnaireEvenementChangementPreferences;
13
import org.tela_botanica.del.client.navigation.evenement.changementPreferences.GestionnaireEvenementChangementPreferences;
14
import org.tela_botanica.del.client.services.rest.PreferencesServiceConcret;
14
import org.tela_botanica.del.client.services.rest.PreferencesServiceConcret;
15
import org.tela_botanica.del.client.services.rest.UtilisateurService;
15
import org.tela_botanica.del.client.services.rest.UtilisateurService;
16
import org.tela_botanica.del.client.services.rest.async.UtilisateurCallback;
16
import org.tela_botanica.del.client.services.rest.async.UtilisateurCallback;
17
 
17
 
18
import com.google.gwt.event.dom.client.ClickEvent;
18
import com.google.gwt.event.dom.client.ClickEvent;
19
import com.google.gwt.event.dom.client.ClickHandler;
19
import com.google.gwt.event.dom.client.ClickHandler;
20
import com.google.gwt.event.dom.client.HasClickHandlers;
20
import com.google.gwt.event.dom.client.HasClickHandlers;
21
import com.google.gwt.event.dom.client.HasKeyPressHandlers;
21
import com.google.gwt.event.dom.client.HasKeyPressHandlers;
22
import com.google.gwt.event.dom.client.KeyCodes;
22
import com.google.gwt.event.dom.client.KeyCodes;
23
import com.google.gwt.event.dom.client.KeyPressEvent;
23
import com.google.gwt.event.dom.client.KeyPressEvent;
24
import com.google.gwt.event.dom.client.KeyPressHandler;
24
import com.google.gwt.event.dom.client.KeyPressHandler;
25
import com.google.gwt.user.client.ui.HasText;
25
import com.google.gwt.user.client.ui.HasText;
26
import com.google.gwt.user.client.ui.HasWidgets;
26
import com.google.gwt.user.client.ui.HasWidgets;
27
import com.google.gwt.user.client.ui.IsWidget;
27
import com.google.gwt.user.client.ui.IsWidget;
28
 
28
 
29
public class FormulaireIdentificationPresenteur {
29
public class FormulaireIdentificationPresenteur {
30
	
30
	
31
	FenetreOverlaySimplePresenteur fenetreModalePresenteur = null;
31
	FenetreOverlaySimplePresenteur fenetreModalePresenteur = null;
32
 
32
 
33
	public abstract interface Vue extends IsWidget {
33
	public abstract interface Vue extends IsWidget {
34
		public void ajouterVue(HasWidgets composite);
34
		public void ajouterVue(HasWidgets composite);
35
 
35
 
36
		public HasClickHandlers getSeConnecter();
36
		public HasClickHandlers getSeConnecter();
37
 
37
 
38
		public HasClickHandlers getSeDeconnecter();
38
		public HasClickHandlers getSeDeconnecter();
39
 
39
 
40
		public void basculerAffichageFormulaire();
40
		public void basculerAffichageFormulaire(boolean estConnecte);
41
 
41
 
42
		public void basculerModeConnecte(Utilisateur utilisateur);
42
		public void basculerModeConnecte(Utilisateur utilisateur);
43
 
43
 
44
		public HasClickHandlers getBoutonOK();
44
		public HasClickHandlers getBoutonOK();
45
 
45
 
46
		public HasText getLogin();
46
		public HasText getLogin();
47
 
47
 
48
		public HasText getMotdepasse();
48
		public HasText getMotdepasse();
49
 
49
 
50
		public void afficherErreur();
50
		public void afficherErreur();
51
 
51
 
52
		public void masquerErreur();
52
		public void masquerErreur();
53
 
53
 
54
		public void viderFormulaire();
54
		public void viderFormulaire();
55
 
55
 
56
		public void setErreur(String idTexte);
56
		public void setErreur(String idTexte);
57
 
57
 
58
		public String getErreur();
58
		public String getErreur();
59
 
59
 
60
		public HasKeyPressHandlers getLoginHasKeyPressHandler();
60
		public HasKeyPressHandlers getLoginHasKeyPressHandler();
61
 
61
 
62
		public HasKeyPressHandlers getMotdepasseHasKeyPressHandler();
62
		public HasKeyPressHandlers getMotdepasseHasKeyPressHandler();
63
 
63
 
64
		HasClickHandlers getZonePreferencesClickHandler();
64
		HasClickHandlers getZonePreferencesClickHandler();
65
	}
65
	}
66
 
66
 
67
	private Vue vue;
67
	private Vue vue;
68
	private Utilisateur utilisateur;
68
	private Utilisateur utilisateur;
69
	private UtilisateurService utilisateurService;
69
	private UtilisateurService utilisateurService;
70
 
70
 
71
	public FormulaireIdentificationPresenteur(Vue vue, UtilisateurService utilisateurService) {
71
	public FormulaireIdentificationPresenteur(Vue vue, UtilisateurService utilisateurService) {
72
		this.vue = vue;
72
		this.vue = vue;
73
		this.utilisateurService = utilisateurService;
73
		this.utilisateurService = utilisateurService;
74
		utilisateurService.obtenirUtilisateur(new UtilisateurCallback() {
74
		utilisateurService.obtenirUtilisateur(new UtilisateurCallback() {
75
 
75
 
76
			@Override
76
			@Override
77
			public void surRetour(Utilisateur objetRetour) {
77
			public void surRetour(Utilisateur objetRetour) {
78
				utilisateur = objetRetour;
78
				utilisateur = objetRetour;
79
				CacheClient.getInstance().setUtilisateur(utilisateur);
79
				CacheClient.getInstance().setUtilisateur(utilisateur);
80
				rafraichir();
80
				rafraichir();
81
			}
81
			}
82
		});
82
		});
83
		gererEvenements();
83
		gererEvenements();
84
 
84
 
85
	}
85
	}
86
 
86
 
87
	public void rafraichir() {
87
	public void rafraichir() {
88
		utilisateur = CacheClient.getInstance().getUtilisateur();
88
		utilisateur = CacheClient.getInstance().getUtilisateur();
89
		vue.basculerModeConnecte(this.utilisateur);
89
		vue.basculerModeConnecte(this.utilisateur);
90
	}
90
	}
91
 
91
 
92
	public void gererEvenements() {
92
	public void gererEvenements() {
93
		vue.getSeConnecter().addClickHandler(new ClickHandler() {
-
 
94
 
-
 
95
			@Override
-
 
96
			public void onClick(ClickEvent event) {
-
 
97
				vue.basculerAffichageFormulaire();
-
 
98
			}
-
 
99
		});
-
 
100
 
-
 
101
		vue.getBoutonOK().addClickHandler(new ClickHandler() {
93
		vue.getBoutonOK().addClickHandler(new ClickHandler() {
102
			@Override
94
			@Override
103
			public void onClick(ClickEvent event) {
95
			public void onClick(ClickEvent event) {
104
				surTentativeLogin();
96
				surTentativeLogin();
105
			}
97
			}
106
		});
98
		});
107
 
99
 
108
		vue.getSeDeconnecter().addClickHandler(new ClickHandler() {
100
		vue.getSeDeconnecter().addClickHandler(new ClickHandler() {
109
			@Override
101
			@Override
110
			public void onClick(ClickEvent event) {
102
			public void onClick(ClickEvent event) {
111
				deconnecterUtilisateur();
103
				deconnecterUtilisateur();
112
			}
104
			}
113
		});
105
		});
114
 
106
 
115
		vue.getLoginHasKeyPressHandler().addKeyPressHandler(creerGestionnaireEvenementToucheEntree());
107
		vue.getLoginHasKeyPressHandler().addKeyPressHandler(creerGestionnaireEvenementToucheEntree());
116
		vue.getMotdepasseHasKeyPressHandler().addKeyPressHandler(creerGestionnaireEvenementToucheEntree());
108
		vue.getMotdepasseHasKeyPressHandler().addKeyPressHandler(creerGestionnaireEvenementToucheEntree());
117
		
109
		
118
		vue.getZonePreferencesClickHandler().addClickHandler(new ClickHandler() {		
110
		vue.getZonePreferencesClickHandler().addClickHandler(new ClickHandler() {		
119
			@Override
111
			@Override
120
			public void onClick(ClickEvent event) {
112
			public void onClick(ClickEvent event) {
121
				if(utilisateur.estIdentifie()) {
113
				if(utilisateur.estIdentifie()) {
122
					PreferencesPresenteur preferencesPresenteur = new PreferencesPresenteur(new PreferencesVue(), new PreferencesServiceConcret());
114
					PreferencesPresenteur preferencesPresenteur = new PreferencesPresenteur(new PreferencesVue(), new PreferencesServiceConcret());
123
					fenetreModalePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
115
					fenetreModalePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
124
					fenetreModalePresenteur.ouvrirFenetreModale(preferencesPresenteur);
116
					fenetreModalePresenteur.ouvrirFenetreModale(preferencesPresenteur);
125
				}
117
				}
126
			}
118
			}
127
		});
119
		});
128
		
120
		
129
		BusEvenementiel.getInstance().addHandler(EvenementChangementPreferences.TYPE, new GestionnaireEvenementChangementPreferences() {		
121
		BusEvenementiel.getInstance().addHandler(EvenementChangementPreferences.TYPE, new GestionnaireEvenementChangementPreferences() {		
130
			@Override
122
			@Override
131
			public void onChangementPreferences(EvenementChangementPreferences event) {
123
			public void onChangementPreferences(EvenementChangementPreferences event) {
132
				if(fenetreModalePresenteur != null && fenetreModalePresenteur.fenetreModaleEstOuverte()) {
124
				if(fenetreModalePresenteur != null && fenetreModalePresenteur.fenetreModaleEstOuverte()) {
133
					fenetreModalePresenteur.fermerFenetreModale();
125
					fenetreModalePresenteur.fermerFenetreModale();
134
				}
126
				}
135
			}
127
			}
136
		});
128
		});
137
	}
129
	}
138
 
130
 
139
	private void surTentativeLogin() {
131
	private void surTentativeLogin() {
140
		String login = vue.getLogin().getText();
132
		String login = vue.getLogin().getText();
141
		String motdepasse = vue.getMotdepasse().getText();
133
		String motdepasse = vue.getMotdepasse().getText();
142
 
134
 
143
		if (login.equals("") || motdepasse.equals("")) {
135
		if (login.equals("") || motdepasse.equals("")) {
144
			gererErreur("saisirLogin");
136
			gererErreur("saisirLogin");
145
		} else {
137
		} else {
146
			connecterUtilisateur(login, motdepasse);
138
			connecterUtilisateur(login, motdepasse);
147
		}
139
		}
148
	}
140
	}
149
 
141
 
150
	public KeyPressHandler creerGestionnaireEvenementToucheEntree() {
142
	public KeyPressHandler creerGestionnaireEvenementToucheEntree() {
151
		return new KeyPressHandler() {
143
		return new KeyPressHandler() {
152
			public void onKeyPress(KeyPressEvent event) {
144
			public void onKeyPress(KeyPressEvent event) {
153
				if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) {
145
				if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) {
154
					surTentativeLogin();
146
					surTentativeLogin();
155
				}
147
				}
156
			}
148
			}
157
		};
149
		};
158
	}
150
	}
159
 
151
 
160
	public void gererErreur(String erreur) {
152
	public void gererErreur(String erreur) {
161
		vue.setErreur(erreur);
153
		vue.setErreur(erreur);
162
		vue.afficherErreur();
154
		vue.afficherErreur();
163
	}
155
	}
164
 
156
 
165
	public void connecterUtilisateur(String login, String motdepasse) {
157
	public void connecterUtilisateur(String login, String motdepasse) {
166
 
158
 
167
		utilisateurService.connecterUtilisateur(login, motdepasse, new UtilisateurCallback() {
159
		utilisateurService.connecterUtilisateur(login, motdepasse, new UtilisateurCallback() {
168
 
160
 
169
			public void surErreur(String message) {
161
			public void surErreur(String message) {
170
				vue.setErreur("identificationRefus");
162
				vue.setErreur("identificationRefus");
171
				vue.afficherErreur();
163
				vue.afficherErreur();
172
			}
164
			}
173
 
165
 
174
			@Override
166
			@Override
175
			public void surRetour(Utilisateur objetRetour) {
167
			public void surRetour(Utilisateur objetRetour) {
176
				utilisateur = objetRetour;
168
				utilisateur = objetRetour;
177
				CacheClient.getInstance().setUtilisateur(utilisateur);
169
				CacheClient.getInstance().setUtilisateur(utilisateur);
178
				if (utilisateur.estIdentifie()) {
170
				if (utilisateur.estIdentifie()) {
179
					vue.masquerErreur();
171
					vue.masquerErreur();
180
					rafraichir();
172
					rafraichir();
181
					vue.basculerAffichageFormulaire();
-
 
182
					vue.viderFormulaire();
173
					vue.viderFormulaire();
183
				}
174
				}
184
			}
175
			}
185
		});
176
		});
186
	}
177
	}
187
 
178
 
188
	public void deconnecterUtilisateur() {
179
	public void deconnecterUtilisateur() {
189
		utilisateurService.deconnecterUtilisateur(new UtilisateurCallback() {
180
		utilisateurService.deconnecterUtilisateur(new UtilisateurCallback() {
190
 
181
 
191
			public void surErreur(String message) {
182
			public void surErreur(String message) {
192
				vue.setErreur("identificationRefus");
183
				vue.setErreur("identificationRefus");
193
				vue.afficherErreur();
184
				vue.afficherErreur();
194
			}
185
			}
195
 
186
 
196
			@Override
187
			@Override
197
			public void surRetour(Utilisateur objetRetour) {
188
			public void surRetour(Utilisateur objetRetour) {
198
				utilisateur = objetRetour;
189
				utilisateur = objetRetour;
199
				CacheClient.getInstance().setUtilisateur(utilisateur);
190
				CacheClient.getInstance().setUtilisateur(utilisateur);
200
				rafraichir();
191
				rafraichir();
201
			}
192
			}
202
		});
193
		});
203
	}
194
	}
204
 
195
 
205
	public void go(HasWidgets composite) {
196
	public void go(HasWidgets composite) {
206
		vue.ajouterVue(composite);
197
		vue.ajouterVue(composite);
207
	}
198
	}
208
}
199
}