Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 845 Rev 895
1
package org.tela_botanica.client.composants;
1
package org.tela_botanica.client.composants;
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.RegistreId;
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;
9
import org.tela_botanica.client.modeles.Utilisateur;
9
import org.tela_botanica.client.modeles.Utilisateur;
10
 
10
 
11
import com.extjs.gxt.ui.client.Registry;
11
import com.extjs.gxt.ui.client.Registry;
12
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
12
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
13
import com.extjs.gxt.ui.client.event.ButtonEvent;
13
import com.extjs.gxt.ui.client.event.ButtonEvent;
14
import com.extjs.gxt.ui.client.event.ComponentEvent;
14
import com.extjs.gxt.ui.client.event.ComponentEvent;
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;
18
import com.extjs.gxt.ui.client.util.Params;
18
import com.extjs.gxt.ui.client.util.Params;
19
import com.extjs.gxt.ui.client.widget.Dialog;
19
import com.extjs.gxt.ui.client.widget.Dialog;
20
import com.extjs.gxt.ui.client.widget.HtmlContainer;
20
import com.extjs.gxt.ui.client.widget.HtmlContainer;
21
import com.extjs.gxt.ui.client.widget.Status;
21
import com.extjs.gxt.ui.client.widget.Status;
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
 
27
 
28
public class IdentificationFenetre extends Dialog implements Rafraichissable {
28
public class IdentificationFenetre extends Dialog implements Rafraichissable {
29
 
29
 
30
	protected TextField<String> login;
30
	protected TextField<String> login;
31
	protected TextField<String> motDePasse;
31
	protected TextField<String> motDePasse;
32
	protected Button reinitialiserBouton;
32
	protected Button reinitialiserBouton;
33
	protected Button validerBouton;
33
	protected Button validerBouton;
34
	private Button annulerBouton;
34
	private Button annulerBouton;
35
	protected Status status;
35
	protected Status status;
36
	private String zoneInfoTpl;
36
	private String zoneInfoTpl;
37
	private HtmlContainer zoneInfoHtml;
37
	private HtmlContainer zoneInfoHtml;
38
 
38
 
39
	public IdentificationFenetre() {
39
	public IdentificationFenetre() {
40
		FormLayout layout = new FormLayout();
40
		FormLayout layout = new FormLayout();
41
		layout.setLabelWidth(110);
41
		layout.setLabelWidth(110);
42
		layout.setDefaultWidth(220);
42
		layout.setDefaultWidth(220);
43
		setLayout(layout);
43
		setLayout(layout);
44
 
44
 
45
		setButtonAlign(HorizontalAlignment.RIGHT);
45
		setButtonAlign(HorizontalAlignment.RIGHT);
46
	    setButtons("");
46
	    setButtons("");
47
		setIcon(Images.ICONES.utilisateur());
47
		setIcon(Images.ICONES.utilisateur());
48
		setHeading("Collections en ligne - Identification");
48
		setHeading("Collections en ligne - Identification");
49
		setModal(true);
49
		setModal(true);
50
		setBodyBorder(true);
50
		setBodyBorder(true);
51
		setBodyStyle("padding: 10px;background: none");
51
		setBodyStyle("padding: 10px;background: none");
52
		setWidth(450);
52
		setWidth(450);
53
		setResizable(false);
53
		setResizable(false);
54
		setAutoWidth(false);
54
		setAutoWidth(false);
55
		
55
		
56
		KeyListener keyListener = new KeyListener() {
56
		KeyListener keyListener = new KeyListener() {
57
			public void componentKeyUp(ComponentEvent event) {
57
			public void componentKeyUp(ComponentEvent event) {
58
				validate();
58
				validate();
59
			}
59
			}
60
 
60
 
61
		};
61
		};
62
 
62
 
63
		zoneInfoHtml = new HtmlContainer();
63
		zoneInfoHtml = new HtmlContainer();
64
		zoneInfoTpl = "<div id='"+ComposantId.DIV_IDENTIFICATION_MSG+"'>{0}</div>";
64
		zoneInfoTpl = "<div id='"+ComposantId.DIV_IDENTIFICATION_MSG+"'>{0}</div>";
65
		//zoneInfoHtml.setHtml(Format.substitute(zoneInfoTpl, (new Params()).add("")));
65
		//zoneInfoHtml.setHtml(Format.substitute(zoneInfoTpl, (new Params()).add("")));
66
		zoneInfoHtml.hide();
66
		zoneInfoHtml.hide();
67
		add(zoneInfoHtml);
67
		add(zoneInfoHtml);
68
		
68
		
69
		login = new TextField<String>();
69
		login = new TextField<String>();
70
		login.setMinLength(4);
70
		login.setMinLength(4);
71
		login.setFieldLabel("Courriel");
71
		login.setFieldLabel("Courriel");
72
		login.addKeyListener(keyListener);
72
		login.addKeyListener(keyListener);
73
		add(login);
73
		add(login);
74
 
74
 
75
		motDePasse = new TextField<String>();
75
		motDePasse = new TextField<String>();
76
		motDePasse.setMinLength(4);
76
		motDePasse.setMinLength(4);
77
		motDePasse.setPassword(true);
77
		motDePasse.setPassword(true);
78
		motDePasse.setFieldLabel("Mot de passe");
78
		motDePasse.setFieldLabel("Mot de passe");
79
		motDePasse.addKeyListener(keyListener);
79
		motDePasse.addKeyListener(keyListener);
80
		add(motDePasse);
80
		add(motDePasse);
81
 
81
 
82
		setFocusWidget(login);
82
		setFocusWidget(login);
83
	}
83
	}
84
	
84
	
85
	@Override
85
	@Override
86
	protected void createButtons() {
86
	protected void createButtons() {
87
		super.createButtons();
87
		super.createButtons();
88
	    status = new Status();
88
	    status = new Status();
89
	    status.setBusy("Vérification...");
89
	    status.setBusy("Vérification...");
90
	    status.hide();
90
	    status.hide();
91
	    status.setAutoWidth(true);
91
	    status.setAutoWidth(true);
92
	    getButtonBar().add(status);
92
	    getButtonBar().add(status);
93
	    
93
	    
94
	    getButtonBar().add(new FillToolItem());
94
	    getButtonBar().add(new FillToolItem());
95
	    
95
	    
96
		reinitialiserBouton = new Button("Réinitialiser");
96
		reinitialiserBouton = new Button("Réinitialiser");
97
		reinitialiserBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
97
		reinitialiserBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
98
			public void componentSelected(ButtonEvent ce) {
98
			public void componentSelected(ButtonEvent ce) {
99
				login.reset();
99
				login.reset();
100
				motDePasse.reset();
100
				motDePasse.reset();
101
				validate();
101
				validate();
102
				login.focus();
102
				login.focus();
103
			}
103
			}
104
 
104
 
105
		});
105
		});
106
 
106
 
107
		validerBouton = new Button("Valider");
107
		validerBouton = new Button("Valider");
108
		validerBouton.disable(); // Par défaut : dois être en mode disable
108
		validerBouton.disable(); // Par défaut : dois être en mode disable
109
		validerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
109
		validerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
110
			public void componentSelected(ButtonEvent ce) {
110
			public void componentSelected(ButtonEvent ce) {
111
				onSubmit();
111
				onSubmit();
112
			}
112
			}
113
		});
113
		});
114
		
114
		
115
		annulerBouton = new Button("Annuler");
115
		annulerBouton = new Button("Annuler");
116
		annulerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
116
		annulerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
117
			public void componentSelected(ButtonEvent ce) {
117
			public void componentSelected(ButtonEvent ce) {
118
				hide();
118
				hide();
119
			}
119
			}
120
		});
120
		});
121
 
-
 
122
		
121
		
123
		addButton(reinitialiserBouton);
122
		addButton(reinitialiserBouton);
124
		addButton(annulerBouton);
123
		addButton(annulerBouton);
125
		addButton(validerBouton);
124
		addButton(validerBouton);
126
	}
125
	}
127
 
126
 
128
	protected void onSubmit() {
127
	protected void onSubmit() {
129
		status.show();
128
		status.show();
130
	    getButtonBar().disable();
129
	    getButtonBar().disable();
131
		//IdentificationFenetre.this.hide();
130
		//IdentificationFenetre.this.hide();
132
		((Mediateur) Registry.get(RegistreId.MEDIATEUR)).connecterUtilisateur(login.getValue(), motDePasse.getValue());
131
		((Mediateur) Registry.get(RegistreId.MEDIATEUR)).connecterUtilisateur(login.getValue(), motDePasse.getValue());
133
	}
132
	}
134
 
133
 
135
	protected boolean hasValue(TextField<String> field) {
134
	protected boolean hasValue(TextField<String> field) {
136
		return field.getValue() != null && field.getValue().length() > 0;
135
		return field.getValue() != null && field.getValue().length() > 0;
137
	}
136
	}
138
 
137
 
139
	protected void validate() {
138
	protected void validate() {
140
		validerBouton.setEnabled(hasValue(login) && hasValue(motDePasse) && motDePasse.getValue().length() > 3);
139
		validerBouton.setEnabled(hasValue(login) && hasValue(motDePasse) && motDePasse.getValue().length() > 3);
141
	}
140
	}
142
 
141
 
143
	public void rafraichir(Object nouvellesDonnees) {
142
	public void rafraichir(Object nouvellesDonnees) {
144
		if (nouvellesDonnees instanceof Information) {
143
		if (nouvellesDonnees instanceof Information) {
145
			Information info = (Information) nouvellesDonnees;
144
			Information info = (Information) nouvellesDonnees;
146
			if (info.getType().equals("maj_utilisateur")) {
145
			if (info.getType().equals("maj_utilisateur")) {
147
				Utilisateur utilisateurCourant = ((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT));
146
				Utilisateur utilisateurCourant = ((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT));
148
				if (utilisateurCourant.isIdentifie() == false) {
147
				if (utilisateurCourant.isIdentifie() == false) {
149
					status.hide();
148
						if (utilisateurCourant.getLicence().equals(""))	{
-
 
149
							afficherErreur("Mauvais login ou mot de passe");
150
				    getButtonBar().enable();
150
						} else	if (utilisateurCourant.getLicence().equals("0")){
151
					validate();
151
							afficherErreur("vous devez accepter licence");
152
					zoneInfoHtml.setHtml(Format.substitute(zoneInfoTpl, (new Params()).add("Mauvais login ou mot de passe")));
152
							((Mediateur) Registry.get(RegistreId.MEDIATEUR)).afficherFenetreLicence(this);
153
					zoneInfoHtml.show();
153
						}	else	{
154
					layout();
154
							hide();
-
 
155
						}
155
				} else {
156
				} else {
-
 
157
					if (utilisateurCourant.existeDansAnnuaire())	{
-
 
158
						((Mediateur) Registry.get(RegistreId.MEDIATEUR)).mettreAJourPersonneAnnuaire(utilisateurCourant);
-
 
159
					} 
156
					hide();
160
					hide();
157
				}
161
				}
158
			}
162
			} 
159
		} else {
163
		} else {
160
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
164
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
161
		}
165
		}
162
		
166
		
163
	}
167
	}
-
 
168
	
-
 
169
	public void afficherErreur(String erreur)	{
-
 
170
		status.hide();
-
 
171
		getButtonBar().enable();
-
 
172
		validate();
-
 
173
		zoneInfoHtml.setHtml(Format.substitute(zoneInfoTpl, (new Params()).add(erreur)));
-
 
174
		zoneInfoHtml.show();
-
 
175
		layout();
-
 
176
	}
164
 
177
 
165
}
178
}