New file |
0,0 → 1,472 |
package org.tela_botanica.client.vues.collection; |
|
import java.util.ArrayList; |
|
import org.tela_botanica.client.ComposantClass; |
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.ChampComboBoxRechercheTempsReelPaginable; |
import org.tela_botanica.client.composants.ChampMultiValeurs; |
import org.tela_botanica.client.composants.ChampMultiValeursMultiTypesPaginable; |
import org.tela_botanica.client.composants.ConteneurMultiChamps; |
import org.tela_botanica.client.composants.pagination.ProxyCollections; |
import org.tela_botanica.client.composants.pagination.ProxyProjets; |
import org.tela_botanica.client.composants.pagination.ProxyStructures; |
import org.tela_botanica.client.composants.pagination.ProxyValeur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.collection.Collection; |
import org.tela_botanica.client.modeles.collection.CollectionListe; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.modeles.structure.Structure; |
import org.tela_botanica.client.modeles.structure.StructureListe; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.vues.Formulaire; |
import org.tela_botanica.client.vues.FormulaireOnglet; |
|
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.Events; |
import com.extjs.gxt.ui.client.event.Listener; |
import com.extjs.gxt.ui.client.store.ListStore; |
import com.extjs.gxt.ui.client.util.Margins; |
import com.extjs.gxt.ui.client.widget.Text; |
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.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.Validator; |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; |
import com.extjs.gxt.ui.client.widget.layout.FormData; |
import com.extjs.gxt.ui.client.widget.layout.HBoxLayoutData; |
import com.google.gwt.i18n.client.NumberFormat; |
|
public class CollectionFormGeneral extends FormulaireOnglet implements Rafraichissable { |
|
public static final String ID = "general"; |
private Collection collection = null; |
private Collection collectionCollectee = null; |
|
private HiddenField<String> idCollectionChp = null; |
|
private ChampComboBoxRechercheTempsReelPaginable projetsCombo = null; |
private ChampComboBoxRechercheTempsReelPaginable structuresCombo = null; |
private ChampComboBoxRechercheTempsReelPaginable collectionsCombo = null; |
|
private ChampCaseACocher periodeConstitutionChp = null; |
private ChampComboBoxListeValeurs groupementPrincipeCombo = null; |
private ChampMultiValeurs lieuCouvertureChp = null; |
|
private ChampComboBoxListeValeurs specimenTypeCombo = null; |
private ChampComboBoxListeValeurs precisionTypeNbreCombo = null; |
private NumberField nbreTypeChp = null; |
private ChampComboBoxListeValeurs classementSpecimenTypeCombo = null; |
|
private ChampComboBoxListeValeurs typeDepotCombo = null; |
private TextField<String> coteChp = null; |
private ChampMultiValeurs idAlternatifsChp = null; |
private ChampMultiValeurs nomsAlternatifsChp = null; |
private ChampMultiValeurs codesAlternatifsChp = null; |
|
private TextArea descriptionSpecialisteChp = null; |
private TextArea descriptionChp = null; |
private TextArea historiqueChp = null; |
private ChampMultiValeurs urlsChp = null; |
|
private ChampComboBoxListeValeurs butRealisationCombo = null; |
|
private Sequenceur sequenceur = new Sequenceur(); |
|
public CollectionFormGeneral(Formulaire formulaireCourrant) { |
initialiserOnglet(formulaireCourrant); |
setId(ID); |
setText(Mediateur.i18nC.collectionGeneral()); |
|
creerChampsCache(); |
creerFieldsetLiaison(); |
creerFieldsetAdministratif(); |
creerFieldsetDescription(); |
creerFieldsetCouverture(); |
creerFieldsetType(); |
} |
|
private void initialiserCollection() { |
collection = ((CollectionForm) formulaire).collection; |
collectionCollectee = ((CollectionForm) formulaire).collectionCollectee; |
} |
|
private void creerChampsCache() { |
// Champs cachés |
idCollectionChp = new HiddenField<String>(); |
this.add(idCollectionChp); |
} |
|
private void creerFieldsetLiaison() { |
FieldSet liaisonFieldSet = new FieldSet(); |
liaisonFieldSet.setHeading(i18nC.liaisonTitreCollection()); |
liaisonFieldSet.setCollapsible(true); |
liaisonFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut)); |
|
|
/*********************************/ |
/** Champ Projets **/ |
/*********************************/ |
|
ModelType modelTypeProjets = new ModelType(); |
modelTypeProjets.setRoot("projets"); |
modelTypeProjets.setTotalName("nbElements"); |
modelTypeProjets.addField("cpr_nom"); |
modelTypeProjets.addField("cpr_id_projet"); |
|
String displayNameProjets = "cpr_nom"; |
ProxyProjets<ModelData> proxyProjets = new ProxyProjets<ModelData>(sequenceur); |
|
projetsCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyProjets, modelTypeProjets, displayNameProjets); |
projetsCombo.setWidth(250, 600); |
projetsCombo.getCombo().setTabIndex(tabIndex++); |
projetsCombo.getCombo().setFieldLabel(i18nC.projetChamp()); |
projetsCombo.getCombo().setForceSelection(true); |
projetsCombo.getCombo().addStyleName(ComposantClass.OBLIGATOIRE); |
projetsCombo.getCombo().addListener(Events.Valid, Formulaire.creerEcouteurChampObligatoire()); |
|
projetsCombo.getCombo().setValidator(new Validator() { |
public String validate(Field<?> field, String value) { |
String retour = null; |
if (field.getRawValue().equals("")) { |
field.setValue(null); |
} else if (projetsCombo.getStore().findModel("cpr_nom", field.getRawValue()) == null) { |
String contenuBrut = field.getRawValue(); |
field.setValue(null); |
field.setRawValue(contenuBrut); |
retour = "Veuillez sélectionner une valeur ou laisser le champ vide"; |
} |
return retour; |
} |
}); |
|
liaisonFieldSet.add(projetsCombo, new FormData(600, 0)); |
|
|
/*************************************/ |
/** Champ Structures **/ |
/*************************************/ |
|
ModelType modelTypeStructures = new ModelType(); |
modelTypeStructures.setRoot("structures"); |
modelTypeStructures.setTotalName("nbElements"); |
modelTypeStructures.addField("cs_nom"); |
modelTypeStructures.addField("cs_id_structure"); |
|
String displayNameStructures = "cs_nom"; |
ProxyStructures<ModelData> proxyStructures = new ProxyStructures<ModelData>(sequenceur); |
|
structuresCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyStructures, modelTypeStructures, displayNameStructures); |
structuresCombo.setWidth(250, 600); |
structuresCombo.getCombo().setTabIndex(tabIndex++); |
structuresCombo.getCombo().setFieldLabel(i18nC.lienStructureCollection()); |
structuresCombo.getCombo().setForceSelection(true); |
|
structuresCombo.getCombo().setValidator(new Validator() { |
public String validate(Field<?> field, String value) { |
String retour = null; |
if (field.getRawValue().equals("")) { |
field.setValue(null); |
} else if (structuresCombo.getStore().findModel("cs_nom", field.getRawValue()) == null) { |
String contenuBrut = field.getRawValue(); |
field.setValue(null); |
field.setRawValue(contenuBrut); |
retour = "Veuillez sélectionner une valeur ou laisser le champ vide"; |
} |
return retour; |
} |
}); |
|
liaisonFieldSet.add(structuresCombo, new FormData(600, 0)); |
|
|
/*************************************/ |
/** Champ Collections **/ |
/*************************************/ |
|
ModelType modelTypeCollections = new ModelType(); |
modelTypeCollections.setRoot("collections"); |
modelTypeCollections.setTotalName("nbElements"); |
modelTypeCollections.addField("cc_nom"); |
modelTypeCollections.addField("cc_id_collection"); |
modelTypeCollections.addField("cc_ce_mere"); |
|
String displayNameCollections = "cc_nom"; |
ProxyCollections<ModelData> proxyCollections = new ProxyCollections<ModelData>(sequenceur); |
|
collectionsCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyCollections, modelTypeCollections, displayNameCollections); |
collectionsCombo.setWidth(250, 600); |
collectionsCombo.getCombo().setTabIndex(tabIndex++); |
collectionsCombo.getCombo().setFieldLabel(i18nC.lienMereCollection()); |
collectionsCombo.getCombo().setForceSelection(true); |
|
collectionsCombo.getCombo().setValidator(new Validator() { |
public String validate(Field<?> field, String value) { |
String retour = null; |
if (field.getRawValue().equals("")) { |
field.setValue(null); |
} else if (collectionsCombo.getStore().findModel("cc_nom", field.getRawValue()) == null) { |
String contenuBrut = field.getRawValue(); |
field.setValue(null); |
field.setRawValue(contenuBrut); |
retour = "Veuillez sélectionner une valeur ou laisser le champ vide"; |
} |
return retour; |
} |
}); |
|
liaisonFieldSet.add(collectionsCombo, new FormData(600, 0)); |
|
this.add(liaisonFieldSet); |
} |
|
private void creerFieldsetAdministratif() { |
// Fieldset ADMINISTRATIF |
FieldSet administratifFieldSet = new FieldSet(); |
administratifFieldSet.setHeading(i18nC.collectionGeneralTitre()); |
administratifFieldSet.setCollapsible(true); |
administratifFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut)); |
|
typeDepotCombo = new ChampComboBoxListeValeurs(i18nC.typeDepot(), "typeDepot", tabIndex++); |
administratifFieldSet.add(typeDepotCombo); |
|
coteChp = new TextField<String>(); |
coteChp.setTabIndex(tabIndex++); |
coteChp.setFieldLabel(i18nC.cote()); |
administratifFieldSet.add(coteChp, new FormData(450, 0)); |
|
idAlternatifsChp = new ChampMultiValeurs(i18nC.idAlternatifCollection()); |
administratifFieldSet.add(idAlternatifsChp); |
|
nomsAlternatifsChp = new ChampMultiValeurs(i18nC.intituleAlternatifCollection()); |
administratifFieldSet.add(nomsAlternatifsChp); |
|
codesAlternatifsChp = new ChampMultiValeurs(i18nC.codeAlternatifCollection()); |
administratifFieldSet.add(codesAlternatifsChp); |
|
this.add(administratifFieldSet); |
} |
|
private void creerFieldsetDescription() { |
// Fieldset DESCRIPTION |
FieldSet descriptionFieldSet = new FieldSet(); |
descriptionFieldSet.setHeading(i18nC.collectionDescriptionTitre()); |
descriptionFieldSet.setCollapsible(true); |
descriptionFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut)); |
|
descriptionChp = new TextArea(); |
descriptionChp.setFieldLabel(i18nC.description()); |
descriptionFieldSet.add(descriptionChp, new FormData(550, 0)); |
|
descriptionSpecialisteChp = new TextArea(); |
descriptionSpecialisteChp.setFieldLabel(i18nC.descriptionSpecialiste()); |
descriptionFieldSet.add(descriptionSpecialisteChp, new FormData(550, 0)); |
|
historiqueChp = new TextArea(); |
historiqueChp.setFieldLabel(i18nC.historique()); |
descriptionFieldSet.add(historiqueChp, new FormData(550, 0)); |
|
urlsChp = new ChampMultiValeurs(i18nC.urlsCollection()); |
descriptionFieldSet.add(urlsChp); |
|
this.add(descriptionFieldSet); |
} |
|
private void creerFieldsetCouverture() { |
FieldSet couvertureFieldSet = new FieldSet(); |
couvertureFieldSet.setHeading("Couvertures"); |
couvertureFieldSet.setCollapsible(true); |
couvertureFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut)); |
|
periodeConstitutionChp = new ChampCaseACocher(i18nC.periodeConstitution(), "siecleNaturaliste", false); |
couvertureFieldSet.add(periodeConstitutionChp); |
|
groupementPrincipeCombo = new ChampComboBoxListeValeurs(i18nC.groupementPrincipeCollection(), "groupementPrincipe", tabIndex++); |
groupementPrincipeCombo.setToolTip(i18nC.groupementPrincipeCollectionInfo()); |
couvertureFieldSet.add(groupementPrincipeCombo); |
|
butRealisationCombo = new ChampComboBoxListeValeurs(i18nC.butCollection(), "realisationBut", tabIndex++); |
couvertureFieldSet.add(butRealisationCombo); |
|
lieuCouvertureChp = new ChampMultiValeurs(i18nC.lieuCouvertureCollection()); |
couvertureFieldSet.add(lieuCouvertureChp); |
|
this.add(couvertureFieldSet); |
} |
|
private void creerFieldsetType() { |
FieldSet typeFieldSet = new FieldSet(); |
typeFieldSet.setHeading("Spécimens «types»"); |
typeFieldSet.setCollapsible(true); |
typeFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut)); |
|
specimenTypeCombo = new ChampComboBoxListeValeurs(i18nC.specimenTypeCollection(), "onpi", tabIndex++); |
typeFieldSet.add(specimenTypeCombo); |
|
ConteneurMultiChamps nbreTypeConteneur = new ConteneurMultiChamps(i18nC.nbreSpecimenTypeCollection()); |
|
nbreTypeChp = new NumberField(); |
nbreTypeChp.setFormat(NumberFormat.getFormat("#")); |
nbreTypeConteneur.ajouterChamp(nbreTypeChp, new HBoxLayoutData(new Margins(0, 20, 0, 0))); |
|
precisionTypeNbreCombo = new ChampComboBoxListeValeurs(null, "ea"); |
precisionTypeNbreCombo.setTrie("id_valeur"); |
precisionTypeNbreCombo.setEmptyText(i18nC.precisionNbreSpecimenTypeCollectionChpVide()); |
nbreTypeConteneur.ajouterChamp(precisionTypeNbreCombo); |
|
typeFieldSet.add(nbreTypeConteneur); |
|
classementSpecimenTypeCombo = new ChampComboBoxListeValeurs(i18nC.classementSpecimenTypeCollection(), "typeClassement", tabIndex++); |
typeFieldSet.add(classementSpecimenTypeCombo); |
|
Text infoType = new Text(i18nC.specimenTypeCollectionInfo()); |
typeFieldSet.add(infoType); |
|
this.add(typeFieldSet); |
} |
|
public void peupler() { |
initialiserCollection(); |
if (collection != null) { |
idCollectionChp.setValue(collection.getId()); |
setValeurComboProjets(); |
setValeurComboStructures(); |
setValeurComboCollections(); |
|
typeDepotCombo.peupler(collection.getTypeDepot()); |
coteChp.setValue(collection.getCote()); |
idAlternatifsChp.peupler(collection.getIdAlternatif()); |
nomsAlternatifsChp.peupler(collection.getNomAlternatif()); |
codesAlternatifsChp.peupler(collection.getCode()); |
|
descriptionChp.setValue(collection.getDescription()); |
descriptionSpecialisteChp.setValue(collection.getDescriptionSpecialiste()); |
historiqueChp.setValue(collection.getHistorique()); |
urlsChp.peupler(collection.getUrls()); |
|
periodeConstitutionChp.peupler(collection.getPeriodeConstitution()); |
groupementPrincipeCombo.peupler(collection.getGroupementPrincipe()); |
butRealisationCombo.peupler(collection.getGroupementBut()); |
lieuCouvertureChp.peupler(collection.getCouvertureLieu()); |
|
specimenTypeCombo.peupler(collection.getSpecimenType()); |
nbreTypeChp.setValue((collection.getSpecimenTypeNbre().equals("") ? 0 : Integer.parseInt(collection.getSpecimenTypeNbre()))); |
precisionTypeNbreCombo.peupler(collection.getSpecimenTypeNbrePrecision()); |
classementSpecimenTypeCombo.peupler(collection.getSpecimenTypeClassement()); |
} |
} |
|
public ArrayList<String> verifier() { |
ArrayList<String> messages = new ArrayList<String>(); |
if (projetsCombo.getCombo().getValue() == null || !projetsCombo.getCombo().isValid()) { |
messages.add(i18nM.selectionObligatoire(i18nC.articleUn()+" "+i18nC.projetSingulier(), i18nC.articleLa()+" "+i18nC.collectionSingulier())); |
} |
return messages; |
} |
|
public void collecter() { |
initialiserCollection(); |
if (etreAccede()) { |
collectionCollectee.setId(idCollectionChp.getValue()); |
collectionCollectee.setIdProjet(getValeurComboProjets()); |
collectionCollectee.setIdStructure(getValeurComboStructures()); |
collectionCollectee.setCollectionMereId(getValeurComboCollections()); |
|
collectionCollectee.setTypeDepot(typeDepotCombo.getValeur()); |
collectionCollectee.setCote(coteChp.getValue()); |
collectionCollectee.setIdAlternatif(idAlternatifsChp.getValeurs()); |
collectionCollectee.setNomAlternatif(nomsAlternatifsChp.getValeurs()); |
collectionCollectee.setCode(codesAlternatifsChp.getValeurs()); |
|
collectionCollectee.setDescription(descriptionChp.getValue()); |
collectionCollectee.setDescriptionSpecialiste(descriptionSpecialisteChp.getValue()); |
collectionCollectee.setHistorique(historiqueChp.getValue()); |
collectionCollectee.setUrls(urlsChp.getValeurs()); |
|
collectionCollectee.setPeriodeConstitution(periodeConstitutionChp.getValeur()); |
collectionCollectee.setGroupementPrincipe(groupementPrincipeCombo.getValeur()); |
collectionCollectee.setGroupementBut(butRealisationCombo.getValeur()); |
collectionCollectee.setCouvertureLieu(lieuCouvertureChp.getValeurs()); |
|
collectionCollectee.setSpecimenType(specimenTypeCombo.getValeur()); |
if (nbreTypeChp.getValue() != null) { |
collectionCollectee.setSpecimenTypeNbre(nbreTypeChp.getValue().toString()); |
} |
collectionCollectee.setSpecimenTypeNbrePrecision(precisionTypeNbreCombo.getValeur()); |
collectionCollectee.setSpecimenTypeClassement(classementSpecimenTypeCombo.getValeur()); |
} |
} |
|
private String getValeurComboProjets() { |
String valeur = ""; |
if (projetsCombo.getCombo().getValue() != null) { |
Projet projet = new Projet(projetsCombo.getValeur()); |
valeur = projet.getId(); |
} |
return valeur; |
} |
private void setValeurComboProjets() { |
if (projetsCombo.getStore() != null && collection != null) { |
projetsCombo.getCombo().setValue(projetsCombo.getStore().findModel("cpr_id_projet", collection.getIdProjet())); |
} |
} |
|
private String getValeurComboStructures() { |
String valeur = ""; |
if (structuresCombo.getCombo().getValue() != null) { |
Structure structure = new Structure(structuresCombo.getValeur()); |
valeur = structure.getId(); |
} |
return valeur; |
} |
private void setValeurComboStructures() { |
if (structuresCombo.getStore() != null && collection != null) { |
structuresCombo.getCombo().setValue(structuresCombo.getStore().findModel("cs_id_structure", collection.getIdStructure())); |
} |
} |
|
private String getValeurComboCollections() { |
String valeur = ""; |
if (collectionsCombo.getCombo().getValue() != null) { |
Collection collection = new Collection(collectionsCombo.getValeur()); |
valeur = collection.getId(); |
} |
return valeur; |
} |
private void setValeurComboCollections() { |
if (collectionsCombo.getCombo().getStore() != null && collection != null) { |
collectionsCombo.getCombo().setValue(collectionsCombo.getStore().findModel("cc_ce_mere", collection.getCollectionMereId())); |
} |
} |
|
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("typeDepot"))) { |
Formulaire.rafraichirComboBox(listeValeurs, typeDepotCombo); |
} else { |
Debug.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!"); |
} |
} |
|
|
|
} |
Property changes: |
Added: svn:mergeinfo |
Merged /branches/v1.0-syrah/src/org/tela_botanica/client/vues/collection/CollectionFormGeneral.java:r1136-1368 |