Subversion Repositories eFlore/Applications.coel

Rev

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

package org.tela_botanica.client.vues;

import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.images.Images;

import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
import com.google.gwt.user.client.ui.AbstractImagePrototype;

public class FormulaireBarreValidation extends ButtonBar {
        
        private SelectionListener<ButtonEvent> ecouteur = null;
        
        public static final String CODE_BOUTON_VALIDER = "VA";
        public static final String CODE_BOUTON_APPLIQUER = "AP";
        public static final String CODE_BOUTON_ANNULER = "AN";
        
        public FormulaireBarreValidation(SelectionListener<ButtonEvent> ecouteurCourrant) {
                ecouteur = ecouteurCourrant;
                creerBarreOutilsValidation();
        }
        
        private void creerBarreOutilsValidation() {
                this.setAlignment(HorizontalAlignment.LEFT);
                
                this.add(new FillToolItem());
                Button appliquer = creerBouton(CODE_BOUTON_APPLIQUER);
                this.add(appliquer);
                appliquer.setToolTip(Mediateur.i18nC.indicationAppliquer());
                
                Button annuler = creerBouton(CODE_BOUTON_ANNULER);
                annuler.setToolTip(Mediateur.i18nC.indicationAnnuler());
                this.add(annuler);
                
                Button valider = creerBouton(CODE_BOUTON_VALIDER);
                valider.setToolTip(Mediateur.i18nC.indicationValider());
                this.add(valider);
        }
        
        private Button creerBouton(final String code) {
                String nom = getNom(code);
                
                Button bouton = new Button(nom);
                bouton.setData("code", code);           
                bouton.setIcon(getIcone(code));
                bouton.addSelectionListener(ecouteur);
                
                return bouton;
        }
        
        private AbstractImagePrototype getIcone(final String code) {
                AbstractImagePrototype icone = null;
                if (code.equals(CODE_BOUTON_VALIDER)) {
                        icone = Images.ICONES.valider();
                } else if (code.equals(CODE_BOUTON_APPLIQUER)) {
                        icone = Images.ICONES.appliquer();
                } else if (code.equals(CODE_BOUTON_ANNULER)) {
                        icone = Images.ICONES.annuler();
                }
                return icone;
        }
        
        private String getNom(final String code) {
                String nom = null;
                if (code.equals(CODE_BOUTON_VALIDER)) {
                        nom = Mediateur.i18nC.valider();
                } else if (code.equals(CODE_BOUTON_APPLIQUER)) {
                        nom = Mediateur.i18nC.appliquer();
                } else if (code.equals(CODE_BOUTON_ANNULER)) {
                        nom = Mediateur.i18nC.annuler();
                }
                return nom;
        }
}