19,6 → 19,7 |
import org.tela_botanica.client.modeles.Configuration; |
|
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.MenuApplicationId; |
import org.tela_botanica.client.modeles.Personne; |
import org.tela_botanica.client.modeles.PersonneListe; |
import org.tela_botanica.client.modeles.Projet; |
65,6 → 66,7 |
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.layout.ColumnData; |
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
78,11 → 80,11 |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.user.client.ui.Widget; |
|
public class PersonneForm extends FormPanel implements Rafraichissable { |
public class PersonneForm extends Formulaire implements Rafraichissable { |
|
// VARIABLES |
private TabItem tiIdentite, tiAdresses, tiInfosNat; |
private Mediateur mediateur = Registry.get(RegistreId.MEDIATEUR); |
private Mediateur mediateur; |
private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG); |
private Personne personneSelectionnee, personneSauvegarde = null; |
private String mode = ""; |
98,14 → 100,30 |
|
public static final String MODE_AJOUTER = "AJOUT"; |
public static final String MODE_MODIFIER = "MODIF"; |
|
private final String personneId; |
|
private FormBinding binding = null; |
|
// CONSTRUCTEUR |
|
public PersonneForm(String mode) { |
this.mode = mode; |
|
|
|
public PersonneForm(Mediateur mediateur, String mode, String personneId) { |
|
this.personneId = personneId; |
this.mediateur = mediateur; |
initialiserFormulaire(mediateur, mode, MenuApplicationId.PERSONNE); |
initialiserComposants(); |
|
String titreFormulaire = ""; |
if (mode.equals(MODE_MODIFIER)) { |
titreFormulaire = mediateur.i18nC.personneModeModifier() + " ID: " + personneId; |
} else { |
titreFormulaire = mediateur.i18nC.personneModeAjout(); |
} |
|
panneauFormulaire.setHeading(titreFormulaire); |
} |
|
public void initialiserComposants() { |
112,53 → 130,15 |
personneSelectionnee = new Personne(); |
personneSauvegarde = new Personne(); |
|
initialiserPanneau(); |
|
ButtonBar barreOutilsBas = new ButtonBar(); |
//barreOutilsBas.setButtonAlign(HorizontalAlignment.CENTER); |
barreOutilsBas.setAlignment(HorizontalAlignment.CENTER); |
|
ajouterBoutonEnregistrer(barreOutilsBas); |
ajouterBoutonEnregistrerEtRevenir(barreOutilsBas); |
ajouterBoutonAnnuler(barreOutilsBas); |
gererEtatActivationBouton(); |
|
setBottomComponent(barreOutilsBas); |
|
ToolBar barreOutilsHaut = new ToolBar(); |
ajouterBoutonReinitialiser(barreOutilsHaut); |
setTopComponent(barreOutilsHaut); |
|
initialiserOnglets(); |
|
creerComposantsIdentite(); |
creerComposantsAdresse(); |
creerComposantsInfosNat(); |
layout(); |
|
binderPersonne(personneSelectionnee); |
} |
|
// SOUS-METHODES |
|
public void initialiserPanneau() { |
setCollapsible(false); |
if (this.mode.equals(MODE_AJOUTER)) { |
setHeading(mediateur.i18nC.personneModeAjout()); |
setIcon(Images.ICONES.ajouter()); |
} else { |
setHeading(mediateur.i18nC.personneModeModifier()); |
setIcon(Images.ICONES.formModifier()); |
} |
setButtonAlign(HorizontalAlignment.CENTER); |
setLayout(new FitLayout()); |
setBodyBorder(false); |
setBorders(false); |
setPadding(0); |
setWidth("100%"); |
|
} |
|
/** |
* Crée les onglets identité, adresse et informations naturaliste |
* |
187,7 → 167,7 |
tiInfosNat.setScrollMode(Scroll.AUTO); |
|
formulaireOnglets.add(tiInfosNat); |
add(formulaireOnglets); |
getFormulaire().add(formulaireOnglets); |
} |
|
/** |
638,25 → 618,8 |
tiInfosNat.add(fsInfosNat); |
} |
|
/** |
* Ajouter le bouton réinitialiser à la barre d'outils donnée |
* |
* @param barreOutils la barre d'outils à modifier |
* */ |
public void ajouterBoutonReinitialiser(ToolBar barreOutils) { |
|
//Le bouton réintialiser recharge la page sans sauvegarder les informations |
Button reinitialiser = new Button("Réinitialiser le formulaire"); |
reinitialiser.setIcon(Images.ICONES.rafraichir()); |
reinitialiser.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
//((Mediateur) Registry.get(RegistreId.MEDIATEUR)).clicAjouterPersonne(); |
reinitialiser(); |
} |
}); |
barreOutils.add(reinitialiser); |
} |
|
|
/** |
* Ajouter le bouton Sauvegarder et revenir à la liste à la barre d'outils donnée |
* |
969,7 → 932,6 |
* -----------------------------------------------------*/ |
|
((ChampMultiValeurs) hmInfosNat.get("specialite")).peupler(personne.getString("ce_truk_specialite")); |
System.out.println(personne.getString("truk_recolte")); |
((ChampMultiValeursMultiTypes) hmInfosNat.get("recolte")).peupler(personne.getString("truk_recolte")); |
|
gererEtatActivationBouton(); |
994,16 → 956,16 |
} |
|
private void gererEtatActivationBouton() { |
if (((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT)).isIdentifie() == false) { |
/* if (((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT)).isIdentifie() == false) { |
enregistrer.setEnabled(false); |
enregistrerEtRevenir.setEnabled(false); |
} else { |
enregistrer.setEnabled(true); |
enregistrerEtRevenir.setEnabled(true); |
} |
}*/ |
} |
|
public void reinitialiser() { |
public void reinitialiserFormulaire() { |
mediateur.afficherPopinChargement(); |
|
mettreAJourPersonne(personneSauvegarde); |
1013,7 → 975,7 |
} |
|
public void binderPersonne(Personne personne) { |
binding = new FormBinding(this); |
binding = new FormBinding(getFormulaire()); |
|
personneSelectionnee = personne; |
binding.autoBind(); |
1143,8 → 1105,6 |
success = false; |
} |
|
|
|
return success; |
} |
|
1171,4 → 1131,154 |
|
return strValeur; |
} |
|
@Override |
protected SelectionListener<ButtonEvent> creerEcouteurValidation() { |
SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent ce) { |
String code = ((Button) ce.getComponent()).getData("code"); |
if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) { |
soumettreFormulaire(); |
clicBoutonvalidation = true; |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) { |
soumettreFormulaire(); |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) { |
mediateur.clicMenu(menuIdCourant); |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) { |
reinitialiserFormulaire(); |
} |
} |
}; |
|
return ecouteur; |
} |
|
protected boolean soumettreFormulaire() { |
if (verifierFormulaire()) { |
mediateur.enregistrerPersonne(this, personneSelectionnee); |
} |
return true; |
} |
|
protected boolean verifierFormulaire() { |
|
boolean success = false; |
LinkedList lstMessageErreur = new LinkedList<String>(); |
|
ComboBox<Projet> cbProjets = (ComboBox<Projet>) hmIdentite.get("cbProjets"); |
Projet projet = cbProjets.getValue(); |
if (projet == null) { |
lstMessageErreur.add("Le projet n'a pas été renseigné"); |
} else { |
personneSelectionnee.set("ce_projet", projet.getId()); |
} |
|
String strTfNom = ((TextField<String>) hmIdentite.get("tfNom")).getValue(); |
if ((strTfNom == null)||(strTfNom.trim().equals(""))) { |
lstMessageErreur.add("Le nom n'a pas été saisi"); |
} else { |
strTfNom = UtilString.ucFirst(strTfNom); |
personneSelectionnee.set("nom", strTfNom); |
} |
|
String strTfPrenom = ((TextField<String>) hmIdentite.get("tfPrenom")).getValue(); |
personneSelectionnee.set("prenom", UtilString.ucFirst(strTfPrenom)); |
|
//Préparer les données |
ComboBox combo = (ComboBox) hmIdentite.get("cbSexe"); |
Valeur valeur; |
String strValeur = ""; |
|
valeur = (Valeur) combo.getValue(); |
if (valeur!=null) { |
personneSelectionnee.set("ce_sexe", valeur.getId()); |
} |
|
strValeur = obtenirValeurCombo("cbPrefixe"); |
personneSelectionnee.set("ce_truk_prefix", strValeur); |
|
strValeur = obtenirValeurCombo("cbSuffixe"); |
personneSelectionnee.set("ce_truk_suffix", strValeur); |
|
String nomAutre = ((ChampMultiValeurs) hmIdentite.get("nomAutre")).getValeurs(); |
personneSelectionnee.set("truk_nom_autre", nomAutre); |
|
String abreviationAutre = ((ChampMultiValeurs) hmIdentite.get("abreviationAutre")).getValeurs(); |
personneSelectionnee.set("truk_abreviation_autre", abreviationAutre); |
|
personneSelectionnee.set("truk_courriel", ((ChampMultiValeurs) hmIdentite.get("courriels")).getValeurs()); |
|
|
//Pour le nom complet, on enregistre dans la bdd la valeur du prefixe/suffixe et non l'id |
String strPrefixe = ""; |
combo = (ComboBox) hmIdentite.get("cbPrefixe"); |
valeur = (Valeur) combo.getValue(); |
if (valeur != null) { |
strPrefixe = valeur.getNom(); |
} else { |
strPrefixe = combo.getRawValue(); |
} |
|
String strSuffixe = ""; |
combo = (ComboBox) hmIdentite.get("cbSuffixe"); |
valeur = (Valeur) combo.getValue(); |
if (valeur != null) { |
strSuffixe = valeur.getNom() + " "; |
} else { |
strSuffixe = combo.getRawValue() +" "; |
} |
|
personneSelectionnee.setFmtNomComplet(strPrefixe, strSuffixe); |
|
DateField dfDateNaissance = (DateField) hmIdentite.get("dfDateNaissance"); |
Date naissanceDate = dfDateNaissance.getValue(); |
personneSelectionnee.setNaissanceDate(naissanceDate); |
|
Radio rbEstDecedee = (Radio) hmIdentite.get("rbEstDecedee"); |
if (rbEstDecedee.getValue() == true) { |
DateField dfDecesDate = (DateField) hmIdentite.get("dfDateDeces"); |
String decesLieu = ((TextField<String>) hmIdentite.get("tfLieuDeces")).getValue(); |
personneSelectionnee.setDeces(dfDecesDate.getValue(), decesLieu); |
} else { |
personneSelectionnee.setNonDecedee(); |
} |
|
strValeur = obtenirValeurCombo("cbPays"); |
personneSelectionnee.set("ce_truk_pays", strValeur); |
|
strValeur = obtenirValeurCombo("cbRegion"); |
personneSelectionnee.set("ce_truk_region", strValeur); |
|
personneSelectionnee.set("truk_telephone", ((ChampMultiValeursMultiTypes) hmIdentite.get("telephones")).getValeurs()); |
|
String logoUrls = ((ChampMultiValeursImage) hmIdentite.get("logos")).getValeurs(); |
personneSelectionnee.set("truk_logo", logoUrls); |
|
personneSelectionnee.set("truk_url", ((ChampMultiValeurs) hmIdentite.get("sites")).getValeurs()); |
|
//Infos Naturalistes |
String recolte = ((ChampMultiValeursMultiTypes) hmInfosNat.get("recolte")).getValeurs(); |
personneSelectionnee.set("truk_recolte", recolte); |
|
String specialite = ((ChampMultiValeurs) hmInfosNat.get("specialite")).getValeurs(); |
personneSelectionnee.set("ce_truk_specialite", specialite); |
|
|
if (lstMessageErreur.size() == 0) { |
success = true; |
} else { |
String strMessagesErreur = "<span><br />"; |
Iterator<String> itMessagesErreur = lstMessageErreur.iterator(); |
while (itMessagesErreur.hasNext()) { |
strMessagesErreur += "<br /> - " + itMessagesErreur.next(); |
} |
strMessagesErreur += "</span>"; |
|
MessageBox.alert("Erreurs", "Les erreurs suivantes ont été commises : \n" + strMessagesErreur, null); |
success = false; |
} |
|
return success; |
} |
} |