2,16 → 2,16 |
|
import org.tela_botanica.client.ComposantId; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.i18n.Constantes; |
import org.tela_botanica.client.images.Images; |
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.Style.HorizontalAlignment; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.event.KeyListener; |
import com.extjs.gxt.ui.client.event.SelectionListener; |
import com.extjs.gxt.ui.client.util.Format; |
24,19 → 24,27 |
import com.extjs.gxt.ui.client.widget.layout.FormLayout; |
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.KeyCodes; |
|
public class IdentificationFenetre extends Dialog implements Rafraichissable { |
|
private Mediateur mediateur = null; |
private Constantes i18nC = null; |
protected TextField<String> login = null; |
protected TextField<String> motDePasse = null; |
protected Button reinitialiserBouton = null; |
protected Button validerBouton = null; |
private Button annulerBouton = null; |
protected Status status = null; |
private String zoneInfoTpl = null; |
private HtmlContainer zoneInfoHtml = null; |
|
protected TextField<String> login; |
protected TextField<String> motDePasse; |
protected Button reinitialiserBouton; |
protected Button validerBouton; |
private Button annulerBouton; |
protected Status status; |
private String zoneInfoTpl; |
private HtmlContainer zoneInfoHtml; |
|
public IdentificationFenetre() { |
public IdentificationFenetre(Mediateur mediateurCourrant) { |
mediateur = mediateurCourrant; |
i18nC = Mediateur.i18nC; |
|
initialiserSquelettes(); |
|
FormLayout layout = new FormLayout(); |
layout.setLabelWidth(110); |
layout.setDefaultWidth(220); |
45,7 → 53,7 |
setButtonAlign(HorizontalAlignment.RIGHT); |
setButtons(""); |
setIcon(Images.ICONES.utilisateur()); |
setHeading("Collections en ligne - Identification"); |
setHeading(i18nC.appliNom()+" - "+i18nC.identificationTitre()); |
setModal(true); |
setBodyBorder(true); |
setBodyStyle("padding: 10px;background: none"); |
53,22 → 61,29 |
setResizable(false); |
setAutoWidth(false); |
|
|
KeyListener keyListener = new KeyListener() { |
public void componentKeyUp(ComponentEvent event) { |
validate(); |
valider(); |
} |
|
@SuppressWarnings("unchecked") |
public void componentKeyPress(ComponentEvent evenement) { |
if (evenement.getKeyCode() == KeyCodes.KEY_ENTER) { |
TextField<String> champ = (TextField<String>) evenement.getSource(); |
if (champ.getFieldLabel().equals(i18nC.motDePasse())) { |
validerBouton.fireEvent(Events.Select); |
} |
} |
} |
}; |
|
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"); |
login.setFieldLabel(i18nC.login()); |
login.addKeyListener(keyListener); |
add(login); |
|
75,7 → 90,7 |
motDePasse = new TextField<String>(); |
motDePasse.setMinLength(4); |
motDePasse.setPassword(true); |
motDePasse.setFieldLabel("Mot de passe"); |
motDePasse.setFieldLabel(i18nC.motDePasse()); |
motDePasse.addKeyListener(keyListener); |
add(motDePasse); |
|
82,11 → 97,18 |
setFocusWidget(login); |
} |
|
private void initialiserSquelettes() { |
zoneInfoTpl = "<div id='"+ComposantId.DIV_IDENTIFICATION_MSG+"'>{0}</div>"; |
} |
|
@Override |
protected void createButtons() { |
super.createButtons(); |
status = new Status(); |
status.setBusy("Vérification..."); |
// FIXME : l'instanciation dans le constructeur ne marche pas pour cette méthode... |
i18nC = Mediateur.i18nC; |
|
status = new Status(); |
status.setBusy(i18nC.identificationVerification()); |
status.hide(); |
status.setAutoWidth(true); |
getButtonBar().add(status); |
93,18 → 115,18 |
|
getButtonBar().add(new FillToolItem()); |
|
reinitialiserBouton = new Button("Réinitialiser"); |
reinitialiserBouton = new Button(i18nC.reinitialiser()); |
reinitialiserBouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
login.reset(); |
motDePasse.reset(); |
validate(); |
valider(); |
login.focus(); |
} |
|
}); |
|
validerBouton = new Button("Valider"); |
validerBouton = new Button(i18nC.valider()); |
validerBouton.disable(); // Par défaut : dois être en mode disable |
validerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
112,7 → 134,7 |
} |
}); |
|
annulerBouton = new Button("Annuler"); |
annulerBouton = new Button(i18nC.annuler()); |
annulerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
hide(); |
127,16 → 149,15 |
protected void onSubmit() { |
status.show(); |
getButtonBar().disable(); |
//IdentificationFenetre.this.hide(); |
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).connecterUtilisateur(login.getValue(), motDePasse.getValue()); |
mediateur.connecterUtilisateur(login.getValue(), motDePasse.getValue()); |
} |
|
protected boolean hasValue(TextField<String> field) { |
protected boolean avoirValeur(TextField<String> field) { |
return field.getValue() != null && field.getValue().length() > 0; |
} |
|
protected void validate() { |
validerBouton.setEnabled(hasValue(login) && hasValue(motDePasse) && motDePasse.getValue().length() > 3); |
protected void valider() { |
validerBouton.setEnabled(avoirValeur(login) && avoirValeur(motDePasse) && motDePasse.getValue().length() > 3); |
} |
|
public void rafraichir(Object nouvellesDonnees) { |
143,19 → 164,19 |
if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
if (info.getType().equals("maj_utilisateur")) { |
Utilisateur utilisateurCourant = ((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT)); |
Utilisateur utilisateurCourant = mediateur.getUtilisateur(); |
if (utilisateurCourant.isIdentifie() == false) { |
if (utilisateurCourant.getLicence().equals("")) { |
afficherErreur("Mauvais login ou mot de passe"); |
afficherErreur(i18nC.identificationMauvaise()); |
} else if (utilisateurCourant.getLicence().equals("0")){ |
afficherErreur("vous devez accepter licence"); |
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).afficherFenetreLicence(this); |
afficherErreur(i18nC.licenceAccepter()); |
mediateur.afficherFenetreLicence(this); |
} else { |
hide(); |
} |
} else { |
if (utilisateurCourant.existeDansAnnuaire()) { |
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).mettreAJourPersonneAnnuaire(utilisateurCourant); |
mediateur.mettreAJourPersonneAnnuaire(utilisateurCourant); |
} |
hide(); |
} |
169,7 → 190,7 |
public void afficherErreur(String erreur) { |
status.hide(); |
getButtonBar().enable(); |
validate(); |
valider(); |
zoneInfoHtml.setHtml(Format.substitute(zoneInfoTpl, (new Params()).add(erreur))); |
zoneInfoHtml.show(); |
layout(); |