Subversion Repositories eFlore/Applications.coel

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

package org.tela_botanica.client.vues;

import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import org.tela_botanica.client.interfaces.Rafraichissable;

import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.data.BasePagingLoadResult;
import com.extjs.gxt.ui.client.data.BasePagingLoader;
import com.extjs.gxt.ui.client.data.JsonReader;
import com.extjs.gxt.ui.client.data.ListLoadResult;
import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.data.ModelType;
import com.extjs.gxt.ui.client.data.PagingLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.extjs.gxt.ui.client.data.PagingLoader;
import com.extjs.gxt.ui.client.data.ScriptTagProxy;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.Radio;
import com.extjs.gxt.ui.client.widget.form.RadioGroup;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
import com.extjs.gxt.ui.client.widget.layout.ColumnData;
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
import com.extjs.gxt.ui.client.widget.layout.FormLayout;

public class FormStructureVue extends LayoutContainer implements Rafraichissable {

        public FormStructureVue() {
                setLayout(new FitLayout());
                
                // Création du panneau Formulaire
                FormPanel panel = new FormPanel();  
                panel.setFrame(true);  
                panel.setIconStyle("icone-form-ajouter");  
                panel.setCollapsible(false);  
                panel.setHeading("Ajout d'une institution");  
                panel.setButtonAlign(HorizontalAlignment.CENTER);  
                panel.setLayout(new FlowLayout());  
                
                LayoutContainer main = new LayoutContainer();  
                main.setLayout(new ColumnLayout());

                // Création de la dispostion : GAUCHE
                LayoutContainer gauche = new LayoutContainer();
                FormLayout layout = new FormLayout();
                layout.setLabelAlign(LabelAlign.LEFT);
                layout.setLabelWidth(200);
                gauche.setLayout(layout);  

                // Création de la dispostion : DROITE
                LayoutContainer droite = new LayoutContainer();
                layout = new FormLayout();
                layout.setLabelAlign(LabelAlign.LEFT);
                droite.setLayout(layout);  

                // Formulaire GAUCHE            
                TextField<String> nomStructureChp = new TextField<String>();  
                nomStructureChp.setFieldLabel("Nom de la structure");
                nomStructureChp.setAllowBlank(false);
                gauche.add(nomStructureChp);
                
                TextField<String> ihChp = new TextField<String>();  
                ihChp.setFieldLabel("Acronyme Index Herbariorum");
                ihChp.setToolTip("Herbier de plus de 5000 échantillons");
                gauche.add(ihChp);
                
                TextField<String> mnhnChp = new TextField<String>();  
                mnhnChp.setFieldLabel("Acronyme MNHN");
                mnhnChp.setToolTip("Herbier de moins de 5000 échantillons");
                gauche.add(mnhnChp);
                
                // Combobox
                String url = "http://localhost/jrest/CoelValeurListe/ab/12";  
                ScriptTagProxy<Object, PagingLoadResult<ModelData>> proxy = new ScriptTagProxy<Object, PagingLoadResult<ModelData>>(url);  
                   
                ModelType type = new ModelType();  
                type.root = "topics";
                type.totalName = "totalCount";
                type.addField("cmlv_id_valeur", "id");
                type.addField("cmlv_ce_parent", "ce_parent");
                type.addField("cmlv_ce_projet", "ce_projet");
                type.addField("cmlv_nom", "nom");
                type.addField("cmlv_abreviation", "abreviation");
                type.addField("cmlv_description", "description");
                type.addField("cmlv_ce_meta", "ce_meta");
                
                JsonReader<PagingLoadConfig> reader = new JsonReader<PagingLoadConfig>(type) {  
                        protected ListLoadResult newLoadResult(PagingLoadConfig loadConfig, List<ModelData> models) {  
                                PagingLoadResult result = new BasePagingLoadResult(models, loadConfig.getOffset(),  
                                loadConfig.getLimit());  
                                return result;  
                        }  
                };
                
                PagingLoader loader = new BasePagingLoader(proxy, reader);  
                
                ListStore<ModelData> store = new ListStore<ModelData>(loader);  
                
                ComboBox<ModelData> combo = new ComboBox<ModelData>();  
                combo.setFieldLabel("Statut des structures publiques");
                combo.setDisplayField("nom");  
                combo.setItemSelector("div.search-item");  
                //combo.setTemplate(getTemplate());  
                combo.setStore(store);  
                combo.setHideTrigger(false);  
                combo.setPageSize(5);
                gauche.add(combo);
                
                // Formulaire DROITE            
                RadioGroup group = new RadioGroup();  
                group.setFieldLabel("Type");
                Radio structureRadio = new Radio();  
                structureRadio.setBoxLabel("Structure");
                structureRadio.setValue(true);
                group.add(structureRadio);
                Radio particulierRadio = new Radio();
                particulierRadio.setBoxLabel("Particulier");
                group.add(particulierRadio);
                droite.add(group);
                
                // Ajout des colonnes
                main.add(gauche, new ColumnData(.5));  
                main.add(droite, new ColumnData(.5));
                panel.add(main);
                
                // Ajout des boutons au panneau formulaire
                Button annulerBtn = new Button("Annuler");
                panel.addButton(annulerBtn);
                Button validerBtn = new Button("Valider");
                panel.addButton(validerBtn);
                
                // Ajout du panneau Formulaire à la disposition générale
                add(panel);               
        }

        public void rafraichir(Object nouvelleDonnees) {
                // TODO Auto-generated method stub
                
        }

}