Subversion Repositories eFlore/Applications.coel

Rev

Rev 1881 | 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.RegistreId;
import org.tela_botanica.client.configuration.Configuration;
import org.tela_botanica.client.i18n.Constantes;
import org.tela_botanica.client.i18n.ErrorMessages;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.synchronisation.Sequenceur;

import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.Scroll;
import com.extjs.gxt.ui.client.event.ComponentEvent;
import com.extjs.gxt.ui.client.event.Events;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.widget.TabItem;
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
import com.extjs.gxt.ui.client.widget.layout.FormLayout;

public abstract class FormulaireOnglet extends TabItem implements Rafraichissable {
        
        protected Formulaire formulaire = null;
        protected Mediateur mediateur = null;
        protected Constantes i18nC = null;
        protected ErrorMessages i18nM = null;
        protected Configuration config = null;
        
        protected String mode = null;
        protected int tabIndex = 100;
        protected static LabelAlign alignementLabelDefaut = LabelAlign.LEFT;
        protected static int largeurLabelDefaut = 250;
        
        public FormulaireOnglet() {
                parametrer(this);
                addListener(Events.Select, new Listener<ComponentEvent>() {  
                        public void handleEvent(ComponentEvent be) {  
                                setAcces(true);
                                actualiser();
                        }  
                });
        }
        
        public static void parametrer(TabItem onglet) {
                FormLayout layout = new FormLayout();
                layout.setLabelWidth(largeurLabelDefaut);
                layout.setLabelAlign(alignementLabelDefaut);
                onglet.setLayout(layout);
                
                onglet.setStyleAttribute("padding", "10px");
                onglet.setScrollMode(Scroll.AUTO);
                onglet.setData("acces", false);
        }

        protected void initialiserOnglet(Formulaire formulaireCourrant) {
                
                formulaire = formulaireCourrant;
                mediateur = formulaire.mediateur;
                i18nC = Mediateur.i18nC;
                i18nM = Mediateur.i18nM;
                config = (Configuration) Registry.get(RegistreId.CONFIG);
                
                mode = formulaire.mode;
                tabIndex = formulaire.tabIndex;
        }
        
        public void actualiser() {
                layout();
        }
        
        public void setAcces(boolean acces) {
                this.setData("acces", acces);
        }
        
        public boolean etreAccede() {
                boolean acces = false;
                if (isAttached()) {
                        acces = this.getData("acces");
                }
                return acces;
        }
}