Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 277 Rev 358
Line 1... Line 1...
1
package org.tela_botanica.client.composants;
1
package org.tela_botanica.client.composants;
Line 2... Line -...
2
 
-
 
3
/*
-
 
4
 * Ext GWT - Ext for GWT
2
 
5
 * Copyright(c) 2007, 2008, Ext JS, LLC.
-
 
6
 * licensing@extjs.com
-
 
7
 * 
-
 
8
 * http://extjs.com/license
-
 
9
 */
3
import org.tela_botanica.client.ComposantId;
10
import org.tela_botanica.client.Mediateur;
4
import org.tela_botanica.client.Mediateur;
-
 
5
import org.tela_botanica.client.RegistreId;
-
 
6
import org.tela_botanica.client.interfaces.Rafraichissable;
-
 
7
import org.tela_botanica.client.modeles.Information;
Line 11... Line 8...
11
import org.tela_botanica.client.RegistreId;
8
import org.tela_botanica.client.modeles.Utilisateur;
12
 
9
 
13
import com.extjs.gxt.ui.client.Registry;
10
import com.extjs.gxt.ui.client.Registry;
14
import com.extjs.gxt.ui.client.event.ButtonEvent;
11
import com.extjs.gxt.ui.client.event.ButtonEvent;
15
import com.extjs.gxt.ui.client.event.ComponentEvent;
12
import com.extjs.gxt.ui.client.event.ComponentEvent;
-
 
13
import com.extjs.gxt.ui.client.event.KeyListener;
-
 
14
import com.extjs.gxt.ui.client.event.SelectionListener;
16
import com.extjs.gxt.ui.client.event.KeyListener;
15
import com.extjs.gxt.ui.client.util.Format;
-
 
16
import com.extjs.gxt.ui.client.util.Params;
17
import com.extjs.gxt.ui.client.event.SelectionListener;
17
import com.extjs.gxt.ui.client.widget.Dialog;
18
import com.extjs.gxt.ui.client.widget.Dialog;
18
import com.extjs.gxt.ui.client.widget.HtmlContainer;
19
import com.extjs.gxt.ui.client.widget.button.Button;
19
import com.extjs.gxt.ui.client.widget.button.Button;
20
import com.extjs.gxt.ui.client.widget.button.StatusButtonBar;
20
import com.extjs.gxt.ui.client.widget.button.StatusButtonBar;
21
import com.extjs.gxt.ui.client.widget.form.TextField;
21
import com.extjs.gxt.ui.client.widget.form.TextField;
Line 22... Line 22...
22
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
22
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
Line 23... Line 23...
23
import com.google.gwt.user.client.Timer;
23
import com.google.gwt.core.client.GWT;
24
 
24
 
25
public class IdentificationFenetre extends Dialog {
25
public class IdentificationFenetre extends Dialog implements Rafraichissable {
26
 
26
 
27
	protected StatusButtonBar barreDeBoutons;
27
	protected StatusButtonBar barreDeBoutons;
-
 
28
	protected TextField<String> login;
-
 
29
	protected TextField<String> motDePasse;
-
 
30
	protected Button reinitialiserBouton;
Line 28... Line 31...
28
	protected TextField<String> login;
31
	protected Button validerBouton;
29
	protected TextField<String> motDePasse;
32
	private Button annulerBouton;
30
	protected Button reinitialiserBouton;
33
	private String zoneInfoTpl;
31
	protected Button validerBouton;
34
	private HtmlContainer zoneInfoHtml;
32
 
35
 
Line 33... Line 36...
33
	public IdentificationFenetre() {
36
	public IdentificationFenetre() {
34
		FormLayout layout = new FormLayout();
37
		FormLayout layout = new FormLayout();
35
		layout.setLabelWidth(90);
38
		layout.setLabelWidth(110);
36
		layout.setDefaultWidth(155);
39
		layout.setDefaultWidth(220);
37
		setLayout(layout);
40
		setLayout(layout);
38
 
41
 
39
		setButtons("");
42
		setButtons("");
40
		setIconStyle("icone-utilisateur");
43
		setIconStyle("icone-utilisateur");
41
		setHeading("Collections en ligne - Identification");
44
		setHeading("Collections en ligne - Identification");
Line 42... Line 45...
42
		setModal(true);
45
		setModal(true);
43
		setBodyBorder(true);
46
		setBodyBorder(true);
44
		setBodyStyle("padding: 10px;background: none");
47
		setBodyStyle("padding: 10px;background: none");
45
		setWidth(310);
48
		setWidth(450);
Line 46... Line 49...
46
		setResizable(false);
49
		setResizable(false);
Line -... Line 50...
-
 
50
		setAutoWidth(false);
-
 
51
		
-
 
52
		KeyListener keyListener = new KeyListener() {
-
 
53
			public void componentKeyUp(ComponentEvent event) {
-
 
54
				validate();
-
 
55
			}
47
		setAutoWidth(false);
56
 
48
		
57
		};
49
		KeyListener keyListener = new KeyListener() {
58
 
50
			public void componentKeyUp(ComponentEvent event) {
59
		zoneInfoHtml = new HtmlContainer();
51
				validate();
60
		zoneInfoTpl = "<div id='"+ComposantId.DIV_IDENTIFICATION_MSG+"'>{0}</div>";
Line 85... Line 94...
85
			}
94
			}
Line 86... Line 95...
86
 
95
 
Line 87... Line 96...
87
		});
96
		});
88
 
97
 
89
		validerBouton = new Button("Valider");
98
		validerBouton = new Button("Valider");
90
		//login.disable(); // Par défaut : dois être en mode disable
99
		validerBouton.disable(); // Par défaut : dois être en mode disable
91
		validerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
100
		validerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
92
			public void componentSelected(ButtonEvent ce) {
101
			public void componentSelected(ButtonEvent ce) {
93
				onSubmit();
102
				onSubmit();
-
 
103
			}
-
 
104
		});
-
 
105
		
-
 
106
		annulerBouton = new Button("Annuler");
-
 
107
		annulerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
-
 
108
			public void componentSelected(ButtonEvent ce) {
-
 
109
				close();
Line -... Line 110...
-
 
110
			}
94
			}
111
		});
-
 
112
 
95
		});
113
		
96
 
114
		barreDeBoutons.add(reinitialiserBouton);
Line 97... Line 115...
97
		barreDeBoutons.add(reinitialiserBouton);
115
		barreDeBoutons.add(annulerBouton);
98
		barreDeBoutons.add(validerBouton);
116
		barreDeBoutons.add(validerBouton);
99
	}
117
	}
100
 
-
 
101
	protected void onSubmit() {
-
 
102
		barreDeBoutons.getStatusBar().showBusy("Chargement en cours ...");
-
 
103
		barreDeBoutons.disable();
-
 
104
		Timer t = new Timer() {
118
 
105
 
119
	protected void onSubmit() {
106
			@Override
-
 
107
			public void run() {
-
 
108
				IdentificationFenetre.this.hide();
-
 
109
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).connecterUtilisateur(login.getValue(), motDePasse.getValue());
-
 
110
			}
120
		barreDeBoutons.getStatusBar().showBusy("Vérification...");
Line 111... Line 121...
111
 
121
		barreDeBoutons.disable();
112
		};
122
		//IdentificationFenetre.this.hide();
113
		t.schedule(2);// Par défaut : 2000
123
		((Mediateur) Registry.get(RegistreId.MEDIATEUR)).connecterUtilisateur(login.getValue(), motDePasse.getValue());
Line 114... Line 124...
114
	}
124
	}
115
 
125
 
116
	protected boolean hasValue(TextField<String> field) {
126
	protected boolean hasValue(TextField<String> field) {
Line -... Line 127...
-
 
127
		return field.getValue() != null && field.getValue().length() > 0;
-
 
128
	}
-
 
129
 
-
 
130
	protected void validate() {
-
 
131
		validerBouton.setEnabled(hasValue(login) && hasValue(motDePasse) && motDePasse.getValue().length() > 3);
-
 
132
	}
-
 
133
 
-
 
134
	public void rafraichir(Object nouvelleDonnees) {
-
 
135
		if (nouvelleDonnees instanceof Information) {
-
 
136
			Information info = (Information) nouvelleDonnees;
-
 
137
			if (info.getType().equals("maj_utilisateur")) {
-
 
138
				Utilisateur utilisateurCourant = ((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT));
-
 
139
				if (utilisateurCourant.isIdentifie() == false) {
-
 
140
					barreDeBoutons.getStatusBar().clear();
-
 
141
					barreDeBoutons.enable();
-
 
142
					validate();
-
 
143
					zoneInfoHtml.setHtml(Format.substitute(zoneInfoTpl, (new Params()).add("Mauvais login ou mot de passe")));
-
 
144
					zoneInfoHtml.show();
-
 
145
					layout();
-
 
146
				} else {
-
 
147
					hide();
-
 
148
				}
117
		return field.getValue() != null && field.getValue().length() > 0;
149
			}