Subversion Repositories eFlore/Applications.del

Rev

Rev 1577 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.del.client.composants.formulaires.identification;

import org.tela_botanica.del.client.i18n.I18n;
import org.tela_botanica.del.client.modeles.Utilisateur;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.dom.client.HasKeyPressHandlers;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;

public class FormulaireIdentificationVue extends Composite implements FormulaireIdentificationPresenteur.Vue {
        
        interface Binder extends UiBinder<Widget, FormulaireIdentificationVue> {
        }
        
        private static Binder uiBinder = GWT.create(Binder.class);
        
        @UiField
        Label titreSeConnecter, titreEstIdentifie, deconnecter, email, erreurIdentification, preferences;
        
        @UiField Panel zoneFormulaire;
        
        @UiField Button boutonOK;
        
        @UiField TextBox login, motdepasse;
        
        public FormulaireIdentificationVue() {
                initWidget(uiBinder.createAndBindUi(this));
                titreSeConnecter.setVisible(false);
                erreurIdentification.setVisible(false);
        }
        
        @Override
        public void ajouterVue(HasWidgets composite) {
                composite.add(this.asWidget());
        }

        @Override
        public HasClickHandlers getSeConnecter() {
                return titreSeConnecter;
        }

        @Override
        public void basculerAffichageFormulaire(boolean estConnecte) {
                zoneFormulaire.setVisible(!estConnecte);
        }

        @Override
        public void basculerModeConnecte(Utilisateur utilisateur) {
                
                //Dans le mode non-connecté, on veut : 
                // - un bandeau vert avec ecrit Identifiez-vous
                // - le formulaire courriel/password/texte et btn ok
                
                // dans le mode connecté on veut : 
                // - un bandeau vert avec écrit Bienvenue
                // - l'email de l'utilisateur
                // - un btn déconnecter
                // - un btn préférences
                boolean estConnecte = utilisateur.estIdentifie();
                
                // mode non-connecté
                titreSeConnecter.setVisible(!estConnecte);
                titreEstIdentifie.setVisible(estConnecte);
                
                
                deconnecter.setVisible(estConnecte);
                preferences.setVisible(estConnecte);
                
                email.setText(utilisateur.getNomPrenomFormate());
                email.setVisible(estConnecte);
                basculerAffichageFormulaire(estConnecte);
        }

        @Override
        public HasClickHandlers getBoutonOK() {
                return boutonOK;
        }

        @Override
        public TextBox getLogin() {
                return login;
        }

        @Override
        public TextBox getMotdepasse() {
                return motdepasse;
        }

        @Override
        public HasClickHandlers getSeDeconnecter() {
                return deconnecter;
        }
        
        @Override
        public void afficherErreur() {
                erreurIdentification.setVisible(true);
        }
        
        @Override
        public void masquerErreur() {
                erreurIdentification.setVisible(false);
        }
        
        @Override
        public void viderFormulaire() {
                login.setText("");
                motdepasse.setText("");
        }
        
        @Override
        public void setErreur(String idTexte) {
                String texte = "";
                if (idTexte.equals("saisirLogin")) {
                        texte = I18n.getMessages().saisirLogin(); 
                } else {
                        texte = I18n.getMessages().identificationRefus();
                }
                erreurIdentification.setText(texte);
        }
        
        public String getErreur() {
                return erreurIdentification.getText();
        }

        @Override
        public HasKeyPressHandlers getLoginHasKeyPressHandler() {
                return login;
        }

        @Override
        public HasKeyPressHandlers getMotdepasseHasKeyPressHandler() {
                return motdepasse;
        }
        
        @Override
        public HasClickHandlers getZonePreferencesClickHandler() {
                return preferences;
        }
}