Rev 69 | Rev 100 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Iterator;import java.util.List;import org.tela_botanica.client.Mediateur;import org.tela_botanica.client.Modele;import org.tela_botanica.client.RegistreId;import org.tela_botanica.client.interfaces.Rafraichissable;import org.tela_botanica.client.modeles.Configuration;import org.tela_botanica.client.modeles.Structure;import org.tela_botanica.client.modeles.StructureListe;import org.tela_botanica.client.modeles.Valeur;import org.tela_botanica.client.modeles.ValeurListe;import com.extjs.gxt.ui.client.Registry;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;import com.google.gwt.core.client.GWT;public class FormStructureVue extends LayoutContainer implements Rafraichissable {private Modele coelModele = null ;private ListStore<Valeur> magazinLstpr = null;private ComboBox<Valeur> comboLstpr = null;private ListStore<Valeur> magazinLstpu = null;private ComboBox<Valeur> comboLstpu = null;public FormStructureVue() {setLayout(new FitLayout());// Initialisation de variablescoelModele = Registry.get(RegistreId.MODELE);// Création du panneau FormulaireFormPanel 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 : GAUCHELayoutContainer gauche = new LayoutContainer();FormLayout layout = new FormLayout();layout.setLabelAlign(LabelAlign.LEFT);layout.setLabelWidth(200);gauche.setLayout(layout);// Création de la dispostion : DROITELayoutContainer droite = new LayoutContainer();layout = new FormLayout();layout.setLabelAlign(LabelAlign.LEFT);droite.setLayout(layout);// Formulaire GAUCHETextField<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);// ComboboxcoelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpu"));magazinLstpu = new ListStore<Valeur>();magazinLstpu.add(new ArrayList<Valeur>());comboLstpu = new ComboBox<Valeur>();comboLstpu.setFieldLabel("Statut des structures publiques");comboLstpu.setDisplayField("nom");comboLstpu.setTriggerAction(TriggerAction.ALL);comboLstpu.setStore(magazinLstpu);gauche.add(comboLstpu);coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpr"));magazinLstpr = new ListStore<Valeur>();magazinLstpr.add(new ArrayList<Valeur>());comboLstpr = new ComboBox<Valeur>();comboLstpr.setFieldLabel("Statut des structures privées");comboLstpr.setDisplayField("nom");comboLstpr.setTriggerAction(TriggerAction.ALL);comboLstpr.setStore(magazinLstpr);gauche.add(comboLstpr);TextField<String> adrChp = new TextField<String>();adrChp.setFieldLabel("Adresse");gauche.add(adrChp);TextField<String> cpChp = new TextField<String>();cpChp.setFieldLabel("Code postal");gauche.add(cpChp);TextField<String> villeChp = new TextField<String>();villeChp.setFieldLabel("Ville");gauche.add(villeChp);TextField<String> regionChp = new TextField<String>();regionChp.setFieldLabel("Région");gauche.add(regionChp);TextField<String> paysChp = new TextField<String>();paysChp.setFieldLabel("Pays");gauche.add(paysChp);TextField<String> telChp = new TextField<String>();telChp.setFieldLabel("Téléphone");gauche.add(telChp);TextField<String> faxChp = new TextField<String>();faxChp.setFieldLabel("Fax");gauche.add(faxChp);TextField<String> emailChp = new TextField<String>();emailChp.setFieldLabel("Courriel");emailChp.setToolTip("Saisir le courriel de l'organisation, pas de courriel individuel. Ex. : accueil@organisation.org");gauche.add(emailChp);TextField<String> urlChp = new TextField<String>();urlChp.setFieldLabel("Site web");gauche.add(urlChp);TextField<String> dateFondationChp = new TextField<String>();dateFondationChp.setFieldLabel("Date de fondation");gauche.add(dateFondationChp);// Formulaire DROITERadioGroup 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 colonnesmain.add(gauche, new ColumnData(.5));main.add(droite, new ColumnData(.5));panel.add(main);// Ajout des boutons au panneau formulaireButton annulerBtn = new Button("Annuler");panel.addButton(annulerBtn);Button validerBtn = new Button("Valider");panel.addButton(validerBtn);// Ajout du panneau Formulaire à la disposition généraleadd(panel);}public void rafraichir(Object nouvelleDonnees) {if (nouvelleDonnees instanceof ValeurListe) {ValeurListe listeValeurs = (ValeurListe) nouvelleDonnees;List<Valeur> liste = new ArrayList<Valeur>();for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {liste.add(listeValeurs.get(it.next()));}// Test pour savoir si la liste contient des élémentsif (liste.size() > 0) {Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);if (listeValeurs.getId().equals(config.getListeId("stpr"))) {GWT.log("La liste #"+listeValeurs.getId()+" a été reçue!", null);magazinLstpr.removeAll();magazinLstpr.add(liste);comboLstpr.setStore(magazinLstpr);}if (listeValeurs.getId().equals(config.getListeId("stpu"))) {GWT.log("La liste #"+listeValeurs.getId()+" a été reçue!", null);magazinLstpu.removeAll();magazinLstpu.add(liste);comboLstpu.setStore(magazinLstpu);}} else {GWT.log("La liste #"+listeValeurs.getId()+" ne contient aucune valeurs!", null);}}}}