Rev 1918 | Rev 1922 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues.collection;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;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.ChampMultiValeursMultiTypes;import org.tela_botanica.client.composants.ChampSliderPourcentage;import org.tela_botanica.client.composants.ChampNombre;import org.tela_botanica.client.interfaces.Rafraichissable;import org.tela_botanica.client.modeles.InterneValeur;import org.tela_botanica.client.modeles.Valeur;import org.tela_botanica.client.modeles.ValeurListe;import org.tela_botanica.client.modeles.collection.Collection;import org.tela_botanica.client.modeles.collection.CollectionBotanique;import org.tela_botanica.client.modeles.collection.UniteBase;import org.tela_botanica.client.modeles.collection.UniteRangement;import org.tela_botanica.client.util.Debug;import org.tela_botanica.client.util.UtilString;import org.tela_botanica.client.vues.Formulaire;import org.tela_botanica.client.vues.FormulaireOnglet;import com.extjs.gxt.ui.client.event.Events;import com.extjs.gxt.ui.client.event.FieldEvent;import com.extjs.gxt.ui.client.event.Listener;import com.extjs.gxt.ui.client.store.ListStore;import com.extjs.gxt.ui.client.widget.Label;import com.extjs.gxt.ui.client.widget.Text;import com.extjs.gxt.ui.client.widget.form.FieldSet;import com.extjs.gxt.ui.client.widget.form.NumberField;import com.extjs.gxt.ui.client.widget.form.TextArea;import com.extjs.gxt.ui.client.widget.form.TextField;import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;import com.extjs.gxt.ui.client.widget.grid.EditorGrid;import com.extjs.gxt.ui.client.widget.layout.FormData;import com.extjs.gxt.ui.client.widget.layout.FormLayout;import com.google.gwt.i18n.client.NumberFormat;import com.google.gwt.user.client.ui.HorizontalPanel;public class CollectionFormDescription extends FormulaireOnglet implements Rafraichissable {public static final String ID = "description";private Collection collection = null;private CollectionBotanique collectionBotanique = null;private Collection collectionCollectee = null;private CollectionBotanique collectionBotaniqueCollectee = null;private static ListStore<InterneValeur> precisionStore = null;private ChampComboBoxListeValeurs typesCollectionBotaCombo = null;private NumberField nbreEchantillonChp = null;private EditorGrid<UniteRangement> uniteRangementGrille = null;private ChampComboBoxListeValeurs etatUniteRangementCombo = null;private EditorGrid<UniteBase> uniteBaseGrille = null;private ChampCaseACocher typePapierConservationChp = null;private ChampCaseACocher methodeConservationChp = null;private ChampSliderPourcentage specimenFixationPourcentChp = null;private ChampSliderPourcentage etiquetteFixationPourcentChp = null;private ChampCaseACocher specimentMethodeFixationChp = null;private ChampCaseACocher etiquetteMethodeFixationSurSupportChp = null;private ChampCaseACocher etiquetteMethodeFixationSurSpecimenChp = null;private ChampCaseACocher typeEcritureChp = null;private ChampComboBoxListeValeurs traitementCombo = null;private ChampCaseACocher poisonTraitementChp = null;private ChampCaseACocher insecteTraitementChp = null;private ChampComboBoxListeValeurs etatGeneralCombo = null;private ChampComboBoxListeValeurs determinationCombo = null;private ChampMultiValeursMultiTypes specimenDegradationChp = null;private ChampMultiValeursMultiTypes presentationDegradationChp = null;private Text labelPresentationDegradationChp = null;private ChampNombre planchesHerbier = null;private ChampNombre nbEspeces = null;private ChampNombre nbCartonsHerbier = null;private TextField<String> cartonsHerbierFormat = null;private ChampNombre nbLiasses = null;private TextField<String> liassesFormat = null;private TextArea autresUnitesRangement = null;public CollectionFormDescription(Formulaire formulaireCourrant) {initialiserOnglet(formulaireCourrant);setId(ID);setText(Mediateur.i18nC.collectionDescription());FormLayout formulaireLayout = (FormLayout) this.getLayout();formulaireLayout.setLabelAlign(LabelAlign.LEFT);formulaireLayout.setLabelWidth(300);creerFieldsetTypesUniteEtat();creerFieldsetConservation(); // PapiercreerFieldsetEtiquette(); // RAScreerFieldsetTraitement(); // RAScreerFieldsetPrecision(); // A supprimer ou déplacer plus tardcreerStorePrecision();layout();}private void creerFieldsetPrecision() {FieldSet precisionFieldSet = new FieldSet();precisionFieldSet.setHeadingHtml(i18nC.collectionTitrePrecision());precisionFieldSet.setCollapsible(true);precisionFieldSet.collapse();precisionFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));typesCollectionBotaCombo = new ChampComboBoxListeValeurs(i18nC.typeCollectionBotanique(), "typeCollectionBota");typesCollectionBotaCombo.setTabIndex(tabIndex++);precisionFieldSet.add(typesCollectionBotaCombo, new FormData(250, 0));nbreEchantillonChp = new NumberField();nbreEchantillonChp.setFieldLabel(i18nC.nbreEchantillon());nbreEchantillonChp.setToolTip(i18nC.nbreEchantillonInfo());nbreEchantillonChp.setFormat(NumberFormat.getFormat("#"));precisionFieldSet.add(nbreEchantillonChp);this.add(precisionFieldSet);}private static void creerStorePrecision() {if (precisionStore == null) {precisionStore = new ListStore<InterneValeur>();precisionStore.add(new InterneValeur(UniteRangement.COMPTE_APPROXIMATIF, Mediateur.i18nC.precisionApproximatif()));precisionStore.add(new InterneValeur(UniteRangement.COMPTE_EXACT, Mediateur.i18nC.precisionExact()));}}private void creerFieldsetConservation() {FieldSet conservationFieldSet = new FieldSet();conservationFieldSet.setHeadingHtml(i18nC.collectionTitreConservation());conservationFieldSet.setCollapsible(true);conservationFieldSet.collapse();conservationFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));typePapierConservationChp = new ChampCaseACocher(i18nC.typePapierConservation(), "typePapier", true);conservationFieldSet.add(typePapierConservationChp);methodeConservationChp = new ChampCaseACocher(i18nC.methodeConservation(), "methodeRangement", true);conservationFieldSet.add(methodeConservationChp);this.add(conservationFieldSet);}private void creerFieldsetEtiquette() {FieldSet etiquetteFieldSet = new FieldSet();etiquetteFieldSet.setHeadingHtml(i18nC.collectionTitreEtiquette());etiquetteFieldSet.setCollapsible(true);etiquetteFieldSet.collapse();etiquetteFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));Text fixationPoucentLabel = new Text(i18nC.fixationPourcent());etiquetteFieldSet.add(fixationPoucentLabel);specimenFixationPourcentChp = new ChampSliderPourcentage(i18nC.specimenFixationPourcent());etiquetteFieldSet.add(specimenFixationPourcentChp, new FormData(200, 0));etiquetteFixationPourcentChp = new ChampSliderPourcentage(i18nC.etiquetteFixationPourcent());etiquetteFieldSet.add(etiquetteFixationPourcentChp, new FormData(200, 0));specimentMethodeFixationChp = new ChampCaseACocher(i18nC.specimenMethodeFixation(), "methodeFixation", true);etiquetteFieldSet.add(specimentMethodeFixationChp);etiquetteMethodeFixationSurSupportChp = new ChampCaseACocher(i18nC.etiquetteMethodeFixationSurSupport(), "methodeFixation", true);etiquetteFieldSet.add(etiquetteMethodeFixationSurSupportChp);etiquetteMethodeFixationSurSpecimenChp = new ChampCaseACocher(i18nC.etiquetteMethodeFixationSurSpecimen(), "methodeFixationSurSpecimen", true);etiquetteFieldSet.add(etiquetteMethodeFixationSurSpecimenChp);typeEcritureChp = new ChampCaseACocher(i18nC.typeEcriture(), "typeEcriture", false);etiquetteFieldSet.add(typeEcritureChp);this.add(etiquetteFieldSet);}private void creerFieldsetTraitement() {FieldSet traitementFieldSet = new FieldSet();traitementFieldSet.setHeadingHtml(i18nC.collectionTitreTraitement());traitementFieldSet.setCollapsible(true);traitementFieldSet.collapse();traitementFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));traitementCombo = new ChampComboBoxListeValeurs(i18nC.collectionTraitement(), "onpi");traitementCombo.setTrie("id_valeur");traitementFieldSet.add(traitementCombo, new FormData(300, 0));poisonTraitementChp = new ChampCaseACocher(i18nC.collectionTraitementPoison(), "poisonTraitement", true);traitementFieldSet.add(poisonTraitementChp);insecteTraitementChp = new ChampCaseACocher(i18nC.collectionTraitementInsecte(), "insecteTraitement", true);traitementFieldSet.add(insecteTraitementChp);this.add(traitementFieldSet);}private void creerFieldsetTypesUniteEtat() {FieldSet etatTypesUniteFieldSet = new FieldSet();// Etat général et nombre d'échantillons (à changer dans l'i18netatTypesUniteFieldSet.setHeadingHtml(i18nC.collectionEtatGeneralEtNombreEchantillons());etatTypesUniteFieldSet.setCollapsible(true);etatTypesUniteFieldSet.collapse();etatTypesUniteFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));etatUniteRangementCombo = new ChampComboBoxListeValeurs(i18nC.collectionUniteRangementEtatGeneral(), "etat");etatUniteRangementCombo.setToolTip(i18nC.collectionUniteRangementEtatGeneralInfo());etatUniteRangementCombo.setTrie("id_valeur");etatUniteRangementCombo.setWidth(300);etatTypesUniteFieldSet.add(etatUniteRangementCombo);// Liasses et cartons d'herbierLabel labelcartonsHerbiersFormat = new Label(i18nC.collectionCartonsHerbiers());labelcartonsHerbiersFormat.setStyleName("labelChampNombreFormat");nbCartonsHerbier = new ChampNombre();nbCartonsHerbier.setStyleName("champNombreFormat");nbCartonsHerbier.setWidth(55);nbCartonsHerbier.setEmptyText(i18nC.collectionUniteNbre());cartonsHerbierFormat = new TextField<String>();cartonsHerbierFormat.setStyleName("champNombreFormat");cartonsHerbierFormat.setEmptyText(i18nC.collectionUniteFormat());HorizontalPanel conteneurCartonsHerbiers = new HorizontalPanel();conteneurCartonsHerbiers.setBorderWidth(0);conteneurCartonsHerbiers.add(labelcartonsHerbiersFormat);conteneurCartonsHerbiers.add(nbCartonsHerbier);conteneurCartonsHerbiers.add(cartonsHerbierFormat);etatTypesUniteFieldSet.add(conteneurCartonsHerbiers);Label labelLiasses = new Label(i18nC.collectionLiasses());labelLiasses.setStyleName("labelChampNombreFormat");nbLiasses = new ChampNombre();nbLiasses.setStyleName("champNombreFormat");nbLiasses.setWidth(55);nbLiasses.setEmptyText(i18nC.collectionUniteNbre());liassesFormat = new TextField<String>();liassesFormat.setStyleName("champNombreFormat");liassesFormat.setEmptyText(i18nC.collectionUniteFormat());HorizontalPanel conteneurLiasses = new HorizontalPanel();conteneurLiasses.setBorderWidth(0);conteneurLiasses.add(labelLiasses);conteneurLiasses.add(nbLiasses);conteneurLiasses.add(liassesFormat);etatTypesUniteFieldSet.add(conteneurLiasses);autresUnitesRangement = new TextArea();autresUnitesRangement.setStyleName("textAreaAutreUniteRangement");autresUnitesRangement.setHeight(90);autresUnitesRangement.setFieldLabel(i18nC.collectionAutreUnitesRangement());etatTypesUniteFieldSet.add(autresUnitesRangement);planchesHerbier = new ChampNombre();planchesHerbier.setFieldLabel(i18nC.collectionNbPlanchesHerbier());nbEspeces = new ChampNombre();nbEspeces.setFieldLabel(i18nC.collectionNbEspeces());etatTypesUniteFieldSet.add(planchesHerbier);etatTypesUniteFieldSet.add(nbEspeces);add(etatTypesUniteFieldSet);etatGeneralCombo = new ChampComboBoxListeValeurs(i18nC.collectionEtatGeneral(), "etat");etatGeneralCombo.setToolTip(i18nC.collectionEtatGeneralInfo());etatGeneralCombo.setTrie("id_valeur");etatTypesUniteFieldSet.add(etatGeneralCombo, new FormData(300, 0));specimenDegradationChp = new ChampMultiValeursMultiTypes(i18nC.degradationSpecimen(), 150, true);specimenDegradationChp.initialiserType("specimenDegradation");specimenDegradationChp.initialiserCombobox("niveauImportance");etatTypesUniteFieldSet.add(specimenDegradationChp);labelPresentationDegradationChp = new Text();labelPresentationDegradationChp.setWidth("95%");labelPresentationDegradationChp.setVisible(false);presentationDegradationChp = new ChampMultiValeursMultiTypes(i18nC.degradationPresentation(), 150, 200, true);presentationDegradationChp.initialiserType("supportDegradation");presentationDegradationChp.initialiserCombobox("niveauImportance");presentationDegradationChp.getTypes().addListener(Events.Select,new Listener<FieldEvent>() {public void handleEvent(FieldEvent be) {if (((Valeur)(be.getField().getValue())).get("id_valeur").equals("2310")) {labelPresentationDegradationChp.setText(i18nC.degradationPresentationLabel());labelPresentationDegradationChp.setVisible(true);}else {labelPresentationDegradationChp.setText("");labelPresentationDegradationChp.setVisible(false);}}});etatTypesUniteFieldSet.add(presentationDegradationChp);etatTypesUniteFieldSet.add(labelPresentationDegradationChp);determinationCombo = new ChampComboBoxListeValeurs(i18nC.collectionDetermination(), "niveauDetermination");determinationCombo.setTrie("id_valeur");etatTypesUniteFieldSet.add(determinationCombo, new FormData(450, 0));this.add(etatTypesUniteFieldSet);}public void peupler() {initialiserCollection();if (collectionBotanique != null) {typesCollectionBotaCombo.peupler(collectionBotanique.getType());if (!UtilString.isEmpty(collectionBotanique.getNbreEchantillon())) {nbreEchantillonChp.setValue(Integer.parseInt(collectionBotanique.getNbreEchantillon()));}if(!collectionBotanique.getNbCartonsHerbiers().isEmpty()) {nbCartonsHerbier.setValue((Integer.parseInt(collectionBotanique.getNbCartonsHerbiers())));}cartonsHerbierFormat.setValue(collectionBotanique.getFormatCartonsHerbiers());if(!collectionBotanique.getNbLiasses().isEmpty()) {nbLiasses.setValue((Integer.parseInt(collectionBotanique.getNbLiasses())));}liassesFormat.setValue(collectionBotanique.getFormatLiasses());autresUnitesRangement.setValue(collectionBotanique.getAutresUnitesRangement());etatUniteRangementCombo.peupler(collectionBotanique.getUniteRangementEtat());if(!collectionBotanique.getNbPlanchesHerbiers().isEmpty()) {planchesHerbier.setValue((Integer.parseInt(collectionBotanique.getNbPlanchesHerbiers())));}if(!collectionBotanique.getNbEspeces().isEmpty()) {nbEspeces.setValue((Integer.parseInt(collectionBotanique.getNbEspeces())));}typePapierConservationChp.peupler(collectionBotanique.getConservationPapierType());methodeConservationChp.peupler(collectionBotanique.getConservationMethode());specimenFixationPourcentChp.peupler(collectionBotanique.getSpecimenFixationPourcent());etiquetteFixationPourcentChp.peupler(collectionBotanique.getEtiquetteFixationPourcent());specimentMethodeFixationChp.peupler(collectionBotanique.getSpecimenFixationMethode());etiquetteMethodeFixationSurSupportChp.peupler(collectionBotanique.getEtiquetteFixationSupport());etiquetteMethodeFixationSurSpecimenChp.peupler(collectionBotanique.getEtiquetteFixationSpecimen());typeEcritureChp.peupler(collectionBotanique.getEtiquetteEcriture());traitementCombo.peupler(collectionBotanique.getTraitement());poisonTraitementChp.peupler(collectionBotanique.getTraitementPoison());insecteTraitementChp.peupler(collectionBotanique.getTraitementInsecte());etatGeneralCombo.peupler(collectionBotanique.getEtatGeneral());specimenDegradationChp.peupler(collectionBotanique.getDegradationSpecimen());presentationDegradationChp.peupler(collectionBotanique.getDegradationPresentation());determinationCombo.peupler(collectionBotanique.getDetermination());}}public void collecter() {initialiserCollection();if (etreAccede()) {collectionBotaniqueCollectee.setType(typesCollectionBotaCombo.getValeur());if (nbreEchantillonChp.getValue() != null) {collectionBotaniqueCollectee.setNbreEchantillon(Integer.toString(nbreEchantillonChp.getValue().intValue()));}collectionBotaniqueCollectee.setNbCartonsHerbiers(nbCartonsHerbier.getValue()+"");collectionBotaniqueCollectee.setFormatCartonsHerbiers(cartonsHerbierFormat.getValue());collectionBotaniqueCollectee.setNbLiasses(nbLiasses.getValue()+"");collectionBotaniqueCollectee.setFormatLiasses(liassesFormat.getValue());collectionBotaniqueCollectee.setAutresUnitesRangement(autresUnitesRangement.getValue());collectionBotaniqueCollectee.setUniteRangementEtat(etatUniteRangementCombo.getValeur());collectionBotaniqueCollectee.setNbPlanchesHerbiers(planchesHerbier.getValue()+"");collectionBotaniqueCollectee.setNbEspeces(nbEspeces.getValue()+"");collectionBotaniqueCollectee.setConservationPapierType(typePapierConservationChp.getValeur());collectionBotaniqueCollectee.setConservationMethode(methodeConservationChp.getValeur());collectionBotaniqueCollectee.setSpecimenFixationPourcent(specimenFixationPourcentChp.getValeur());collectionBotaniqueCollectee.setEtiquetteFixationPourcent(etiquetteFixationPourcentChp.getValeur());collectionBotaniqueCollectee.setSpecimenFixationMethode(specimentMethodeFixationChp.getValeur());collectionBotaniqueCollectee.setEtiquetteFixationSupport(etiquetteMethodeFixationSurSupportChp.getValeur());collectionBotaniqueCollectee.setEtiquetteFixationSpecimen(etiquetteMethodeFixationSurSpecimenChp.getValeur());collectionBotaniqueCollectee.setEtiquetteEcriture(typeEcritureChp.getValeur());collectionBotaniqueCollectee.setTraitement(traitementCombo.getValeur());collectionBotaniqueCollectee.setTraitementPoison(poisonTraitementChp.getValeur());collectionBotaniqueCollectee.setTraitementInsecte(insecteTraitementChp.getValeur());collectionBotaniqueCollectee.setEtatGeneral(etatGeneralCombo.getValeur());collectionBotaniqueCollectee.setDegradationSpecimen(specimenDegradationChp.getValeurs());collectionBotaniqueCollectee.setDegradationPresentation(presentationDegradationChp.getValeurs());collectionBotaniqueCollectee.setDetermination(determinationCombo.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) {if (nouvellesDonnees instanceof ValeurListe) {ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;rafraichirValeurListe(listeValeurs);} else {Debug.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()));}}private void rafraichirValeurListe(ValeurListe listeValeurs) {if (listeValeurs.getId().equals(config.getListeId("typeUniteRangement"))) {Iterator<String> it = listeValeurs.keySet().iterator();while (it.hasNext()) {Valeur valeur = listeValeurs.get(it.next());UniteRangement unite = new UniteRangement();unite.setId(valeur.getId());unite.setType(valeur.getNom());unite.setTypeAutre(false);uniteRangementGrille.getStore().add(unite);}} else if (listeValeurs.getId().equals(config.getListeId("typeUniteBase"))) {Iterator<String> it = listeValeurs.keySet().iterator();while (it.hasNext()) {Valeur valeur = listeValeurs.get(it.next());UniteBase unite = new UniteBase();unite.setId(valeur.getId());unite.setType(valeur.getNom());unite.setTypeAutre(false);uniteBaseGrille.getStore().add(unite);}} else {Debug.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!");}}}