1,14 → 1,11 |
package org.tela_botanica.client.composants; |
|
/* |
* Ext GWT - Ext for GWT |
* Copyright(c) 2007, 2008, Ext JS, LLC. |
* licensing@extjs.com |
* |
* http://extjs.com/license |
*/ |
import org.tela_botanica.client.ComposantId; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.Utilisateur; |
|
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
15,14 → 12,17 |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
import com.extjs.gxt.ui.client.event.KeyListener; |
import com.extjs.gxt.ui.client.event.SelectionListener; |
import com.extjs.gxt.ui.client.util.Format; |
import com.extjs.gxt.ui.client.util.Params; |
import com.extjs.gxt.ui.client.widget.Dialog; |
import com.extjs.gxt.ui.client.widget.HtmlContainer; |
import com.extjs.gxt.ui.client.widget.button.Button; |
import com.extjs.gxt.ui.client.widget.button.StatusButtonBar; |
import com.extjs.gxt.ui.client.widget.form.TextField; |
import com.extjs.gxt.ui.client.widget.layout.FormLayout; |
import com.google.gwt.user.client.Timer; |
import com.google.gwt.core.client.GWT; |
|
public class IdentificationFenetre extends Dialog { |
public class IdentificationFenetre extends Dialog implements Rafraichissable { |
|
protected StatusButtonBar barreDeBoutons; |
protected TextField<String> login; |
29,11 → 29,14 |
protected TextField<String> motDePasse; |
protected Button reinitialiserBouton; |
protected Button validerBouton; |
private Button annulerBouton; |
private String zoneInfoTpl; |
private HtmlContainer zoneInfoHtml; |
|
public IdentificationFenetre() { |
FormLayout layout = new FormLayout(); |
layout.setLabelWidth(90); |
layout.setDefaultWidth(155); |
layout.setLabelWidth(110); |
layout.setDefaultWidth(220); |
setLayout(layout); |
|
setButtons(""); |
42,7 → 45,7 |
setModal(true); |
setBodyBorder(true); |
setBodyStyle("padding: 10px;background: none"); |
setWidth(310); |
setWidth(450); |
setResizable(false); |
setAutoWidth(false); |
|
53,6 → 56,12 |
|
}; |
|
zoneInfoHtml = new HtmlContainer(); |
zoneInfoTpl = "<div id='"+ComposantId.DIV_IDENTIFICATION_MSG+"'>{0}</div>"; |
//zoneInfoHtml.setHtml(Format.substitute(zoneInfoTpl, (new Params()).add(""))); |
zoneInfoHtml.hide(); |
add(zoneInfoHtml); |
|
login = new TextField<String>(); |
login.setMinLength(4); |
login.setFieldLabel("Courriel"); |
87,30 → 96,31 |
}); |
|
validerBouton = new Button("Valider"); |
//login.disable(); // Par défaut : dois être en mode disable |
validerBouton.disable(); // Par défaut : dois être en mode disable |
validerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
onSubmit(); |
} |
}); |
|
annulerBouton = new Button("Annuler"); |
annulerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
close(); |
} |
}); |
|
|
barreDeBoutons.add(reinitialiserBouton); |
barreDeBoutons.add(annulerBouton); |
barreDeBoutons.add(validerBouton); |
} |
|
protected void onSubmit() { |
barreDeBoutons.getStatusBar().showBusy("Chargement en cours ..."); |
barreDeBoutons.getStatusBar().showBusy("Vérification..."); |
barreDeBoutons.disable(); |
Timer t = new Timer() { |
|
@Override |
public void run() { |
IdentificationFenetre.this.hide(); |
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).connecterUtilisateur(login.getValue(), motDePasse.getValue()); |
} |
|
}; |
t.schedule(2);// Par défaut : 2000 |
//IdentificationFenetre.this.hide(); |
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).connecterUtilisateur(login.getValue(), motDePasse.getValue()); |
} |
|
protected boolean hasValue(TextField<String> field) { |
121,4 → 131,26 |
validerBouton.setEnabled(hasValue(login) && hasValue(motDePasse) && motDePasse.getValue().length() > 3); |
} |
|
public void rafraichir(Object nouvelleDonnees) { |
if (nouvelleDonnees instanceof Information) { |
Information info = (Information) nouvelleDonnees; |
if (info.getType().equals("maj_utilisateur")) { |
Utilisateur utilisateurCourant = ((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT)); |
if (utilisateurCourant.isIdentifie() == false) { |
barreDeBoutons.getStatusBar().clear(); |
barreDeBoutons.enable(); |
validate(); |
zoneInfoHtml.setHtml(Format.substitute(zoneInfoTpl, (new Params()).add("Mauvais login ou mot de passe"))); |
zoneInfoHtml.show(); |
layout(); |
} else { |
hide(); |
} |
} |
} else { |
GWT.log("Ce type d'objet n'est pas pris en compte par la méthode rafraichir de la classe "+getClass(), null); |
} |
|
} |
|
} |