Subversion Repositories eFlore/Applications.coel

Rev

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

package org.tela_botanica.client.vues.collection;

import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.composants.ChampCaseACocher;
import org.tela_botanica.client.composants.ChampComboBoxListeValeurs;
import org.tela_botanica.client.composants.ChampSliderPourcentage;
import org.tela_botanica.client.modeles.OntologiesLocales;
import org.tela_botanica.client.modeles.SimpleModelData;
import org.tela_botanica.client.modeles.collection.Collection;
import org.tela_botanica.client.modeles.collection.CollectionBotanique;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.vues.Formulaire;
import org.tela_botanica.client.vues.FormulaireOnglet;

import com.extjs.gxt.ui.client.Style.SortDir;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.TextArea;
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
import com.extjs.gxt.ui.client.widget.layout.FormData;

public class CollectionFormInventaire extends FormulaireOnglet {

        public static final String ID = "inventaire";
        private Collection collection = null;
        private CollectionBotanique collectionBotanique = null;
        private Collection collectionCollectee = null;
        private CollectionBotanique collectionBotaniqueCollectee = null;
        
        private ComboBox<SimpleModelData> existenceInventaireCombo = null;
        private ComboBox<SimpleModelData> auteurInventaireCombo = null;
        private ChampComboBoxListeValeurs formeInventaireCombo = null;
        private TextArea infoInventaireChp = null;
        private ChampCaseACocher digitalInventaireChp = null;
        private ChampSliderPourcentage pourcentDigitalInventaireChp = null;
        private ChampComboBoxListeValeurs etatInventaireCombo = null;

        public CollectionFormInventaire(Formulaire formulaireCourrant) {
                initialiserOnglet(formulaireCourrant);
                setId(ID);
                setText(Mediateur.i18nC.collectionInventaire());
                int tabIndex = formulaireCourrant.tabIndex;
                
                existenceInventaireCombo = creerSimpleComboOuiNonPeutEtre(i18nC.existenceInventaireCollection());
                add(existenceInventaireCombo, new FormData(300, 0));
                
                auteurInventaireCombo = creerSimpleComboOuiNonPeutEtre(i18nC.auteurInventaireCollection());
                add(auteurInventaireCombo, new FormData(300, 0));
                
                formeInventaireCombo = new ChampComboBoxListeValeurs(i18nC.formeInventaireCollection(), "inventaireForme", tabIndex++);
                formeInventaireCombo.setTabIndex(tabIndex++);
                add(formeInventaireCombo, new FormData(300, 0));
                
                infoInventaireChp = new TextArea();
                infoInventaireChp.setTabIndex(tabIndex++);
                infoInventaireChp.setFieldLabel(i18nC.infoInventaireCollection());
                add(infoInventaireChp, new FormData(550, 0));
                
                digitalInventaireChp = new ChampCaseACocher(i18nC.digitalInventaireCollection(), "inventaireLogiciel", true);
                add(digitalInventaireChp);
                
                pourcentDigitalInventaireChp = new ChampSliderPourcentage(i18nC.pourcentDigitalInventaireCollection());
                pourcentDigitalInventaireChp.setTabIndex(tabIndex++);
                add(pourcentDigitalInventaireChp, new FormData(200, 0));
                
                etatInventaireCombo = new ChampComboBoxListeValeurs(i18nC.etatInventaireCollection(), "inventaireEtat", tabIndex++);
                etatInventaireCombo.setTabIndex(tabIndex++);
                add(etatInventaireCombo, new FormData(300, 0));
        }
        
        public void peupler() {
                initialiserCollection();
                if (collectionBotanique != null) {
                        remplirSimpleCombo(existenceInventaireCombo, collectionBotanique.getInventaire());
                        remplirSimpleCombo(auteurInventaireCombo, collectionBotanique.getInventaireAuteur());
                        formeInventaireCombo.peupler(collectionBotanique.getInventaireForme());
                        infoInventaireChp.setValue(collectionBotanique.getInventaireInfo());
                        digitalInventaireChp.peupler(collectionBotanique.getInventaireDigital());
                        pourcentDigitalInventaireChp.peupler(collectionBotanique.getInventaireDigitalPourcent());
                        etatInventaireCombo.peupler(collectionBotanique.getInventaireEtat());
                }
        }
        
        public void collecter() {
                initialiserCollection();
                
                if (etreAccede()) {             
                        collectionBotaniqueCollectee.setInventaire(existenceInventaireCombo.getValue().getCle());
                        collectionBotaniqueCollectee.setInventaireAuteur(auteurInventaireCombo.getValue().getCle());
                        collectionBotaniqueCollectee.setInventaireForme(formeInventaireCombo.getValeur());
                        collectionBotaniqueCollectee.setInventaireInfo(infoInventaireChp.getValue());
                        collectionBotaniqueCollectee.setInventaireDigital(digitalInventaireChp.getValeur());
                        collectionBotaniqueCollectee.setInventaireDigitalPourcent(pourcentDigitalInventaireChp.getValeur());
                        collectionBotaniqueCollectee.setInventaireEtat(etatInventaireCombo.getValeur());
                }
        }
        
        private void initialiserCollection() {
                collection = ((CollectionForm) formulaire).collection;
                if (collection != null) {
                        collectionBotanique = collection.getBotanique();
                }
                
                collectionCollectee = ((CollectionForm) formulaire).collectionCollectee;
                if (collectionCollectee != null) {
                        collectionBotaniqueCollectee = collectionCollectee.getBotanique();
                }
        }
        
        public void rafraichir(Object nouvellesDonnees) {
                Debug.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()));
        }
        
        public void remplirSimpleCombo(ComboBox<SimpleModelData> simpleCombo, String valeur) {
                SimpleModelData selectionne = simpleCombo.getStore().findModel("cle", valeur);
                simpleCombo.setValue(selectionne);
        }
        
        public ComboBox<SimpleModelData> creerSimpleComboOuiNonPeutEtre(String label) {
                ListStore<SimpleModelData> listeOuiNonPeutEtre = OntologiesLocales.convertirVersListeStore(OntologiesLocales.getListeOuiNonPeutEtre());                                         
                ComboBox<SimpleModelData> combo = new ComboBox<SimpleModelData>();
                combo.setForceSelection(true);
                combo.setTriggerAction(TriggerAction.ALL);
                combo.setFieldLabel(label);
                
                combo.setDisplayField("valeur");
                combo.setValueField("cle");
                
                listeOuiNonPeutEtre.sort("ordre", SortDir.ASC);
                combo.setStore(listeOuiNonPeutEtre);
                
                return combo;
        }
}