New file |
0,0 → 1,757 |
package org.tela_botanica.client.vues.structure; |
|
import java.util.ArrayList; |
import java.util.Collection; |
import java.util.Date; |
import java.util.List; |
|
import org.tela_botanica.client.ComposantClass; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.composants.ChampComboBoxListeValeurs; |
import org.tela_botanica.client.composants.ChampComboBoxRechercheTempsReelPaginable; |
import org.tela_botanica.client.composants.ChampNombre; |
import org.tela_botanica.client.composants.InfoLogger; |
import org.tela_botanica.client.composants.pagination.ProxyValeur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.InterneValeur; |
import org.tela_botanica.client.modeles.InterneValeurListe; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.modeles.structure.Structure; |
import org.tela_botanica.client.modeles.structure.StructureAPersonne; |
import org.tela_botanica.client.modeles.structure.StructureAPersonneListe; |
import org.tela_botanica.client.modeles.structure.StructureConservation; |
import org.tela_botanica.client.modeles.structure.StructureValorisation; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.util.Pattern; |
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.Registry; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.extjs.gxt.ui.client.data.ModelType; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.event.Listener; |
import com.extjs.gxt.ui.client.event.SelectionChangedEvent; |
import com.extjs.gxt.ui.client.event.SelectionChangedListener; |
import com.extjs.gxt.ui.client.store.ListStore; |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.TabItem; |
import com.extjs.gxt.ui.client.widget.button.Button; |
import com.extjs.gxt.ui.client.widget.form.CheckBoxGroup; |
import com.extjs.gxt.ui.client.widget.form.ComboBox; |
import com.extjs.gxt.ui.client.widget.form.Field; |
import com.extjs.gxt.ui.client.widget.form.FieldSet; |
import com.extjs.gxt.ui.client.widget.form.HiddenField; |
import com.extjs.gxt.ui.client.widget.form.LabelField; |
import com.extjs.gxt.ui.client.widget.form.NumberField; |
import com.extjs.gxt.ui.client.widget.form.RadioGroup; |
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.ComboBox.TriggerAction; |
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign; |
import com.extjs.gxt.ui.client.widget.grid.CellEditor; |
import com.extjs.gxt.ui.client.widget.grid.EditorGrid; |
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.FormData; |
import com.extjs.gxt.ui.client.widget.layout.FormLayout; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.i18n.client.NumberFormat; |
import com.google.gwt.user.client.Window; |
|
public class StructureFormIdentification extends FormulaireOnglet implements Rafraichissable { |
|
public TabItem personnelOnglet; |
public TabItem conservationOnglet; |
public TabItem valorisationOnglet; |
public HiddenField<String> idStructureChp; |
public Structure identification; |
public ListStore<Valeur> magazinLstpr; |
public ComboBox<Valeur> comboLstpr; |
public ListStore<Valeur> magazinLstpu; |
public ComboBox<Valeur> comboLstpu; |
public ComboBox<InterneValeur> comboAcronyme; |
public TextField<String> ihChp; |
public TextField<String> mnhnChp; |
public ComboBox<InterneValeur> comboTypeStructure; |
public TextField<String> nomStructureChp; |
public TextField<String> dateFondationChp; |
public TextArea descriptionChp; |
public TextArea conditionAccesChp; |
public TextArea conditionUsageChp; |
public TextArea adrChp; |
public TextField<String> cpChp; |
public TextField<String> villeChp; |
public ListStore<Valeur> magazinPays; |
public ChampComboBoxRechercheTempsReelPaginable comboPays; |
public TextField<String> latitudeChp; |
public TextField<String> longitudeChp; |
public TextField<String> telChp; |
public TextField<String> faxChp; |
public TextField<String> emailChp; |
public TextField<String> urlChp; |
public StructureAPersonneListe personnel; |
public StructureAPersonneListe personnelAjoute; |
public StructureAPersonneListe personnelModifie; |
public StructureAPersonneListe personnelSupprime; |
public NumberField nbreTotalPersonneStructureChp; |
public EditorGrid<StructureAPersonne> grillePersonnel; |
public ListStore<StructureAPersonne> personnelGrilleMagazin; |
public StructureConservation conservation; |
public RadioGroup formationMarkRGrpChp; |
public RadioGroup interetFormationMarkRGrpChp; |
public RadioGroup collectionCommuneMarkRGrpChp; |
public RadioGroup accesControleMarkRGrpChp; |
public RadioGroup restaurationMarkRGrpChp; |
public RadioGroup traitementMarkRGrpChp; |
public RadioGroup collectionAcquisitionMarkRGrpChp; |
public RadioGroup echantillonAcquisitionMarkRGrpChp; |
public TextField<String> localStockageAutreChp; |
public TextField<String> meubleStockageAutreChp; |
public TextField<String> parametreStockageAutreChp; |
public TextField<String> collectionAutreAutreChp; |
public TextField<String> autreCollectionAutreChp; |
public TextField<String> opRestauAutreChp; |
public TextField<String> autreMaterielAutreChp; |
public TextField<String> poisonTraitementAutreChp; |
public TextField<String> traitementAutreChp; |
public TextField<String> insecteTraitementAutreChp; |
public TextField<String> actionAutreChp; |
public TextField<String> provenanceRechercheAutreChp; |
public TextField<String> typeRechercheAutreChp; |
public CheckBoxGroup localStockageTrukCacGrpChp; |
public LayoutContainer localStockageTrukCp; |
public CheckBoxGroup meubleStockageTrukCacGrpChp; |
public LayoutContainer meubleStockageTrukCp; |
public CheckBoxGroup parametreStockageTrukCacGrpChp; |
public LayoutContainer parametreStockageTrukCp; |
public LayoutContainer collectionAutreTrukCp; |
public CheckBoxGroup collectionAutreTrukCacGrpChp; |
public CheckBoxGroup opRestauTrukCacGrpChp; |
public LayoutContainer opRestauTrukCp; |
public CheckBoxGroup autreMaterielTrukCacGrpChp; |
public LayoutContainer autreMaterielTrukCp; |
public LayoutContainer traitementTrukCp; |
public CheckBoxGroup traitementTrukCacGrpChp; |
public LayoutContainer poisonTraitementTrukCp; |
public LayoutContainer insecteTraitementTrukCp; |
public CheckBoxGroup insecteTraitementTrukCacGrpChp; |
public CheckBoxGroup poisonTraitementTrukCacGrpChp; |
public LayoutContainer autreCollectionTrukCp; |
public CheckBoxGroup autreCollectionTrukCacGrpChp; |
public LayoutContainer provenanceRechercheTrukCp; |
public CheckBoxGroup provenanceRechercheTrukCacGrpChp; |
public CheckBoxGroup typeRechercheTrukCacGrpChp; |
public LayoutContainer typeRechercheTrukCp; |
public TextField<String> futureActionChp; |
public TextField<String> sansMotifAccesChp; |
public TextField<String> avecMotifAccesChp; |
public TextField<String> formationChp; |
public RadioGroup traitementAcquisitionMarkRGrpChp; |
public LabelField traitementAcquisitionMarkLabel; |
public RadioGroup materielConservationCeRGrpChp; |
public StructureValorisation valorisation; |
public RadioGroup actionMarkRGrpChp; |
public LayoutContainer actionTrukCp; |
public CheckBoxGroup actionTrukCacGrpChp; |
public RadioGroup futureActionMarkRGrpChp; |
public RadioGroup rechercheMarkRGrpChp; |
public RadioGroup sansMotifAccesMarkRGrpChp; |
public RadioGroup avecMotifAccesMarkRGrpChp; |
public TextField<String> publicationChp; |
public LayoutContainer materielConservationCp; |
public ListStore<Personne> personneExistanteMagazin; |
public ChampComboBoxRechercheTempsReelPaginable personneExistanteCombo; |
public Button supprimerPersonnelBtn; |
public CellEditor fonctionEditor; |
public List<Valeur> fonctionsListe; |
public Sequenceur sequenceur; |
public Structure structure; |
public Rafraichissable vueExterneARafraichirApresValidation; |
|
private String ID = "identification"; |
|
Formulaire formulaireCourant; |
|
public StructureFormIdentification(Formulaire formulaireCourant) { |
|
initialiserOnglet(formulaireCourant); |
setLayout(new FitLayout()); |
setId(ID); |
setText(Mediateur.i18nC.structureInfoGeneral()); |
setStyleAttribute("padding", "0"); |
|
this.formulaireCourant = formulaireCourant; |
|
//+-----------------------------------------------------------------------------------------------------------+ |
//+-----------------------------------------------------------------------------------------------------------+ |
// Champs cachés |
idStructureChp = new HiddenField<String>(); |
|
//+-----------------------------------------------------------------------------------------------------------+ |
// Fieldset IDENTITÉ |
FieldSet fieldSetIdentite = new FieldSet(); |
fieldSetIdentite.setHeadingHtml("Identité"); |
fieldSetIdentite.setCollapsible(true); |
fieldSetIdentite.setLayout(Formulaire.creerFormLayout(120, LabelAlign.LEFT)); |
fieldSetIdentite.setAutoHeight(true); |
|
nomStructureChp = new TextField<String>(); |
nomStructureChp.setTabIndex(tabIndex++); |
nomStructureChp.setFieldLabel("Nom de la structure"); |
nomStructureChp.setAllowBlank(false); |
nomStructureChp.getMessages().setBlankText("Ce champ est obligatoire."); |
nomStructureChp.addStyleName(ComposantClass.OBLIGATOIRE); |
nomStructureChp.addListener(Events.Valid, Formulaire.creerEcouteurChampObligatoire()); |
fieldSetIdentite.add(nomStructureChp, new FormData(450, 0)); |
|
// Création du sous-formulaire : Acronyme |
LayoutContainer ligne = new LayoutContainer(); |
ligne.setLayout(new ColumnLayout()); |
ligne.setSize(600, -1); |
|
LayoutContainer gauche = new LayoutContainer(); |
gauche.setLayout(Formulaire.creerFormLayout(120, LabelAlign.LEFT)); |
LayoutContainer droite = new LayoutContainer(); |
droite.setLayout(Formulaire.creerFormLayout(10, LabelAlign.LEFT)); |
|
ListStore<InterneValeur> acronymes = new ListStore<InterneValeur>(); |
acronymes.add(InterneValeurListe.getTypeAcronyme()); |
|
comboAcronyme = new ComboBox<InterneValeur>(); |
comboAcronyme.setTabIndex(tabIndex++); |
comboAcronyme.setEmptyText("Sélectioner un type d'acronyme..."); |
comboAcronyme.setFieldLabel("Type d'acronyme"); |
comboAcronyme.setDisplayField("nom"); |
comboAcronyme.setStore(acronymes); |
comboAcronyme.setEditable(false); |
comboAcronyme.setTypeAhead(true); |
comboAcronyme.setTriggerAction(TriggerAction.ALL); |
comboAcronyme.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() { |
@Override |
public void selectionChanged(SelectionChangedEvent<InterneValeur> se) { |
String acronymeAbr = se.getSelectedItem().getAbr(); |
if (acronymeAbr.equals("IH")) { |
mnhnChp.hide(); |
ihChp.show(); |
} else if (acronymeAbr.equals("MNHN")) { |
ihChp.hide(); |
mnhnChp.show(); |
} else if (acronymeAbr.equals("")) { |
ihChp.hide(); |
mnhnChp.hide(); |
comboAcronyme.clearSelections(); |
} |
} |
}); |
gauche.add(comboAcronyme, new FormData("95%")); |
|
ihChp = new TextField<String>(); |
ihChp.setTabIndex(tabIndex++); |
ihChp.setLabelSeparator(""); |
ihChp.setToolTip("Index Herbariorum : herbier de plus de 5000 échantillons"); |
ihChp.hide(); |
droite.add(ihChp, new FormData("95%")); |
|
mnhnChp = new TextField<String>(); |
mnhnChp.setTabIndex(tabIndex++); |
mnhnChp.setLabelSeparator(""); |
mnhnChp.setToolTip("Acronyme MNHN : herbier de moins de 5000 échantillons"); |
mnhnChp.hide(); |
droite.add(mnhnChp, new FormData("95%")); |
|
ligne.add(gauche, new ColumnData(.5)); |
ligne.add(droite, new ColumnData(.5)); |
fieldSetIdentite.add(ligne); |
|
// Création du sous-formulaire : Type de Structure |
LayoutContainer ligneTs = new LayoutContainer(); |
ligneTs.setLayout(new ColumnLayout()); |
ligneTs.setSize(600, -1); |
|
LayoutContainer gaucheTs = new LayoutContainer(); |
gaucheTs.setLayout(Formulaire.creerFormLayout(120, LabelAlign.LEFT)); |
|
LayoutContainer droiteTs = new LayoutContainer(); |
droiteTs.setLayout(Formulaire.creerFormLayout(10, LabelAlign.LEFT)); |
|
ListStore<InterneValeur> typesStructure = new ListStore<InterneValeur>(); |
typesStructure.add(InterneValeurListe.getTypeStructure()); |
|
comboTypeStructure = new ComboBox<InterneValeur>(); |
comboTypeStructure.setTabIndex(tabIndex++); |
comboTypeStructure.setEmptyText("Sélectioner un type de structure..."); |
comboTypeStructure.setFieldLabel("Statut des structures"); |
comboTypeStructure.setDisplayField("nom"); |
comboTypeStructure.setStore(typesStructure); |
comboTypeStructure.setEditable(false); |
comboTypeStructure.setTypeAhead(true); |
comboTypeStructure.setTriggerAction(TriggerAction.ALL); |
comboTypeStructure.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() { |
@Override |
public void selectionChanged(SelectionChangedEvent<InterneValeur> se) { |
String typeAbr = se.getSelectedItem().getAbr(); |
if (typeAbr.equals("stpu")) { |
comboLstpr.hide(); |
comboLstpu.show(); |
} else if (typeAbr.equals("stpr")) { |
comboLstpu.hide(); |
comboLstpr.show(); |
} else if (typeAbr.equals("")) { |
comboLstpr.hide(); |
comboLstpu.hide(); |
comboTypeStructure.clearSelections(); |
} |
} |
}); |
gaucheTs.add(comboTypeStructure, new FormData("95%")); |
|
magazinLstpu = new ListStore<Valeur>(); |
comboLstpu = new ComboBox<Valeur>(); |
comboLstpu.setTabIndex(tabIndex++); |
//comboLstpu.setFieldLabel("Statut des structures publiques"); |
comboLstpu.setLabelSeparator(""); |
comboLstpu.setDisplayField("nom"); |
comboLstpu.setEditable(false); |
comboLstpu.setTriggerAction(TriggerAction.ALL); |
comboLstpu.setStore(magazinLstpu); |
comboLstpu.hide(); |
droiteTs.add(comboLstpu, new FormData("95%")); |
mediateur.obtenirListeValeurEtRafraichir(this, "stpu", sequenceur); |
|
magazinLstpr = new ListStore<Valeur>(); |
comboLstpr = new ComboBox<Valeur>(); |
comboLstpr.setTabIndex(tabIndex++); |
//comboLstpr.setFieldLabel("Statut des structures privées"); |
comboLstpr.setLabelSeparator(""); |
comboLstpr.setDisplayField("nom"); |
comboLstpr.setEditable(false); |
comboLstpr.setTriggerAction(TriggerAction.ALL); |
comboLstpr.setStore(magazinLstpr); |
comboLstpr.hide(); |
droiteTs.add(comboLstpr, new FormData("95%")); |
mediateur.obtenirListeValeurEtRafraichir(this, "stpr", sequenceur); |
|
ligneTs.add(gaucheTs, new ColumnData(0.5)); |
ligneTs.add(droiteTs, new ColumnData(0.5)); |
fieldSetIdentite.add(ligneTs); |
|
dateFondationChp = new TextField(); |
dateFondationChp.setTabIndex(tabIndex++); |
dateFondationChp.setFieldLabel("Date de fondation"); |
fieldSetIdentite.add(dateFondationChp); |
|
nbreTotalPersonneStructureChp = new NumberField(); |
nbreTotalPersonneStructureChp.setFieldLabel("Nombre de personnes travaillant dans l'institution"); |
nbreTotalPersonneStructureChp.setFormat(NumberFormat.getFormat("#")); |
nbreTotalPersonneStructureChp.setToolTip(i18nC.champNumerique()); |
nbreTotalPersonneStructureChp.setAllowDecimals(false); |
nbreTotalPersonneStructureChp.setAllowNegative(false); |
nbreTotalPersonneStructureChp.setEmptyText(""); |
fieldSetIdentite.add(nbreTotalPersonneStructureChp); |
|
this.add(fieldSetIdentite); |
|
//+-----------------------------------------------------------------------------------------------------------+ |
// Fieldset ADRESSE |
LayoutContainer principalFdAdresse = new LayoutContainer(); |
principalFdAdresse.setLayout(new ColumnLayout()); |
principalFdAdresse.setSize(1050, -1); |
|
LayoutContainer gaucheFdAdresse = new LayoutContainer(); |
gaucheFdAdresse.setLayout(Formulaire.creerFormLayout(null, LabelAlign.LEFT)); |
|
LayoutContainer droiteFdAdresse = new LayoutContainer(); |
droiteFdAdresse.setLayout(Formulaire.creerFormLayout(100, LabelAlign.LEFT)); |
droiteFdAdresse.setWidth(700); |
|
FieldSet fieldSetAdresse = new FieldSet(); |
fieldSetAdresse.setHeadingHtml("Adresse"); |
fieldSetAdresse.setCollapsible(true); |
|
fieldSetAdresse.setLayout(Formulaire.creerFormLayout(null, LabelAlign.LEFT)); |
|
adrChp = new TextArea(); |
adrChp.setTabIndex(tabIndex++); |
adrChp.setFieldLabel("Adresse (Nom du batiment, rue...)"); |
fieldSetAdresse.add(adrChp, new FormData(550, 0)); |
|
cpChp = new TextField<String>(); |
cpChp.setTabIndex(tabIndex++); |
cpChp.setFieldLabel("Code postal"); |
gaucheFdAdresse.add(cpChp, new FormData("95%")); |
|
villeChp = new TextField<String>(); |
villeChp.setTabIndex(tabIndex++); |
villeChp.setFieldLabel("Ville"); |
gaucheFdAdresse.add(villeChp, new FormData("95%")); |
|
ModelType modelTypesPays = new ModelType(); |
modelTypesPays.setRoot("valeurs"); |
modelTypesPays.setTotalName("nbElements"); |
modelTypesPays.addField("cmlv_nom"); |
modelTypesPays.addField("cmlv_id_valeur"); |
modelTypesPays.addField("cmlv_abreviation"); |
modelTypesPays.addField("cmlv_description"); |
|
String displayNamePays = "cmlv_nom"; |
String nomListeTypes = "pays"; |
ProxyValeur<ModelData> proxyPays = new ProxyValeur<ModelData>(nomListeTypes, null); |
|
comboPays = new ChampComboBoxRechercheTempsReelPaginable(proxyPays, modelTypesPays, displayNamePays); |
comboPays.setWidth(100,500); |
comboPays.getCombo().setTabIndex(tabIndex++); |
comboPays.getCombo().setFieldLabel("Pays"); |
comboPays.getCombo().setForceSelection(true); |
comboPays.getCombo().setTemplate(getTemplatePays()); |
|
droiteFdAdresse.add(comboPays, new FormData("95%")); |
|
latitudeChp = new TextField<String>(); |
latitudeChp.setRegex(Pattern.latitude); |
latitudeChp.setToolTip("Format : nombre décimal positif ou négatif de 0 à 90."); |
latitudeChp.getMessages().setRegexText("La valeur saisie n'est pas une latitude valide. Exemples de latitude : -45,302010 ou 45.252423 ou 25,16."); |
latitudeChp.setTabIndex(tabIndex++); |
latitudeChp.setFieldLabel("Latitude (Nord)"); |
gaucheFdAdresse.add(latitudeChp, new FormData("95%")); |
|
longitudeChp = new TextField<String>(); |
longitudeChp.setRegex(Pattern.longitude); |
longitudeChp.setToolTip("Format : nombre décimal positif ou négatif de 0 à 180."); |
longitudeChp.getMessages().setRegexText("La valeur saisie n'est pas une longitude valide. Exemples de longitude : -150,302010 ou 150.252423 ou 25,16."); |
longitudeChp.setTabIndex(tabIndex++); |
longitudeChp.setFieldLabel("Longitude (Est)"); |
droiteFdAdresse.add(longitudeChp, new FormData("95%")); |
|
principalFdAdresse.add(gaucheFdAdresse, new ColumnData(.5)); |
principalFdAdresse.add(droiteFdAdresse, new ColumnData(.5)); |
fieldSetAdresse.add(principalFdAdresse); |
|
this.add(fieldSetAdresse); |
|
//+-----------------------------------------------------------------------------------------------------------+ |
// Fieldset TÉLÉPHONE et EMAIL |
LayoutContainer principalFdTelMail = new LayoutContainer(); |
principalFdTelMail.setLayout(new ColumnLayout()); |
principalFdTelMail.setSize(700, -1); |
|
LayoutContainer gaucheFdTelMail = new LayoutContainer(); |
gaucheFdTelMail.setLayout(Formulaire.creerFormLayout(60, LabelAlign.LEFT)); |
|
LayoutContainer droiteFdTelMail = new LayoutContainer(); |
droiteFdTelMail.setLayout(Formulaire.creerFormLayout(60, LabelAlign.LEFT)); |
|
FieldSet fieldSetTelMail = new FieldSet(); |
fieldSetTelMail.setHeadingHtml("Communication"); |
fieldSetTelMail.setCollapsible(true); |
|
fieldSetTelMail.setLayout(Formulaire.creerFormLayout(null, LabelAlign.LEFT)); |
|
telChp = new TextField<String>(); |
telChp.setTabIndex(tabIndex++); |
telChp.setFieldLabel("Téléphone"); |
gaucheFdTelMail.add(telChp, new FormData("95%")); |
|
faxChp = new TextField<String>(); |
faxChp.setTabIndex(tabIndex++); |
faxChp.setFieldLabel("Fax"); |
droiteFdTelMail.add(faxChp, new FormData("95%")); |
|
emailChp = new TextField<String>(); |
emailChp.setTabIndex(tabIndex++); |
emailChp.setFieldLabel("Courriel"); |
emailChp.setToolTip("Saisir le courriel de l'organisation, pas de courriel individuel. Ex. : accueil@organisation.org"); |
gaucheFdTelMail.add(emailChp, new FormData("95%")); |
|
urlChp = new TextField<String>(); |
urlChp.setTabIndex(tabIndex++); |
urlChp.setFieldLabel("Site web"); |
droiteFdTelMail.add(urlChp, new FormData("95%")); |
|
principalFdTelMail.add(gaucheFdTelMail, new ColumnData(.5)); |
principalFdTelMail.add(droiteFdTelMail, new ColumnData(.5)); |
fieldSetTelMail.add(principalFdTelMail); |
|
this.add(fieldSetTelMail); |
|
//+-----------------------------------------------------------------------------------------------------------+ |
// Fieldset DESCRIPTION |
FieldSet fieldSetDescription = new FieldSet(); |
fieldSetDescription.setHeadingHtml("Description"); |
fieldSetDescription.setCollapsible(true); |
fieldSetDescription.setLayout(Formulaire.creerFormLayout(120, LabelAlign.LEFT)); |
|
descriptionChp = new TextArea(); |
descriptionChp.setTabIndex(tabIndex++); |
descriptionChp.setFieldLabel("Description"); |
fieldSetDescription.add(descriptionChp, new FormData(550, 0)); |
|
conditionAccesChp = new TextArea(); |
conditionAccesChp.setTabIndex(tabIndex++); |
conditionAccesChp.setFieldLabel("Conditions d'accès"); |
fieldSetDescription.add(conditionAccesChp, new FormData(550, 0)); |
|
conditionUsageChp = new TextArea(); |
conditionUsageChp.setTabIndex(tabIndex++); |
conditionUsageChp.setFieldLabel("Conditions d'usage"); |
fieldSetDescription.add(conditionUsageChp, new FormData(550, 0)); |
|
this.add(fieldSetDescription); |
} |
|
private native String getTemplatePays() /*-{ |
return [ |
'<tpl for=".">', |
'<div class="x-combo-list-item">{cmlv_nom} ({cmlv_abreviation})</div>', |
'</tpl>' |
].join(""); |
}-*/; |
|
public void peuplerIdSurRetourAjout() { |
initialiserIdentification(); |
idStructureChp.setValue(identification.getId()); |
nomStructureChp.setValue(identification.getNom()); |
} |
|
public void peupler() { |
if(identification == null) { |
initialiserIdentification(); |
} |
if (formulaireCourant.mode.equals(Formulaire.MODE_AJOUTER)) { |
// Indique que l'ongleta pu être modifié pour la méthode collecter... |
this.setData("acces", true); |
// Initialisation de l'objet Structure |
identification = new Structure(); |
} |
|
if (formulaireCourant.mode.equals(Formulaire.MODE_MODIFIER) && identification != null && getData("acces").equals(false)) { |
idStructureChp.setValue(identification.getId()); |
nomStructureChp.setValue(identification.getNom()); |
|
if (!identification.getIdAlternatif().isEmpty()) { |
String[] acronyme = identification.getIdAlternatif().split("##"); |
//#436 : Ne pas afficher "null" |
if (UtilString.isEmpty(acronyme[1]) || acronyme[1].equals("null")) { |
acronyme[1] = ""; |
} |
|
if (acronyme[0].matches("^IH$")) { |
comboAcronyme.setValue(InterneValeurListe.getTypeAcronymeIH()); |
ihChp.setValue(acronyme[1]); |
} else if (acronyme[0].matches("^MNHN$")) { |
comboAcronyme.setValue(InterneValeurListe.getTypeAcronymeMNHN()); |
mnhnChp.setValue(acronyme[1]); |
} |
} |
if (!identification.getTypePrive().isEmpty()) { |
if (identification.getTypePrive().matches("^[0-9]+$")) { |
comboTypeStructure.setValue(InterneValeurListe.getTypePrivee()); |
comboLstpr.setValue(comboLstpr.getStore().findModel("id_valeur", identification.getTypePrive())); |
} |
} else if (!identification.getTypePublic().isEmpty()) { |
if (identification.getTypePublic().matches("^[0-9]+$")) { |
comboTypeStructure.setValue(InterneValeurListe.getTypePublique()); |
comboLstpu.setValue(comboLstpu.getStore().findModel("id_valeur", identification.getTypePublic())); |
} |
} |
|
String dateFondation = identification.getAnneeOuDateFondation(); |
dateFondationChp.setValue(dateFondation); |
|
descriptionChp.setValue(identification.getDescription()); |
conditionAccesChp.setValue(identification.getConditionAcces()); |
conditionUsageChp.setValue(identification.getConditionUsage()); |
|
adrChp.setValue(identification.getAdresse()); |
cpChp.setValue(identification.getCodePostal()); |
villeChp.setValue(identification.getVille()); |
|
if (identification.getPays().matches("^[0-9]+$")) { |
comboPays.chargerValeurInitiale(identification.getPays(), "cmlv_id_valeur"); |
} else { |
comboPays.getCombo().setRawValue(identification.getPays()); |
} |
latitudeChp.setValue(identification.getLatitude()); |
longitudeChp.setValue(identification.getLongitude()); |
|
telChp.setValue(identification.getTelephoneFixe()); |
faxChp.setValue(identification.getFax()); |
|
emailChp.setValue(identification.getCourriel()); |
urlChp.setValue(identification.getUrl("WEB")); |
|
nbreTotalPersonneStructureChp.setValue(identification.getNbrePersonne()); |
|
// Indique que l'onglet a été rempli et a pu être modifié pour la méthode collecter... |
this.setData("acces", true); |
} |
} |
|
private void initialiserIdentification() { |
identification = ((StructureForm)formulaireCourant).identification; |
} |
|
public Structure collecter() { |
peupler(); |
Structure structureARetourner = null; |
if (this.getData("acces").equals(true)) { |
|
if(identification == null) { |
initialiserIdentification(); |
} |
|
Structure structureCollectee = (Structure) identification.cloner(new Structure()); |
|
structureCollectee.setId(idStructureChp.getValue()); |
structureCollectee.setNom(nomStructureChp.getValue()); |
// Récupération de l'acronyme (= identifiant alternatif) |
structureCollectee.setIdAlternatif(null); |
if (comboAcronyme.getValue() != null) { |
String typeAcronyme = comboAcronyme.getValue().getAbr(); |
if (typeAcronyme == "IH") { |
structureCollectee.setIdAlternatif(typeAcronyme+"##"+ihChp.getValue()); |
} else if (typeAcronyme == "MNHN") { |
structureCollectee.setIdAlternatif(typeAcronyme+"##"+mnhnChp.getValue()); |
} |
} |
// Récupération statut de la structure |
structureCollectee.setTypePublic(null); |
structureCollectee.setTypePrive(null); |
if (comboTypeStructure.getValue() != null) { |
String typeStructure = comboTypeStructure.getValue().getAbr(); |
if (typeStructure == "stpu" && comboLstpu.getValue() != null) { |
structureCollectee.setTypePublic(comboLstpu.getValue().getId()); |
} else if (typeStructure == "stpr" && comboLstpr.getValue() != null) { |
structureCollectee.setTypePrive(comboLstpr.getValue().getId()); |
} |
} |
|
String valeurDateFondation = dateFondationChp.getValue(); |
if (!UtilString.isEmpty(valeurDateFondation)) { |
if (valeurDateFondation.matches("\\d{2}/\\d{2}/\\d{4}")) { |
Date dateFondation = DateTimeFormat.getFormat("dd/MM/yyyy").parse(valeurDateFondation); |
structureCollectee.setDateFondation(dateFondation); |
} else if (valeurDateFondation.matches("\\d{4}")) { |
structureCollectee.setDateFondation(valeurDateFondation + "-00-00"); |
} |
} |
|
structureCollectee.setDescription(descriptionChp.getValue()); |
structureCollectee.setConditionAcces(conditionAccesChp.getValue()); |
structureCollectee.setConditionUsage(conditionUsageChp.getValue()); |
|
structureCollectee.setAdresse(adrChp.getValue()); |
structureCollectee.setCodePostal(cpChp.getValue()); |
structureCollectee.setVille(villeChp.getValue()); |
|
structureCollectee.setPays(null); |
if (comboPays.getCombo().getValue() != null) { |
structureCollectee.setPays(new Valeur(comboPays.getValeur()).getId()); |
} else if (comboPays.getCombo().getRawValue() != "") { |
structureCollectee.setPays(comboPays.getCombo().getRawValue()); |
} |
structureCollectee.setLatitude(latitudeChp.getValue()); |
structureCollectee.setLongitude(longitudeChp.getValue()); |
|
structureCollectee.setTelephoneFixe(telChp.getValue()); |
structureCollectee.setFax(faxChp.getValue()); |
|
structureCollectee.setCourriel(emailChp.getValue()); |
structureCollectee.setUrl(Structure.URL_SITE, urlChp.getValue()); |
|
structureCollectee.setNbrePersonne(nbreTotalPersonneStructureChp.getValue()); |
|
structureARetourner = identification = structureCollectee; |
} else { |
|
} |
return structureARetourner; |
} |
|
@Override |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof ValeurListe) { |
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees; |
rafraichirValeurListe(listeValeurs); |
} else if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
rafraichirInformation(info); |
} else { |
Debug.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass())); |
} |
} |
|
public void rafraichirInformation(Information info) { |
if (info.getType().equals("ajout_structure")) { |
if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) { |
String structureId = (String) info.getDonnee(0); |
identification.setId(structureId); |
this.setData("acces", false); |
peupler(); |
} else { |
InfoLogger.display("Ajout d'une Institution", info.toString()); |
} |
} else if (info.getType().equals("selection_structure")) { |
InfoLogger.display("Modification d'une institution", info.toString()); |
String titre = i18nC.titreModifFormStructurePanneau(); |
if (info.getDonnee(0) != null) { |
try { |
identification = (Structure) info.getDonnee(0); |
setAcces(false); |
peupler(); |
} catch(Exception e) { |
GWT.log("Problème de cast. "+info.getDonnee(0)+" ne peut être casté en Structure", e); |
} |
// Composition du titre |
titre += " - ID : "+identification.getId(); |
} |
} |
} |
|
private void rafraichirValeurListe(ValeurListe listeValeurs) { |
List<Valeur> liste = listeValeurs.toList(); |
|
// Test pour savoir si la liste contient des éléments |
if (liste.size() > 0) { |
if (listeValeurs.getId().equals(config.getListeId("stpr"))) { |
magazinLstpr.removeAll(); |
magazinLstpr.add(liste); |
comboLstpr.setStore(magazinLstpr); |
} |
if (listeValeurs.getId().equals(config.getListeId("stpu"))) { |
magazinLstpu.removeAll(); |
magazinLstpu.add(liste); |
comboLstpu.setStore(magazinLstpu); |
} |
} |
} |
|
public Collection<? extends String> verifier() { |
ArrayList<String> messages = new ArrayList<String>(); |
// Vérification des infos sur le nom de la structure |
if ( (this.getData("acces").equals(true) && nomStructureChp.getValue() == null) || |
(this.getData("acces").equals(true) && nomStructureChp.getValue().equals("")) || |
(this.getData("acces").equals(false) && identification.getNom().equals(""))) { |
messages.add("Veuillez indiquez un nom à l'institution."); |
} |
|
//Vérification de la date de fondation |
String valeurDateFondation = dateFondationChp.getValue(); |
if (!UtilString.isEmpty(valeurDateFondation) && (!valeurDateFondation.matches("\\d{2}/\\d{2}/\\d{4}") && |
!valeurDateFondation.matches("\\d{4}"))) { |
messages.add("La date de fondation n'est pas au format jj/MM/AAAA ou AAAA"); |
} |
|
return messages; |
} |
} |