New file |
0,0 → 1,425 |
package org.tela_botanica.client.vues.collection; |
|
import java.util.ArrayList; |
|
import org.tela_botanica.client.Coel; |
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.ChampNombre; |
import org.tela_botanica.client.composants.ConteneurMultiChamps; |
import org.tela_botanica.client.composants.pagination.ProxyCollections; |
import org.tela_botanica.client.composants.pagination.ProxyStructures; |
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.structure.Structure; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
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.data.ModelData; |
import com.extjs.gxt.ui.client.data.ModelType; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.util.Margins; |
import com.extjs.gxt.ui.client.widget.Label; |
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.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.layout.FormData; |
import com.extjs.gxt.ui.client.widget.layout.HBoxLayoutData; |
import com.google.gwt.i18n.client.NumberFormat; |
import com.google.gwt.user.client.ui.HorizontalPanel; |
|
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 structuresCombo = null; |
private ChampComboBoxRechercheTempsReelPaginable collectionsCombo = null; |
|
private ChampNombre periodeConstitutionDebutChp = null; |
private ChampNombre periodeConstitutionFinChp = 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 nomsAlternatifsChp = null; |
private ChampMultiValeurs codesAlternatifsChp = null; |
|
private TextArea descriptionChp = null; |
private TextArea historiqueChp = null; |
private ChampMultiValeurs urlsChp = 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.setHeadingHtml(i18nC.liaisonTitreCollection()); |
liaisonFieldSet.setCollapsible(true); |
liaisonFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut)); |
|
|
//+-----------------------------------------------------------------------------------------------------------+ |
// 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>(null); |
|
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>(null); |
|
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.setHeadingHtml(i18nC.collectionGeneralTitre()); |
administratifFieldSet.setCollapsible(true); |
administratifFieldSet.collapse(); |
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)); |
|
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.setHeadingHtml(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)); |
|
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.setHeadingHtml("Couvertures"); |
couvertureFieldSet.setCollapsible(true); |
couvertureFieldSet.collapse(); |
couvertureFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut)); |
|
|
// à modifier |
//periodeConstitutionChp = new ChampCaseACocher(i18nC.periodeConstitution(), "siecleNaturaliste", false); |
//couvertureFieldSet.add(periodeConstitutionChp); |
Label labelperiodeDebut = new Label(i18nC.periodeConstitutionDetailForm()); |
labelperiodeDebut.setStyleName("labelChampNombreFormat"); |
|
periodeConstitutionDebutChp = new ChampNombre(); |
periodeConstitutionDebutChp.setStyleName("champNombreFormat"); |
periodeConstitutionDebutChp.setWidth(55); |
periodeConstitutionDebutChp.setEmptyText(i18nC.publicationDateParution()); |
|
periodeConstitutionFinChp = new ChampNombre(); |
periodeConstitutionFinChp.setStyleName("champNombreFormat"); |
periodeConstitutionFinChp.setWidth(55); |
periodeConstitutionFinChp.setEmptyText(i18nC.publicationDateParution()); |
|
|
HorizontalPanel conteneurPeriode = new HorizontalPanel(); |
conteneurPeriode.setBorderWidth(0); |
|
conteneurPeriode.add(labelperiodeDebut); |
conteneurPeriode.add(periodeConstitutionDebutChp); |
conteneurPeriode.add(periodeConstitutionFinChp); |
|
couvertureFieldSet.add(conteneurPeriode); |
|
lieuCouvertureChp = new ChampMultiValeurs(i18nC.lieuCouvertureCollection()); |
couvertureFieldSet.add(lieuCouvertureChp); |
|
this.add(couvertureFieldSet); |
} |
|
|
|
private void creerFieldsetType() { |
FieldSet typeFieldSet = new FieldSet(); |
typeFieldSet.setHeadingHtml("Spécimens «types»"); |
typeFieldSet.setCollapsible(true); |
typeFieldSet.collapse(); |
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()); |
setValeurComboStructures(); |
setValeurComboCollections(); |
|
typeDepotCombo.peupler(collection.getTypeDepot()); |
coteChp.setValue(collection.getCote()); |
nomsAlternatifsChp.peupler(collection.getNomAlternatif()); |
codesAlternatifsChp.peupler(collection.getCode()); |
|
descriptionChp.setValue(collection.getDescription()); |
historiqueChp.setValue(collection.getHistorique()); |
urlsChp.peupler(collection.getUrls()); |
|
if(!collection.getPeriodeConstitutionDebut().equals("")) { |
periodeConstitutionDebutChp.setValue((Integer.parseInt(collection.getPeriodeConstitutionDebut()))); |
} |
if(!collection.getPeriodeConstitutionFin().equals("")) { |
periodeConstitutionFinChp.setValue((Integer.parseInt(collection.getPeriodeConstitutionFin()))); |
} |
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>(); |
return messages; |
} |
|
public void collecter() { |
initialiserCollection(); |
// l'onglet collection est obligatoirement rempli lors d'un ajout |
if (this.mode == Formulaire.MODE_AJOUTER || etreAccede()) { |
collectionCollectee.setId(idCollectionChp.getValue()); |
collectionCollectee.setIdStructure(getValeurComboStructures()); |
collectionCollectee.setCollectionMereId(getValeurComboCollections()); |
|
collectionCollectee.setTypeDepot(typeDepotCombo.getValeur()); |
collectionCollectee.setCote(coteChp.getValue()); |
collectionCollectee.setNomAlternatif(nomsAlternatifsChp.getValeurs()); |
collectionCollectee.setCode(codesAlternatifsChp.getValeurs()); |
|
collectionCollectee.setDescription(descriptionChp.getValue()); |
collectionCollectee.setHistorique(historiqueChp.getValue()); |
collectionCollectee.setUrls(urlsChp.getValeurs()); |
|
collectionCollectee.setPeriodeConstitutionDebut("" + periodeConstitutionDebutChp.getValue()); |
collectionCollectee.setPeriodeConstitutionFin("" + periodeConstitutionFinChp.getValue()); |
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 getValeurComboStructures() { |
String valeur = ""; |
if (structuresCombo.getCombo().getValue() != null) { |
Structure structure = new Structure(structuresCombo.getValeur()); |
valeur = structure.getId(); |
} |
return valeur; |
} |
private void setValeurComboStructures() { |
if (structuresCombo.getCombo().getStore() != null |
&& collection != null |
&& collection.getStructureNom() != null |
&& !UtilString.isEmpty(collection.getStructureNom())) { |
structuresCombo.chargerValeurInitiale(collection.getStructureNom(), "cs_nom"); |
} else { |
structuresCombo.getCombo().setValue(null); |
} |
} |
|
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 |
&& collection.getCollectionMereNom() != null |
&& !UtilString.isEmpty(collection.getCollectionMereNom())) { |
collectionsCombo.chargerValeurInitiale(collection.getCollectionMereNom(), "cc_nom"); |
} |
} |
|
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.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormGeneral.java:r1383-1511 |
Merged /branches/v1.0-syrah/src/org/tela_botanica/client/vues/collection/CollectionFormGeneral.java:r1136-1368 |
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormGeneral.java:r11-933,1209-1382 |