Rev 1018 | Rev 1415 | 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.HashMap;import java.util.Iterator;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.composants.ConteneurMultiChamps;import org.tela_botanica.client.interfaces.Rafraichissable;import org.tela_botanica.client.modeles.aDonnee;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.util.Pattern;import org.tela_botanica.client.util.UtilDate;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.util.Margins;import com.extjs.gxt.ui.client.widget.Text;import com.extjs.gxt.ui.client.widget.form.DateField;import com.extjs.gxt.ui.client.widget.form.FieldSet;import com.extjs.gxt.ui.client.widget.form.TextArea;import com.extjs.gxt.ui.client.widget.layout.FormData;import com.extjs.gxt.ui.client.widget.layout.HBoxLayoutData;public class CollectionFormContenu extends FormulaireOnglet implements Rafraichissable {public static final String ID = "contenu";private Collection collection = null;private CollectionBotanique collectionBotanique = null;private Collection collectionCollectee = null;private CollectionBotanique collectionBotaniqueCollectee = null;private ChampCaseACocher natureChp = null;private TextArea specialiteChp = null;private ChampComboBoxListeValeurs dateDebutCombo = null;private ChampComboBoxListeValeurs dateFinCombo = null;private DateField dateDebutChp = null;private DateField dateFinChp = null;private TextArea annotationClassementChp = null;private ChampComboBoxListeValeurs etatClassementCombo = null;private ChampComboBoxListeValeurs precisionDateCombo = null;private ChampComboBoxListeValeurs precisionLocaliteCombo = null;private TextArea etiquetteAnnotationChp = null;private ChampComboBoxListeValeurs integreCollectionCombo = null;private ChampComboBoxListeValeurs infoIntegreCollectionCombo = null;private ChampSliderPourcentage auteurTitrePourcentChp;private ChampSliderPourcentage famillePourcentChp;private ChampSliderPourcentage genrePourcentChp;private ChampSliderPourcentage spPourcentChp;private ChampSliderPourcentage auteurSpPourcentChp;private ChampSliderPourcentage localitePourcentChp;private ChampSliderPourcentage datePourcentChp;public CollectionFormContenu(Formulaire formulaireCourrant) {initialiserOnglet(formulaireCourrant);setId(ID);setText(Mediateur.i18nC.collectionContenu());creerFieldsetNature();// TODO : réaliser un champ couverture géographique détaillécreerFieldsetPeriode();creerFieldsetClassement();creerFieldsetEtiquette();creerFieldsetIntegration();}private void creerFieldsetNature() {FieldSet natureFieldSet = new FieldSet();natureFieldSet.setHeading(i18nC.collectionNatureTitre());natureFieldSet.setCollapsible(true);natureFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));natureChp = new ChampCaseACocher(i18nC.natureVegetaleContenu(), "natureVegetale", false);natureFieldSet.add(natureChp);specialiteChp = new TextArea();specialiteChp.setFieldLabel(i18nC.specialiteCollection());specialiteChp.setToolTip(i18nC.specialiteCollectionInfo());natureFieldSet.add(specialiteChp, new FormData(550, 0));add(natureFieldSet);}private void creerFieldsetPeriode() {FieldSet periodeFieldSet = new FieldSet();periodeFieldSet.setHeading(i18nC.collectionConstitutionTitre());periodeFieldSet.setCollapsible(true);periodeFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));ConteneurMultiChamps dateDebutConteneur = new ConteneurMultiChamps(i18nC.dateDebutCollection());dateDebutChp = new DateField();dateDebutChp.getPropertyEditor().setFormat(UtilDate.formatDateFr);dateDebutChp.getPropertyEditor().setParseStrict(false);dateDebutChp.setFormatValue(true);dateDebutConteneur.ajouterChamp(dateDebutChp, new HBoxLayoutData(new Margins(0, 20, 0, 0)));dateDebutCombo = new ChampComboBoxListeValeurs(null, "dateDebut");dateDebutCombo.setTrie("id_valeur");dateDebutConteneur.ajouterChamp(dateDebutCombo);periodeFieldSet.add(dateDebutConteneur);ConteneurMultiChamps dateFinConteneur = new ConteneurMultiChamps(i18nC.dateFinCollection());dateFinChp = new DateField();dateFinChp.getPropertyEditor().setFormat(UtilDate.formatDateFr);dateFinChp.getPropertyEditor().setParseStrict(false);dateFinChp.setFormatValue(true);dateFinConteneur.ajouterChamp(dateFinChp, new HBoxLayoutData(new Margins(0, 20, 0, 0)));dateFinCombo = new ChampComboBoxListeValeurs(null, "dateFin");dateFinCombo.setTrie("id_valeur");dateFinConteneur.ajouterChamp(dateFinCombo);periodeFieldSet.add(dateFinConteneur);Text infoDate = new Text(i18nC.dateApproximativeInfo());periodeFieldSet.add(infoDate);add(periodeFieldSet);}private void creerFieldsetClassement() {FieldSet classementFieldSet = new FieldSet();classementFieldSet.setHeading(i18nC.collectionClassementTitre());classementFieldSet.setCollapsible(true);classementFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));etatClassementCombo = new ChampComboBoxListeValeurs(i18nC.etatClassementCollection(), "etatClassement", tabIndex++);classementFieldSet.add(etatClassementCombo);annotationClassementChp = new TextArea();annotationClassementChp.setFieldLabel(i18nC.annotationClassementCollection());classementFieldSet.add(annotationClassementChp, new FormData(550, 0));Text infoClassement = new Text(i18nC.annotationClassementCollectionInfo());classementFieldSet.add(infoClassement);add(classementFieldSet);}private void creerFieldsetEtiquette() {FieldSet etiquetteFieldSet = new FieldSet();etiquetteFieldSet.setHeading(i18nC.collectionEtiquetteTitre());etiquetteFieldSet.setCollapsible(true);etiquetteFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));Text renseignementPoucentLabel = new Text(i18nC.renseignementEtiquetteCollection());renseignementPoucentLabel.setTagName("label");renseignementPoucentLabel.setStyleName("x-form-item-label");etiquetteFieldSet.add(renseignementPoucentLabel);auteurTitrePourcentChp = new ChampSliderPourcentage(i18nC.auteurTitrePourcentCollection());etiquetteFieldSet.add(auteurTitrePourcentChp, new FormData(200, 0));famillePourcentChp = new ChampSliderPourcentage(i18nC.famillePourcentCollection());etiquetteFieldSet.add(famillePourcentChp, new FormData(200, 0));genrePourcentChp = new ChampSliderPourcentage(i18nC.genrePourcentCollection());etiquetteFieldSet.add(genrePourcentChp, new FormData(200, 0));spPourcentChp = new ChampSliderPourcentage(i18nC.spPourcentCollection());etiquetteFieldSet.add(spPourcentChp, new FormData(200, 0));auteurSpPourcentChp = new ChampSliderPourcentage(i18nC.auteurSpPourcentCollection());etiquetteFieldSet.add(auteurSpPourcentChp, new FormData(200, 0));localitePourcentChp = new ChampSliderPourcentage(i18nC.localitePourcentCollection());etiquetteFieldSet.add(localitePourcentChp, new FormData(200, 0));datePourcentChp = new ChampSliderPourcentage(i18nC.datePourcentCollection());etiquetteFieldSet.add(datePourcentChp, new FormData(200, 0));precisionLocaliteCombo = new ChampComboBoxListeValeurs(i18nC.precisionLocaliteCollection(), "onep", tabIndex++);etiquetteFieldSet.add(precisionLocaliteCombo);precisionDateCombo = new ChampComboBoxListeValeurs(i18nC.precisionDateCollection(), "onep", tabIndex++);etiquetteFieldSet.add(precisionDateCombo);etiquetteAnnotationChp = new TextArea();etiquetteAnnotationChp.setFieldLabel(i18nC.etiquetteAnnotationCollection());etiquetteAnnotationChp.setToolTip(i18nC.etiquetteAnnotationCollectionInfo());etiquetteFieldSet.add(etiquetteAnnotationChp, new FormData(550, 0));add(etiquetteFieldSet);}private String collecterEtiquetteRenseignement() {String renseignement = "";renseignement += creerTypeValeur("AT", auteurTitrePourcentChp.getValeur());renseignement += creerTypeValeur("F", famillePourcentChp.getValeur());renseignement += creerTypeValeur("G", genrePourcentChp.getValeur());renseignement += creerTypeValeur("SP", spPourcentChp.getValeur());renseignement += creerTypeValeur("ASP", auteurSpPourcentChp.getValeur());renseignement += creerTypeValeur("L", localitePourcentChp.getValeur());renseignement += creerTypeValeur("D", datePourcentChp.getValeur());renseignement = renseignement.replaceFirst(aDonnee.SEPARATEUR_VALEURS+"$", "");return renseignement;}private String creerTypeValeur(String type, String valeur) {String retour = "";if (!UtilString.isEmpty(valeur)) {retour = type+aDonnee.SEPARATEUR_TYPE_VALEUR+valeur+aDonnee.SEPARATEUR_VALEURS;}return retour;}private void peuplerEtiquetteRenseignement(String valeurTruk) {HashMap<String,String> infos = parserEtiquetteRenseignement(valeurTruk);if (infos != null) {Iterator<String> it = infos.keySet().iterator();while (it.hasNext()) {String cle = it.next();if (cle.equals("AT")) {auteurTitrePourcentChp.peupler(infos.get(cle));} else if (cle.equals("F")) {famillePourcentChp.peupler(infos.get(cle));} else if (cle.equals("G")) {genrePourcentChp.peupler(infos.get(cle));} else if (cle.equals("SP")) {spPourcentChp.peupler(infos.get(cle));} else if (cle.equals("ASP")) {auteurSpPourcentChp.peupler(infos.get(cle));} else if (cle.equals("L")) {localitePourcentChp.peupler(infos.get(cle));} else if (cle.equals("D")) {datePourcentChp.peupler(infos.get(cle));}}}}public static HashMap<String,String> parserEtiquetteRenseignement(String valeurTruk) {HashMap<String,String> infos = null;if (!UtilString.isEmpty(valeurTruk)) {infos = new HashMap<String,String>();String[] pourcentages = valeurTruk.split(Pattern.quote(aDonnee.SEPARATEUR_VALEURS));for (int i = 0; i < pourcentages.length; i++) {String[] pourcentageIdValeur = pourcentages[i].split(Pattern.quote(aDonnee.SEPARATEUR_TYPE_VALEUR));String id = pourcentageIdValeur[0];String valeur = pourcentageIdValeur[1];infos.put(id, valeur);}}return infos;}private void creerFieldsetIntegration() {FieldSet integrationFieldSet = new FieldSet();integrationFieldSet.setHeading(i18nC.collectionIntegreeTitre());integrationFieldSet.setCollapsible(true);integrationFieldSet.setLayout(Formulaire.creerFormLayout(350, alignementLabelDefaut));integreCollectionCombo = new ChampComboBoxListeValeurs(i18nC.integreCollection(), "onpi", tabIndex++);integrationFieldSet.add(integreCollectionCombo);infoIntegreCollectionCombo = new ChampComboBoxListeValeurs(i18nC.infoIntegreCollection(), "onp", tabIndex++);integrationFieldSet.add(infoIntegreCollectionCombo);Text infoIntegration = new Text(i18nC.infoIntegrationCollection());integrationFieldSet.add(infoIntegration);add(integrationFieldSet);}public void peupler() {initialiserCollection();if (collectionBotanique != null) {natureChp.peupler(collectionBotanique.getNature());specialiteChp.setValue(collectionBotanique.getSpecialite());dateDebutChp.setValue(UtilString.formaterEnDate(collectionBotanique.getRecolteDateDebut()));dateDebutCombo.peupler(collectionBotanique.getRecolteDateDebutType());dateFinChp.setValue(UtilString.formaterEnDate(collectionBotanique.getRecolteDateFin()));dateFinCombo.peupler(collectionBotanique.getRecolteDateFinType());etatClassementCombo.peupler(collectionBotanique.getClassementEtat());annotationClassementChp.setValue(collectionBotanique.getClassementAnnotation());peuplerEtiquetteRenseignement(collectionBotanique.getEtiquetteRenseignement());precisionLocaliteCombo.peupler(collectionBotanique.getPrecisionLocalite());precisionDateCombo.peupler(collectionBotanique.getPrecisionDate());etiquetteAnnotationChp.setValue(collectionBotanique.getAnnotationsDiverses());integreCollectionCombo.peupler(collectionBotanique.getCollectionIntegre());infoIntegreCollectionCombo.peupler(collectionBotanique.getCollectionIntegreInfo());}}public void collecter() {initialiserCollection();if (etreAccede()) {collectionBotaniqueCollectee.setNature(natureChp.getValeur());collectionBotaniqueCollectee.setSpecialite(specialiteChp.getValue());collectionBotaniqueCollectee.setRecolteDateDebut(UtilDate.formaterEnString(dateDebutChp.getValue()));collectionBotaniqueCollectee.setRecolteDateDebutType(dateDebutCombo.getValeur());collectionBotaniqueCollectee.setRecolteDateFin(UtilDate.formaterEnString(dateFinChp.getValue()));collectionBotaniqueCollectee.setRecolteDateFinType(dateFinCombo.getValeur());collectionBotaniqueCollectee.setClassementEtat(etatClassementCombo.getValeur());collectionBotaniqueCollectee.setClassementAnnotation(annotationClassementChp.getValue());collectionBotaniqueCollectee.setEtiquetteRenseignement(collecterEtiquetteRenseignement());collectionBotaniqueCollectee.setPrecisionLocalite(precisionLocaliteCombo.getValeur());collectionBotaniqueCollectee.setPrecisionDate(precisionDateCombo.getValeur());collectionBotaniqueCollectee.setAnnotationsDiverses(etiquetteAnnotationChp.getValue());collectionBotaniqueCollectee.setCollectionIntegre(integreCollectionCombo.getValeur());collectionBotaniqueCollectee.setCollectionIntegreInfo(infoIntegreCollectionCombo.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()));}}