Subversion Repositories eFlore/Applications.coel

Rev

Rev 895 | Rev 1021 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 895 Rev 1015
Line 1... Line 1...
1
package org.tela_botanica.client.composants;
1
package org.tela_botanica.client.composants;
Line 2... Line 2...
2
 
2
 
3
import org.tela_botanica.client.ComposantId;
3
import org.tela_botanica.client.ComposantId;
4
import org.tela_botanica.client.Mediateur;
4
import org.tela_botanica.client.Mediateur;
5
import org.tela_botanica.client.RegistreId;
5
import org.tela_botanica.client.i18n.Constantes;
6
import org.tela_botanica.client.images.Images;
6
import org.tela_botanica.client.images.Images;
7
import org.tela_botanica.client.interfaces.Rafraichissable;
7
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.modeles.Information;
8
import org.tela_botanica.client.modeles.Information;
Line 9... Line -...
9
import org.tela_botanica.client.modeles.Utilisateur;
-
 
10
 
9
import org.tela_botanica.client.modeles.Utilisateur;
11
import com.extjs.gxt.ui.client.Registry;
10
 
12
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
11
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
-
 
12
import com.extjs.gxt.ui.client.event.ButtonEvent;
13
import com.extjs.gxt.ui.client.event.ButtonEvent;
13
import com.extjs.gxt.ui.client.event.ComponentEvent;
14
import com.extjs.gxt.ui.client.event.ComponentEvent;
14
import com.extjs.gxt.ui.client.event.Events;
15
import com.extjs.gxt.ui.client.event.KeyListener;
15
import com.extjs.gxt.ui.client.event.KeyListener;
16
import com.extjs.gxt.ui.client.event.SelectionListener;
16
import com.extjs.gxt.ui.client.event.SelectionListener;
17
import com.extjs.gxt.ui.client.util.Format;
17
import com.extjs.gxt.ui.client.util.Format;
Line 22... Line 22...
22
import com.extjs.gxt.ui.client.widget.button.Button;
22
import com.extjs.gxt.ui.client.widget.button.Button;
23
import com.extjs.gxt.ui.client.widget.form.TextField;
23
import com.extjs.gxt.ui.client.widget.form.TextField;
24
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
24
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
25
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
25
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
26
import com.google.gwt.core.client.GWT;
26
import com.google.gwt.core.client.GWT;
-
 
27
import com.google.gwt.event.dom.client.KeyCodes;
Line 27... Line 28...
27
 
28
 
28
public class IdentificationFenetre extends Dialog implements Rafraichissable {
29
public class IdentificationFenetre extends Dialog implements Rafraichissable {
-
 
30
	
-
 
31
	private Mediateur mediateur = null;
29
 
32
	private Constantes i18nC = null;
30
	protected TextField<String> login;
33
	protected TextField<String> login = null;
31
	protected TextField<String> motDePasse;
34
	protected TextField<String> motDePasse = null;
32
	protected Button reinitialiserBouton;
35
	protected Button reinitialiserBouton = null;
33
	protected Button validerBouton;
36
	protected Button validerBouton = null;
34
	private Button annulerBouton;
37
	private Button annulerBouton = null;
35
	protected Status status;
38
	protected Status status = null;
36
	private String zoneInfoTpl;
39
	private String zoneInfoTpl = null;
37
	private HtmlContainer zoneInfoHtml;
40
	private HtmlContainer zoneInfoHtml = null;
38
 
41
 
-
 
42
	public IdentificationFenetre(Mediateur mediateurCourrant) {
-
 
43
		mediateur = mediateurCourrant;
-
 
44
		i18nC = Mediateur.i18nC;
-
 
45
		
-
 
46
		initialiserSquelettes();
39
	public IdentificationFenetre() {
47
		
40
		FormLayout layout = new FormLayout();
48
		FormLayout layout = new FormLayout();
41
		layout.setLabelWidth(110);
49
		layout.setLabelWidth(110);
42
		layout.setDefaultWidth(220);
50
		layout.setDefaultWidth(220);
Line 43... Line 51...
43
		setLayout(layout);
51
		setLayout(layout);
44
 
52
 
45
		setButtonAlign(HorizontalAlignment.RIGHT);
53
		setButtonAlign(HorizontalAlignment.RIGHT);
46
	    setButtons("");
54
	    setButtons("");
47
		setIcon(Images.ICONES.utilisateur());
55
		setIcon(Images.ICONES.utilisateur());
48
		setHeading("Collections en ligne - Identification");
56
		setHeading(i18nC.appliNom()+" - "+i18nC.identificationTitre());
49
		setModal(true);
57
		setModal(true);
50
		setBodyBorder(true);
58
		setBodyBorder(true);
51
		setBodyStyle("padding: 10px;background: none");
59
		setBodyStyle("padding: 10px;background: none");
52
		setWidth(450);
60
		setWidth(450);
Line -... Line 61...
-
 
61
		setResizable(false);
53
		setResizable(false);
62
		setAutoWidth(false);
54
		setAutoWidth(false);
63
		
55
		
64
		
-
 
65
		KeyListener keyListener = new KeyListener() {
-
 
66
			public void componentKeyUp(ComponentEvent event) {
-
 
67
				valider();
-
 
68
			}
-
 
69
			@SuppressWarnings("unchecked")
-
 
70
			public void componentKeyPress(ComponentEvent evenement) {
-
 
71
				if (evenement.getKeyCode() == KeyCodes.KEY_ENTER) {
-
 
72
					TextField<String> champ = (TextField<String>) evenement.getSource();
-
 
73
					if (champ.getFieldLabel().equals(i18nC.motDePasse())) {
56
		KeyListener keyListener = new KeyListener() {
74
						validerBouton.fireEvent(Events.Select);
57
			public void componentKeyUp(ComponentEvent event) {
-
 
58
				validate();
75
					}
Line 59... Line 76...
59
			}
76
				}
60
 
-
 
61
		};
-
 
62
 
77
			}
63
		zoneInfoHtml = new HtmlContainer();
78
		};
Line 64... Line 79...
64
		zoneInfoTpl = "<div id='"+ComposantId.DIV_IDENTIFICATION_MSG+"'>{0}</div>";
79
 
65
		//zoneInfoHtml.setHtml(Format.substitute(zoneInfoTpl, (new Params()).add("")));
80
		zoneInfoHtml = new HtmlContainer();
66
		zoneInfoHtml.hide();
81
		zoneInfoHtml.hide();
67
		add(zoneInfoHtml);
82
		add(zoneInfoHtml);
68
		
83
		
Line 69... Line 84...
69
		login = new TextField<String>();
84
		login = new TextField<String>();
70
		login.setMinLength(4);
85
		login.setMinLength(4);
71
		login.setFieldLabel("Courriel");
86
		login.setFieldLabel(i18nC.login());
72
		login.addKeyListener(keyListener);
87
		login.addKeyListener(keyListener);
73
		add(login);
88
		add(login);
74
 
89
 
Line 75... Line 90...
75
		motDePasse = new TextField<String>();
90
		motDePasse = new TextField<String>();
76
		motDePasse.setMinLength(4);
91
		motDePasse.setMinLength(4);
Line -... Line 92...
-
 
92
		motDePasse.setPassword(true);
-
 
93
		motDePasse.setFieldLabel(i18nC.motDePasse());
-
 
94
		motDePasse.addKeyListener(keyListener);
-
 
95
		add(motDePasse);
77
		motDePasse.setPassword(true);
96
 
78
		motDePasse.setFieldLabel("Mot de passe");
97
		setFocusWidget(login);
79
		motDePasse.addKeyListener(keyListener);
98
	}
-
 
99
	
-
 
100
	private void initialiserSquelettes() {
-
 
101
		zoneInfoTpl = "<div id='"+ComposantId.DIV_IDENTIFICATION_MSG+"'>{0}</div>";
80
		add(motDePasse);
102
	}
81
 
103
	
82
		setFocusWidget(login);
104
	@Override
83
	}
105
	protected void createButtons() {
84
	
106
		super.createButtons();
Line 85... Line 107...
85
	@Override
107
		// FIXME : l'instanciation dans le constructeur ne marche pas pour cette méthode...
Line 86... Line 108...
86
	protected void createButtons() {
108
		i18nC = Mediateur.i18nC;
87
		super.createButtons();
109
	    
88
	    status = new Status();
110
		status = new Status();
89
	    status.setBusy("Vérification...");
111
	    status.setBusy(i18nC.identificationVerification());
90
	    status.hide();
112
	    status.hide();
91
	    status.setAutoWidth(true);
113
	    status.setAutoWidth(true);
92
	    getButtonBar().add(status);
114
	    getButtonBar().add(status);
93
	    
115
	    
Line 94... Line 116...
94
	    getButtonBar().add(new FillToolItem());
116
	    getButtonBar().add(new FillToolItem());
Line 95... Line 117...
95
	    
117
	    
96
		reinitialiserBouton = new Button("Réinitialiser");
118
		reinitialiserBouton = new Button(i18nC.reinitialiser());
97
		reinitialiserBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
119
		reinitialiserBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
98
			public void componentSelected(ButtonEvent ce) {
120
			public void componentSelected(ButtonEvent ce) {
99
				login.reset();
121
				login.reset();
100
				motDePasse.reset();
122
				motDePasse.reset();
101
				validate();
123
				valider();
Line 102... Line 124...
102
				login.focus();
124
				login.focus();
103
			}
125
			}
104
 
126
 
105
		});
127
		});
106
 
128
 
107
		validerBouton = new Button("Valider");
129
		validerBouton = new Button(i18nC.valider());
Line 125... Line 147...
125
	}
147
	}
Line 126... Line 148...
126
 
148
 
127
	protected void onSubmit() {
149
	protected void onSubmit() {
128
		status.show();
150
		status.show();
129
	    getButtonBar().disable();
-
 
130
		//IdentificationFenetre.this.hide();
151
	    getButtonBar().disable();
131
		((Mediateur) Registry.get(RegistreId.MEDIATEUR)).connecterUtilisateur(login.getValue(), motDePasse.getValue());
152
		mediateur.connecterUtilisateur(login.getValue(), motDePasse.getValue());
Line 132... Line 153...
132
	}
153
	}
133
 
154
 
134
	protected boolean hasValue(TextField<String> field) {
155
	protected boolean avoirValeur(TextField<String> field) {
Line 135... Line 156...
135
		return field.getValue() != null && field.getValue().length() > 0;
156
		return field.getValue() != null && field.getValue().length() > 0;
136
	}
157
	}
137
 
158
 
Line 138... Line 159...
138
	protected void validate() {
159
	protected void valider() {
139
		validerBouton.setEnabled(hasValue(login) && hasValue(motDePasse) && motDePasse.getValue().length() > 3);
160
		validerBouton.setEnabled(avoirValeur(login) && avoirValeur(motDePasse) && motDePasse.getValue().length() > 3);
140
	}
161
	}
141
 
162
 
142
	public void rafraichir(Object nouvellesDonnees) {
163
	public void rafraichir(Object nouvellesDonnees) {
143
		if (nouvellesDonnees instanceof Information) {
164
		if (nouvellesDonnees instanceof Information) {
144
			Information info = (Information) nouvellesDonnees;
165
			Information info = (Information) nouvellesDonnees;
145
			if (info.getType().equals("maj_utilisateur")) {
166
			if (info.getType().equals("maj_utilisateur")) {
146
				Utilisateur utilisateurCourant = ((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT));
167
				Utilisateur utilisateurCourant = mediateur.getUtilisateur();
147
				if (utilisateurCourant.isIdentifie() == false) {
168
				if (utilisateurCourant.isIdentifie() == false) {
148
						if (utilisateurCourant.getLicence().equals(""))	{
169
						if (utilisateurCourant.getLicence().equals(""))	{
149
							afficherErreur("Mauvais login ou mot de passe");
170
							afficherErreur(i18nC.identificationMauvaise());
150
						} else	if (utilisateurCourant.getLicence().equals("0")){
171
						} else	if (utilisateurCourant.getLicence().equals("0")){
151
							afficherErreur("vous devez accepter licence");
172
							afficherErreur(i18nC.licenceAccepter());
152
							((Mediateur) Registry.get(RegistreId.MEDIATEUR)).afficherFenetreLicence(this);
173
							mediateur.afficherFenetreLicence(this);
153
						}	else	{
174
						}	else	{
154
							hide();
175
							hide();
155
						}
176
						}
156
				} else {
177
				} else {
157
					if (utilisateurCourant.existeDansAnnuaire())	{
178
					if (utilisateurCourant.existeDansAnnuaire())	{
158
						((Mediateur) Registry.get(RegistreId.MEDIATEUR)).mettreAJourPersonneAnnuaire(utilisateurCourant);
179
						mediateur.mettreAJourPersonneAnnuaire(utilisateurCourant);
159
					} 
180
					} 
Line 167... Line 188...
167
	}
188
	}
Line 168... Line 189...
168
	
189
	
169
	public void afficherErreur(String erreur)	{
190
	public void afficherErreur(String erreur)	{
170
		status.hide();
191
		status.hide();
171
		getButtonBar().enable();
192
		getButtonBar().enable();
172
		validate();
193
		valider();
173
		zoneInfoHtml.setHtml(Format.substitute(zoneInfoTpl, (new Params()).add(erreur)));
194
		zoneInfoHtml.setHtml(Format.substitute(zoneInfoTpl, (new Params()).add(erreur)));
174
		zoneInfoHtml.show();
195
		zoneInfoHtml.show();
175
		layout();
196
		layout();