Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1014 → Rev 1015

/trunk/src/org/tela_botanica/client/composants/IdentificationFenetre.java
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();