Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 675 → Rev 676

/trunk/src/org/tela_botanica/client/vues/PersonneForm.java
219,520 → 219,518
public void creerComposantsIdentite() {
// Gestion de l'affichage en colonnes : 3 Layout container : principal, gauche & droite
LayoutContainer left = new LayoutContainer();
left.setLayout(new FormLayout());
LayoutContainer right = new LayoutContainer();
right.setLayout(new FormLayout());
// Gestion de l'affichage en colonnes : 3 Layout container : principal, gauche & droite
LayoutContainer left = new LayoutContainer();
left.setLayout(new FormLayout());
LayoutContainer right = new LayoutContainer();
right.setLayout(new FormLayout());
LayoutContainer main = new LayoutContainer();
main.add(left, new ColumnData(.45));
main.add(right, new ColumnData(.45));
main.setLayout(new ColumnLayout());
main.setHeight("100%");
main.setScrollMode(Scroll.AUTO);
// Création des champs
FormLayout formLayout = new FormLayout();
formLayout.setLabelAlign(LabelAlign.LEFT);
FieldSet fsProjet = new FieldSet();
fsProjet.setHeading(mediateur.i18nC.menuProjet());
fsProjet.setLayout(new FormLayout());
LayoutContainer main = new LayoutContainer();
main.add(left, new ColumnData(.45));
main.add(right, new ColumnData(.45));
main.setLayout(new ColumnLayout());
main.setHeight("100%");
main.setScrollMode(Scroll.AUTO);
// Création des champs
FormLayout formLayout = new FormLayout();
formLayout.setLabelAlign(LabelAlign.LEFT);
FieldSet fsProjet = new FieldSet();
fsProjet.setHeading(mediateur.i18nC.menuProjet());
fsProjet.setLayout(new FormLayout());
ListStore<Projet> storeProjets = new ListStore<Projet>();
ComboBox cbProjets = new ComboBox<Projet>();
cbProjets.setFieldLabel(mediateur.i18nC.personneProjet()+ " :");
cbProjets.setEmptyText(mediateur.i18nC.txtListeProjetDefaut());
cbProjets.setLabelSeparator("");
cbProjets.setDisplayField("nom");
cbProjets.setEditable(false);
cbProjets.setTriggerAction(TriggerAction.ALL);
cbProjets.setStore(storeProjets);
cbProjets.setAllowBlank(false);
fsProjet.add(cbProjets);
hmIdentite.put("cbProjets", cbProjets);
mediateur.selectionnerProjets(this);
ListStore<Projet> storeProjets = new ListStore<Projet>();
ComboBox cbProjets = new ComboBox<Projet>();
cbProjets.setFieldLabel(mediateur.i18nC.personneProjet()+ " :");
cbProjets.setEmptyText(mediateur.i18nC.txtListeProjetDefaut());
cbProjets.setLabelSeparator("");
cbProjets.setDisplayField("nom");
cbProjets.setEditable(false);
cbProjets.setTriggerAction(TriggerAction.ALL);
cbProjets.setStore(storeProjets);
cbProjets.setAllowBlank(false);
fsProjet.add(cbProjets);
left.add(fsProjet);
hmIdentite.put("cbProjets", cbProjets);
FieldSet fsNoms = new FieldSet();
fsNoms.setHeading("Noms");
fsNoms.setLayout(formLayout);
mediateur.selectionnerProjets(this);
// Nom complet : Affiché que si valeurs saisies
LabelField nomComplet = new LabelField();
nomComplet.setFieldLabel(mediateur.i18nC.personneNomComplet() +" :");
nomComplet.hide();
left.add(fsProjet);
FieldSet fsNoms = new FieldSet();
fsNoms.setHeading("Noms");
fsNoms.setLayout(formLayout);
// Nom complet : Affiché que si valeurs saisies
LabelField nomComplet = new LabelField();
nomComplet.setFieldLabel(mediateur.i18nC.personneNomComplet() +" :");
nomComplet.hide();
fsNoms.add(nomComplet);
hmIdentite.put("nomComplet", nomComplet);
fsNoms.add(nomComplet);
hmIdentite.put("nomComplet", nomComplet);
//Préfixe
ListStore<Valeur> storePrefixe = new ListStore<Valeur>();
ComboBox<Valeur> cbPrefixe = new ComboBox<Valeur>();
cbPrefixe.setStore(storePrefixe);
cbPrefixe.setDisplayField("nom");
cbPrefixe.setEmptyText("Choisissez le préfixe:");
cbPrefixe.setFieldLabel("Prefix");
fsNoms.add(cbPrefixe);
hmIdentite.put("cbPrefixe", cbPrefixe);
mediateur.obtenirListeValeurEtRafraichir(this, "prefixe");
//Prénom
TextField<String> tfPrenom = new TextField<String>();
tfPrenom.setFieldLabel("Prénom");
tfPrenom.setName("prenom");
fsNoms.add(tfPrenom);
hmIdentite.put("tfPrenom", tfPrenom);
//Nom
TextField<String> tfNom = new TextField<String>();
tfNom.setFieldLabel("Nom");
tfNom.setAllowBlank(false);
tfNom.setName("nom");
fsNoms.add(tfNom);
hmIdentite.put("tfNom", tfNom);
//Suffixe
ListStore<Valeur> storeSuffixe = new ListStore<Valeur>();
ComboBox<Valeur> cbSuffixe = new ComboBox<Valeur>();
cbSuffixe.setStore(storeSuffixe);
cbSuffixe.setFieldLabel("Suffixe");
cbSuffixe.setDisplayField("nom");
cbSuffixe.setEmptyText("Choisissez un suffixe:");
fsNoms.add(cbSuffixe);
hmIdentite.put("cbSuffixe", cbSuffixe);
mediateur.obtenirListeValeurEtRafraichir(this, "suffixes");
TextField<String> tfNomAutre = new TextField();
tfNomAutre.setFieldLabel("Autres noms");
tfNomAutre.setName("truk_nom_autre");
fsNoms.add(tfNomAutre);
hmIdentite.put("tfNomAutre", tfNomAutre);
TextField<String> tfAbreviation = new TextField<String>();
tfAbreviation.setFieldLabel("Abréviation");
tfAbreviation.setName("abreviation");
fsNoms.add(tfAbreviation);
hmIdentite.put("tfAbreviation", tfAbreviation);
//Abréviation autres
TextField<String> tfAbreviationAutre = new TextField<String>();
tfAbreviationAutre.setFieldLabel("Autres Abrév.");
tfAbreviationAutre.setName("truk_abreviation_autre");
fsNoms.add(tfAbreviationAutre);
hmIdentite.put("tfAbreviationAutre", tfAbreviationAutre);
//Préfixe
ListStore<Valeur> storePrefixe = new ListStore<Valeur>();
ComboBox<Valeur> cbPrefixe = new ComboBox<Valeur>();
cbPrefixe.setStore(storePrefixe);
cbPrefixe.setDisplayField("nom");
cbPrefixe.setEmptyText("Choisissez le préfixe:");
cbPrefixe.setFieldLabel("Prefix");
fsNoms.add(cbPrefixe);
hmIdentite.put("cbPrefixe", cbPrefixe);
mediateur.obtenirListeValeurEtRafraichir(this, "prefixe");
 
//Prénom
TextField<String> tfPrenom = new TextField<String>();
tfPrenom.setFieldLabel("Prénom");
tfPrenom.setName("prenom");
 
fsNoms.add(tfPrenom);
hmIdentite.put("tfPrenom", tfPrenom);
 
//Nom
TextField<String> tfNom = new TextField<String>();
tfNom.setFieldLabel("Nom");
tfNom.setAllowBlank(false);
tfNom.setName("nom");
fsNoms.add(tfNom);
hmIdentite.put("tfNom", tfNom);
//Suffixe
ListStore<Valeur> storeSuffixe = new ListStore<Valeur>();
ComboBox<Valeur> cbSuffixe = new ComboBox<Valeur>();
cbSuffixe.setStore(storeSuffixe);
cbSuffixe.setFieldLabel("Suffixe");
cbSuffixe.setDisplayField("nom");
cbSuffixe.setEmptyText("Choisissez un suffixe:");
fsNoms.add(cbSuffixe);
hmIdentite.put("cbSuffixe", cbSuffixe);
mediateur.obtenirListeValeurEtRafraichir(this, "suffixes");
 
TextField<String> tfNomAutre = new TextField();
tfNomAutre.setFieldLabel("Autres noms");
tfNomAutre.setName("truk_nom_autre");
fsNoms.add(tfNomAutre);
hmIdentite.put("tfNomAutre", tfNomAutre);
TextField<String> tfAbreviation = new TextField<String>();
tfAbreviation.setFieldLabel("Abréviation");
tfAbreviation.setName("abreviation");
fsNoms.add(tfAbreviation);
hmIdentite.put("tfAbreviation", tfAbreviation);
 
//Abréviation autres
TextField<String> tfAbreviationAutre = new TextField<String>();
tfAbreviationAutre.setFieldLabel("Autres Abrév.");
tfAbreviationAutre.setName("truk_abreviation_autre");
fsNoms.add(tfAbreviationAutre);
hmIdentite.put("tfAbreviationAutre", tfAbreviationAutre);
left.add(fsNoms);
left.add(fsNoms);
formLayout = new FormLayout();
formLayout.setLabelAlign(LabelAlign.LEFT);
FieldSet fsNaissance = new FieldSet();
fsNaissance.setHeading("Naissance");
fsNaissance.setLayout(formLayout);
DateField dfDateNaissance = new DateField();
dfDateNaissance.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy"));
dfDateNaissance.setFieldLabel("Date");
dfDateNaissance.getMessages().setInvalidText("La valeur saisie n'est pas une date valide. La date doit être au format «jj/mm/aaaa».");
fsNaissance.add(dfDateNaissance);
hmIdentite.put("dfDateNaissance", dfDateNaissance);
// Lieu naissance
TextField<String> tfLieuNaissance = new TextField();
tfLieuNaissance.setFieldLabel("Lieu");
tfLieuNaissance.setName("naissance_lieu");
fsNaissance.add(tfLieuNaissance);
hmIdentite.put("tfLieuNaissance", tfLieuNaissance);
formLayout = new FormLayout();
formLayout.setLabelAlign(LabelAlign.LEFT);
left.add(fsNaissance);
formLayout = new FormLayout();
formLayout.setLabelAlign(LabelAlign.LEFT);
FieldSet fsDeces = new FieldSet();
fsDeces.setHeading("Décès");
fsDeces.setLayout(formLayout);
FieldSet fsNaissance = new FieldSet();
fsNaissance.setHeading("Naissance");
fsNaissance.setLayout(formLayout);
DateField dfDateNaissance = new DateField();
dfDateNaissance.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy"));
dfDateNaissance.setFieldLabel("Date");
dfDateNaissance.getMessages().setInvalidText("La valeur saisie n'est pas une date valide. La date doit être au format «jj/mm/aaaa».");
fsNaissance.add(dfDateNaissance);
hmIdentite.put("dfDateNaissance", dfDateNaissance);
// Lieu naissance
TextField<String> tfLieuNaissance = new TextField();
tfLieuNaissance.setFieldLabel("Lieu");
tfLieuNaissance.setName("naissance_lieu");
fsNaissance.add(tfLieuNaissance);
hmIdentite.put("tfLieuNaissance", tfLieuNaissance);
left.add(fsNaissance);
formLayout = new FormLayout();
formLayout.setLabelAlign(LabelAlign.LEFT);
FieldSet fsDeces = new FieldSet();
fsDeces.setHeading("Décès");
fsDeces.setLayout(formLayout);
Radio rbEstDecedee = new Radio();
rbEstDecedee.setBoxLabel("oui");
rbEstDecedee.addListener(Events.Change, new Listener<ComponentEvent>() {
Radio rbEstDecedee = new Radio();
rbEstDecedee.setBoxLabel("oui");
rbEstDecedee.addListener(Events.Change, new Listener<ComponentEvent>() {
public void handleEvent(ComponentEvent be) {
if(((Radio) be.getComponent()).getValue().equals(true)) {
((DateField) hmIdentite.get("dfDateDeces")).setVisible(true);
((TextField) hmIdentite.get("tfLieuDeces")).setVisible(true);
} else {
((DateField) hmIdentite.get("dfDateDeces")).setVisible(false);
((TextField) hmIdentite.get("tfLieuDeces")).setVisible(false);
}
}
});
public void handleEvent(ComponentEvent be) {
if(((Radio) be.getComponent()).getValue().equals(true)) {
((DateField) hmIdentite.get("dfDateDeces")).setVisible(true);
((TextField) hmIdentite.get("tfLieuDeces")).setVisible(true);
} else {
((DateField) hmIdentite.get("dfDateDeces")).setVisible(false);
((TextField) hmIdentite.get("tfLieuDeces")).setVisible(false);
}
}
});
hmIdentite.put("rbEstDecedee", rbEstDecedee);
Radio rbNestPasDecedee = new Radio();
rbNestPasDecedee.setBoxLabel("non");
rbNestPasDecedee.setValue(true);
RadioGroup rbgDeces = new RadioGroup();
rbgDeces.setFieldLabel("Est décédée");
rbgDeces.add(rbEstDecedee);
rbgDeces.add(rbNestPasDecedee);
fsDeces.add(rbgDeces);
DateField dfDateDeces = new DateField();
dfDateDeces.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy"));
dfDateDeces.setFormatValue(true);
dfDateDeces.getMessages().setInvalidText("La valeur saisie n'est pas une date valide. La date doit être au format «jj/mm/aaaa».");
dfDateDeces.setFieldLabel("Date");
dfDateDeces.setVisible(false);
fsDeces.add(dfDateDeces);
hmIdentite.put("dfDateDeces", dfDateDeces);
TextField<String> tfLieuDeces = new TextField();
tfLieuDeces.setFieldLabel("Lieu");
tfLieuDeces.setName("deces_lieu");
tfLieuDeces.setVisible(false);
fsDeces.add(tfLieuDeces);
hmIdentite.put("tfLieuDeces", tfLieuDeces);
hmIdentite.put("rbEstDecedee", rbEstDecedee);
Radio rbNestPasDecedee = new Radio();
rbNestPasDecedee.setBoxLabel("non");
rbNestPasDecedee.setValue(true);
RadioGroup rbgDeces = new RadioGroup();
rbgDeces.setFieldLabel("Est décédée");
rbgDeces.add(rbEstDecedee);
rbgDeces.add(rbNestPasDecedee);
fsDeces.add(rbgDeces);
DateField dfDateDeces = new DateField();
dfDateDeces.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy"));
dfDateDeces.setFormatValue(true);
dfDateDeces.getMessages().setInvalidText("La valeur saisie n'est pas une date valide. La date doit être au format «jj/mm/aaaa».");
dfDateDeces.setFieldLabel("Date");
dfDateDeces.setVisible(false);
 
fsDeces.add(dfDateDeces);
hmIdentite.put("dfDateDeces", dfDateDeces);
 
TextField<String> tfLieuDeces = new TextField();
tfLieuDeces.setFieldLabel("Lieu");
tfLieuDeces.setName("deces_lieu");
tfLieuDeces.setVisible(false);
fsDeces.add(tfLieuDeces);
hmIdentite.put("tfLieuDeces", tfLieuDeces);
left.add(fsDeces);
left.add(fsDeces);
tiIdentite.add(main);
tiIdentite.add(main);
FieldSet fsContactTel = new FieldSet();
fsContactTel.setHeading("Contact - Téléphones");
fsContactTel.setLayout(new RowLayout());
FieldSet fsContactTel = new FieldSet();
fsContactTel.setHeading("Contact - Téléphones");
fsContactTel.setLayout(new RowLayout());
right.add(fsContactTel);
hmIdentite.put("fsContactTel", fsContactTel);
right.add(fsContactTel);
hmIdentite.put("fsContactTel", fsContactTel);
LayoutContainer lcTelephone = new LayoutContainer();
lcTelephone.setLayout(new ColumnLayout());
LayoutContainer lcTelephone = new LayoutContainer();
lcTelephone.setLayout(new ColumnLayout());
TextField tfTelephone = new TextField();
tfTelephone.setFieldLabel("tel");
lcTelephone.add(tfTelephone, new ColumnData(0.40));
hmIdentite.put("tfTelephone", tfTelephone);
ListStore<Valeur> storeTel = new ListStore<Valeur>();
ComboBox<Valeur> cbTelephone = new ComboBox<Valeur>();
cbTelephone.setDisplayField("nom");
cbTelephone.setEmptyText("Choisissez:");
cbTelephone.setStore(storeTel);
lcTelephone.add(cbTelephone, new ColumnData(0.40));
hmIdentite.put("cbTelephone", cbTelephone);
TextField tfTelephone = new TextField();
tfTelephone.setFieldLabel("tel");
lcTelephone.add(tfTelephone, new ColumnData(0.40));
 
hmIdentite.put("tfTelephone", tfTelephone);
 
ListStore<Valeur> storeTel = new ListStore<Valeur>();
ComboBox<Valeur> cbTelephone = new ComboBox<Valeur>();
cbTelephone.setDisplayField("nom");
cbTelephone.setEmptyText("Choisissez:");
cbTelephone.setStore(storeTel);
lcTelephone.add(cbTelephone, new ColumnData(0.40));
hmIdentite.put("cbTelephone", cbTelephone);
 
mediateur.obtenirListeValeurEtRafraichir(this, "tel");
 
Button bAjouter = new Button();
bAjouter.setIcon(Images.ICONES.ajouter());
// TODO : taille du bouton trop grande
bAjouter.addSelectionListener(
new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
 
String strTelephone = ((TextField<String>) hmIdentite.get("tfTelephone")).getValue();
if ((strTelephone==null)||(strTelephone.trim().equals(""))) {
MessageBox.alert("Erreur de saisie", "Vous devez saisir un numéro de téléphone", null);
} else if (hmIdentite.get("tel-" + strTelephone) != null){
MessageBox.alert("Erreur de saisie", "Le numéro saisi est déjà présent dans la liste", null);
} else {
String strValeurTypeTel = "";
String idTel = "";
Valeur valeurTypeTel = ((ComboBox<Valeur>) hmIdentite.get("cbTelephone")).getValue();
mediateur.obtenirListeValeurEtRafraichir(this, "tel");
if (valeurTypeTel != null) {
strValeurTypeTel = valeurTypeTel.getNom();
idTel = valeurTypeTel.get("abreviation");
} else {
strValeurTypeTel = ((ComboBox<Valeur>) hmIdentite.get("cbTelephone")).getRawValue();
idTel = strValeurTypeTel;
}
if (strValeurTypeTel.trim().equals("")) {
MessageBox.alert("Erreur de saisie", "Vous devez saisir un type de téléphone", null);
} else {
ajouterTelephone(strTelephone, strValeurTypeTel, idTel);
}
}
}
}
);
Button bAjouter = new Button();
bAjouter.setIcon(Images.ICONES.ajouter());
// TODO : taille du bouton trop grande
bAjouter.addSelectionListener(
new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
lcTelephone.add(bAjouter, new ColumnData(0.15));
HiddenField<String> hfTelephone = new HiddenField<String>();
add(hfTelephone);
hmIdentite.put("hfTelephone", hfTelephone);
fsContactTel.add(lcTelephone);
 
FieldSet fsContact = new FieldSet();
fsContact.setHeading("Contact - Autres");
fsContact.setId("fsContact");
fsContact.setLayout(new RowLayout());
 
right.add(fsContact);
hmIdentite.put("fsContact", fsContact);
 
LabelField lfCourriel = new LabelField();
lfCourriel.setText("<b>Courriels:</b>");
 
fsContact.add(lfCourriel);
 
LayoutContainer lcCourriel = new LayoutContainer();
lcCourriel.setLayout(new ColumnLayout());
String strTelephone = ((TextField<String>) hmIdentite.get("tfTelephone")).getValue();
if ((strTelephone==null)||(strTelephone.trim().equals(""))) {
MessageBox.alert("Erreur de saisie", "Vous devez saisir un numéro de téléphone", null);
} else if (hmIdentite.get("tel-" + strTelephone) != null){
MessageBox.alert("Erreur de saisie", "Le numéro saisi est déjà présent dans la liste", null);
} else {
String strValeurTypeTel = "";
String idTel = "";
Valeur valeurTypeTel = ((ComboBox<Valeur>) hmIdentite.get("cbTelephone")).getValue();
if (valeurTypeTel != null) {
strValeurTypeTel = valeurTypeTel.getNom();
idTel = valeurTypeTel.get("abreviation");
} else {
strValeurTypeTel = ((ComboBox<Valeur>) hmIdentite.get("cbTelephone")).getRawValue();
idTel = strValeurTypeTel;
}
if (strValeurTypeTel.trim().equals("")) {
MessageBox.alert("Erreur de saisie", "Vous devez saisir un type de téléphone", null);
} else {
ajouterTelephone(strTelephone, strValeurTypeTel, idTel);
}
}
}
}
);
lcTelephone.add(bAjouter, new ColumnData(0.15));
HiddenField<String> hfTelephone = new HiddenField<String>();
add(hfTelephone);
hmIdentite.put("hfTelephone", hfTelephone);
TextField tfCourriel = new TextField();
lcCourriel.add(tfCourriel, new ColumnData(0.80));
HiddenField hfHiddenCourriel = new HiddenField();
hfHiddenCourriel.setId("tfHiddenCourriel");
hfHiddenCourriel.setValue("");
add(hfHiddenCourriel);
hmIdentite.put("hfHiddenCourriel", hfHiddenCourriel);
hmIdentite.put("tfCourriel", tfCourriel);
 
Button bAjouterCourriel = new Button();
bAjouterCourriel.setIcon(Images.ICONES.ajouter());
bAjouterCourriel.addSelectionListener(
new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
fsContactTel.add(lcTelephone);
FieldSet fsContact = new FieldSet();
fsContact.setHeading("Contact - Autres");
fsContact.setId("fsContact");
fsContact.setLayout(new RowLayout());
right.add(fsContact);
hmIdentite.put("fsContact", fsContact);
LabelField lfCourriel = new LabelField();
lfCourriel.setText("<b>Courriels:</b>");
fsContact.add(lfCourriel);
LayoutContainer lcCourriel = new LayoutContainer();
lcCourriel.setLayout(new ColumnLayout());
TextField tfCourriel = new TextField();
lcCourriel.add(tfCourriel, new ColumnData(0.80));
String strEmail = ((TextField<String>) hmIdentite.get("tfCourriel")).getValue();
if ((strEmail==null)||(strEmail.trim().equals(""))) {
MessageBox.alert("Erreur de saisie", "Vous devez saisir une adresse", null);
} else if (hmIdentite.get("email-" + strEmail) != null){
MessageBox.alert("Erreur de saisie", "L'adresse saisie est déjà dans la liste", null);
} else {
HiddenField hfHiddenCourriel = new HiddenField();
hfHiddenCourriel.setId("tfHiddenCourriel");
hfHiddenCourriel.setValue("");
if (!strEmail.matches("(\\w+)@(\\w+\\.)(\\w+)(\\.\\w+)*")) {
MessageBox.alert("Erreur de saisie", "L'adresse n'est pas au bon format (ex: me@domain.com)", null);
} else if (strEmail.length()>255){
MessageBox.alert("Erreur de saisie", "L'adresse ne peut dépasser 255 caractères", null);
} else {
ajouterCourriel(strEmail);
}
add(hfHiddenCourriel);
hmIdentite.put("hfHiddenCourriel", hfHiddenCourriel);
hmIdentite.put("tfCourriel", tfCourriel);
Button bAjouterCourriel = new Button();
bAjouterCourriel.setIcon(Images.ICONES.ajouter());
bAjouterCourriel.addSelectionListener(
new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
String strEmail = ((TextField<String>) hmIdentite.get("tfCourriel")).getValue();
if ((strEmail==null)||(strEmail.trim().equals(""))) {
MessageBox.alert("Erreur de saisie", "Vous devez saisir une adresse", null);
} else if (hmIdentite.get("email-" + strEmail) != null){
MessageBox.alert("Erreur de saisie", "L'adresse saisie est déjà dans la liste", null);
} else {
if (!strEmail.matches("(\\w+)@(\\w+\\.)(\\w+)(\\.\\w+)*")) {
MessageBox.alert("Erreur de saisie", "L'adresse n'est pas au bon format (ex: me@domain.com)", null);
} else if (strEmail.length()>255){
MessageBox.alert("Erreur de saisie", "L'adresse ne peut dépasser 255 caractères", null);
} else {
ajouterCourriel(strEmail);
}
}
}
});
lcCourriel.add(bAjouterCourriel, new ColumnData(0.15));
}
fsContact.add(lcCourriel);
}
});
LayoutContainer lcCourrielContainer = new LayoutContainer(new RowLayout());
lcCourriel.add(bAjouterCourriel, new ColumnData(0.15));
fsContact.add(lcCourrielContainer);
hmIdentite.put("lcCourrielContainer", lcCourrielContainer);
fsContact.add(lcCourriel);
 
LabelField lfUrl = new LabelField();
lfUrl.setText("<b>Sites Web:</b>");
LayoutContainer lcCourrielContainer = new LayoutContainer(new RowLayout());
fsContact.add(lcCourrielContainer);
hmIdentite.put("lcCourrielContainer", lcCourrielContainer);
 
 
LabelField lfUrl = new LabelField();
lfUrl.setText("<b>Sites Web:</b>");
fsContact.add(lfUrl);
 
LayoutContainer lcUrl = new LayoutContainer(new ColumnLayout());
hmIdentite.put("lcUrl", lcUrl);
 
HiddenField<String> hfUrl = new HiddenField<String>();
hmIdentite.put("hfUrl", hfUrl);
add(hfUrl);
fsContact.add(lfUrl);
LayoutContainer lcUrl = new LayoutContainer(new ColumnLayout());
hmIdentite.put("lcUrl", lcUrl);
HiddenField<String> hfUrl = new HiddenField<String>();
hmIdentite.put("hfUrl", hfUrl);
add(hfUrl);
TextField tfUrl = new TextField();
tfUrl.setValue("http://");
lcUrl.add(tfUrl, new ColumnData(0.8));
hmIdentite.put("tfUrl", tfUrl);
Button ibAjouterUrl = new Button();
ibAjouterUrl.setIcon(Images.ICONES.ajouter());
ibAjouterUrl.addSelectionListener(new SelectionListener<ButtonEvent>() {
TextField tfUrl = new TextField();
tfUrl.setValue("http://");
 
public void componentSelected(ButtonEvent ce) {
TextField<String> tfUrl = (TextField) hmIdentite.get("tfUrl");
String strUrl = tfUrl.getValue();
if ((strUrl == null)||(strUrl.trim().equals("http://"))||(strUrl.trim().equals(""))) {
MessageBox.alert("Erreur de saisie", "Vous devez saisir un URL", null);
} else if(hmIdentite.get("url-" + strUrl) != null) {
MessageBox.alert("Erreur de saisie", "L'url est déjà présente dans la liste.", null);
} else {
tfUrl.setValue("http://");
//if (!strUrl.matches("[a-z]{3,}://[a-z0-9-]+.[.a-z0-9-]+(?::[0-9]*)?")) {
if (!strUrl.startsWith("http://")) {
MessageBox.alert("Erreur de saisie", "L'adresse n'est pas au bon format (ex: http://www.domain.com)", null);
} else if (strUrl.length()>255){
MessageBox.alert("Erreur de saisie", "L'adresse ne peut dépasser 255 caractères", null);
} else {
ajouterUrl(strUrl);
}
}
}
});
lcUrl.add(ibAjouterUrl, new ColumnData(0.15));
fsContact.add(lcUrl);
LayoutContainer lcUrlContainer = new LayoutContainer(new RowLayout());
lcUrl.add(tfUrl, new ColumnData(0.8));
hmIdentite.put("tfUrl", tfUrl);
 
Button ibAjouterUrl = new Button();
ibAjouterUrl.setIcon(Images.ICONES.ajouter());
ibAjouterUrl.addSelectionListener(new SelectionListener<ButtonEvent>() {
 
public void componentSelected(ButtonEvent ce) {
TextField<String> tfUrl = (TextField) hmIdentite.get("tfUrl");
String strUrl = tfUrl.getValue();
if ((strUrl == null)||(strUrl.trim().equals("http://"))||(strUrl.trim().equals(""))) {
MessageBox.alert("Erreur de saisie", "Vous devez saisir un URL", null);
} else if(hmIdentite.get("url-" + strUrl) != null) {
MessageBox.alert("Erreur de saisie", "L'url est déjà présente dans la liste.", null);
} else {
tfUrl.setValue("http://");
//if (!strUrl.matches("[a-z]{3,}://[a-z0-9-]+.[.a-z0-9-]+(?::[0-9]*)?")) {
if (!strUrl.startsWith("http://")) {
MessageBox.alert("Erreur de saisie", "L'adresse n'est pas au bon format (ex: http://www.domain.com)", null);
} else if (strUrl.length()>255){
MessageBox.alert("Erreur de saisie", "L'adresse ne peut dépasser 255 caractères", null);
} else {
ajouterUrl(strUrl);
}
fsContact.add(lcUrlContainer);
hmIdentite.put("lcUrlContainer", lcUrlContainer);
 
FieldSet fsAutresInfos = new FieldSet();
fsAutresInfos.setHeading("Autres informations");
}
}
});
formLayout = new FormLayout();
formLayout.setLabelAlign(LabelAlign.LEFT);
fsAutresInfos.setLayout(formLayout);
lcUrl.add(ibAjouterUrl, new ColumnData(0.15));
fsContact.add(lcUrl);
formLayout = new FormLayout();
formLayout.setLabelAlign(LabelAlign.TOP);
LayoutContainer lcAutreInformations1 = new LayoutContainer(formLayout);
//Civilité
ListStore<Valeur> storeSexe = new ListStore<Valeur>();
ComboBox<Valeur> cbSexe = new ComboBox<Valeur>();
cbSexe.setStore(storeSexe);
cbSexe.setFieldLabel("Sexe");
cbSexe.setDisplayField("nom");
cbSexe.setEmptyText("Choisissez le sexe:");
LayoutContainer lcUrlContainer = new LayoutContainer(new RowLayout());
lcAutreInformations1.add(cbSexe, fd100);
hmIdentite.put("cbSexe", cbSexe);
mediateur.obtenirListeValeurEtRafraichir(this, "sexe");
fsContact.add(lcUrlContainer);
hmIdentite.put("lcUrlContainer", lcUrlContainer);
FieldSet fsAutresInfos = new FieldSet();
fsAutresInfos.setHeading("Autres informations");
formLayout = new FormLayout();
formLayout.setLabelAlign(LabelAlign.LEFT);
fsAutresInfos.setLayout(formLayout);
//Description
TextArea taDescription = new TextArea();
taDescription.setEmptyText("Saisissez une description");
taDescription.setFieldLabel("Description");
taDescription.setWidth("100%");
taDescription.setName("description");
lcAutreInformations1.add(taDescription, fd100);
hmIdentite.put("taDescription", taDescription);
fsAutresInfos.add(lcAutreInformations1);
// Logo
LayoutContainer lcAutreInformations2 = new LayoutContainer();
hmIdentite.put("lcAutreInformations2", lcAutreInformations2);
LabelField lfUrlLogo = new LabelField();
lfUrlLogo.setText("<b>Logo:</b>");
lcAutreInformations2.add(lfUrlLogo);
LayoutContainer lcUrlLogo = new LayoutContainer(new ColumnLayout());
hmIdentite.put("lcUrlLogo", lcUrlLogo);
TextField tfUrlLogo = new TextField();
tfUrlLogo.setValue("http://");
HiddenField<String> hfUrlLogo = new HiddenField<String>();
hmIdentite.put("hfUrlLogo", hfUrlLogo);
formLayout = new FormLayout();
formLayout.setLabelAlign(LabelAlign.TOP);
LayoutContainer lcAutreInformations1 = new LayoutContainer(formLayout);
//Civilité
ListStore<Valeur> storeSexe = new ListStore<Valeur>();
ComboBox<Valeur> cbSexe = new ComboBox<Valeur>();
cbSexe.setStore(storeSexe);
cbSexe.setFieldLabel("Sexe");
cbSexe.setDisplayField("nom");
cbSexe.setEmptyText("Choisissez le sexe:");
lcUrlLogo.add(tfUrlLogo, new ColumnData(0.8));
hmIdentite.put("tfUrlLogo", tfUrlLogo);
lcAutreInformations1.add(cbSexe, fd100);
hmIdentite.put("cbSexe", cbSexe);
Button ibAjouterUrlLogo = new Button();
ibAjouterUrlLogo.setIcon(Images.ICONES.ajouter());
ibAjouterUrlLogo.addSelectionListener(new SelectionListener<ButtonEvent>() {
mediateur.obtenirListeValeurEtRafraichir(this, "sexe");
//Description
TextArea taDescription = new TextArea();
taDescription.setEmptyText("Saisissez une description");
taDescription.setFieldLabel("Description");
taDescription.setWidth("100%");
taDescription.setName("description");
lcAutreInformations1.add(taDescription, fd100);
hmIdentite.put("taDescription", taDescription);
fsAutresInfos.add(lcAutreInformations1);
// Logo
LayoutContainer lcAutreInformations2 = new LayoutContainer();
hmIdentite.put("lcAutreInformations2", lcAutreInformations2);
LabelField lfUrlLogo = new LabelField();
lfUrlLogo.setText("<b>Logo:</b>");
lcAutreInformations2.add(lfUrlLogo);
LayoutContainer lcUrlLogo = new LayoutContainer(new ColumnLayout());
hmIdentite.put("lcUrlLogo", lcUrlLogo);
TextField tfUrlLogo = new TextField();
tfUrlLogo.setValue("http://");
HiddenField<String> hfUrlLogo = new HiddenField<String>();
hmIdentite.put("hfUrlLogo", hfUrlLogo);
 
public void componentSelected(ButtonEvent ce) {
TextField<String> tfUrlLogo = (TextField) hmIdentite.get("tfUrlLogo");
String strUrl = tfUrlLogo.getValue();
if ((strUrl == null)||(strUrl.trim().equals("http://"))||(strUrl.trim().equals(""))) {
MessageBox.alert("Erreur de saisie", "Vous devez saisir un URL", null);
} else if(hmIdentite.get("url-" + strUrl) != null) {
MessageBox.alert("Erreur de saisie", "L'url est déjà présente dans la liste.", null);
} else {
tfUrlLogo.setValue("http://");
//if (!strUrl.matches("[a-z]{3,}://[a-z0-9-]+.[.a-z0-9-]+(?::[0-9]*)?")) {
if (!strUrl.startsWith("http://")) {
MessageBox.alert("Erreur de saisie", "L'adresse n'est pas au bon format (ex: http://www.domain.com)", null);
} else if (strUrl.length()>255){
MessageBox.alert("Erreur de saisie", "L'adresse ne peut dépasser 255 caractères", null);
} else {
ajouterUrlLogo(strUrl);
}
lcUrlLogo.add(tfUrlLogo, new ColumnData(0.8));
hmIdentite.put("tfUrlLogo", tfUrlLogo);
 
Button ibAjouterUrlLogo = new Button();
ibAjouterUrlLogo.setIcon(Images.ICONES.ajouter());
ibAjouterUrlLogo.addSelectionListener(new SelectionListener<ButtonEvent>() {
 
public void componentSelected(ButtonEvent ce) {
TextField<String> tfUrlLogo = (TextField) hmIdentite.get("tfUrlLogo");
String strUrl = tfUrlLogo.getValue();
if ((strUrl == null)||(strUrl.trim().equals("http://"))||(strUrl.trim().equals(""))) {
MessageBox.alert("Erreur de saisie", "Vous devez saisir un URL", null);
} else if(hmIdentite.get("url-" + strUrl) != null) {
MessageBox.alert("Erreur de saisie", "L'url est déjà présente dans la liste.", null);
} else {
tfUrlLogo.setValue("http://");
//if (!strUrl.matches("[a-z]{3,}://[a-z0-9-]+.[.a-z0-9-]+(?::[0-9]*)?")) {
if (!strUrl.startsWith("http://")) {
MessageBox.alert("Erreur de saisie", "L'adresse n'est pas au bon format (ex: http://www.domain.com)", null);
} else if (strUrl.length()>255){
MessageBox.alert("Erreur de saisie", "L'adresse ne peut dépasser 255 caractères", null);
} else {
ajouterUrlLogo(strUrl);
}
}
});
}
}
});
lcUrlLogo.add(ibAjouterUrlLogo, new ColumnData(0.15));
lcAutreInformations2.add(lcUrlLogo);
lcUrlLogo.add(ibAjouterUrlLogo, new ColumnData(0.15));
lcAutreInformations2.add(lcUrlLogo);
fsAutresInfos.add(lcAutreInformations2);
fsAutresInfos.add(lcAutreInformations2);
TextArea taLogo = new TextArea();
taLogo.setFieldLabel("Logos");
taLogo.setWidth("100%");
taLogo.setEmptyText("Saisissez les adresses des logos séparées par un saut de ligne");
//fsAutresInfos.add(taLogo, fd100);
TextArea taLogo = new TextArea();
taLogo.setFieldLabel("Logos");
taLogo.setWidth("100%");
taLogo.setEmptyText("Saisissez les adresses des logos séparées par un saut de ligne");
//fsAutresInfos.add(taLogo, fd100);
hmIdentite.put("taLogo", taLogo);
hmIdentite.put("taLogo", taLogo);
right.add(fsAutresInfos);
right.add(fsAutresInfos);
// Ajout des évènements saisi
KeyListener klNoms = new KeyListener() {
public void componentKeyUp(ComponentEvent ev) {
rafraichir(null);
}
};
SelectionChangedListener<Valeur> selectionChange = new SelectionChangedListener<Valeur>() {
public void selectionChanged(SelectionChangedEvent se) {
rafraichir(null);
}
};
// Ajout des évènements saisi
KeyListener klNoms = new KeyListener() {
public void componentKeyUp(ComponentEvent ev) {
rafraichir(null);
}
};
SelectionChangedListener<Valeur> selectionChange = new SelectionChangedListener<Valeur>() {
public void selectionChanged(SelectionChangedEvent se) {
rafraichir(null);
}
};
cbPrefixe.addSelectionChangedListener(selectionChange);
cbPrefixe.addKeyListener(klNoms);
tfPrenom.addKeyListener(klNoms);
tfNom.addKeyListener(klNoms);
cbSuffixe.addSelectionChangedListener(selectionChange);
cbPrefixe.addSelectionChangedListener(selectionChange);
cbPrefixe.addKeyListener(klNoms);
tfPrenom.addKeyListener(klNoms);
tfNom.addKeyListener(klNoms);
cbSuffixe.addSelectionChangedListener(selectionChange);
}
865,7 → 863,9
enregistrerEtRevenir.setIconAlign(IconAlign.LEFT);
enregistrerEtRevenir.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
enregistrer();
if (enregistrer() == true) {
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).clicMenu("Personnes");
}
}
});
1546,8 → 1546,9
* Enregistre les information de la personne en cours
*
*/
public void enregistrer() {
public boolean enregistrer() {
boolean success = false;
LinkedList lstMessageErreur = new LinkedList<String>();
ComboBox<Projet> cbProjets = (ComboBox<Projet>) hmIdentite.get("cbProjets");
1631,10 → 1632,10
personneSelectionnee.setDecesDate(new Date());
strValeur = obtenirValeurCombo("cbPays");
personneSelectionnee.set("pays", strValeur);
personneSelectionnee.set("ce_truk_pays", strValeur);
strValeur = obtenirValeurCombo("cbRegion");
personneSelectionnee.set("region", strValeur);
personneSelectionnee.set("ce_truk_region", strValeur);
personneSelectionnee.set("truk_telephone", ((HiddenField<String>) hmIdentite.get("hfTelephone")).getValue());
1648,6 → 1649,7
if (lstMessageErreur.size() == 0) {
mediateur.enregistrerPersonne(this, personneSelectionnee);
success = true;
} else {
String strMessagesErreur = "<span><br />";
Iterator<String> itMessagesErreur = lstMessageErreur.iterator();
1657,7 → 1659,10
strMessagesErreur += "</span>";
MessageBox.alert("Erreurs", "Les erreurs suivantes ont été commises : \n" + strMessagesErreur, null);
success = false;
}
return success;
}
private String obtenirValeurCombo(String strComboName) {