/trunk/src/org/tela_botanica/client/modeles/personne/Personne.java |
---|
217,6 → 217,17 |
} |
return dateNaiss; |
} |
public String getAnneeOuDateNaiss() { |
String valeurDateNaissance = get("naissance_date"); |
if (!UtilString.isEmpty(valeurDateNaissance) && valeurDateNaissance.endsWith("00-00")) { |
valeurDateNaissance = valeurDateNaissance.substring(0, 4); |
} else if (UtilString.isEmpty(valeurDateNaissance) && valeurDateNaissance.equals("0000-00-00")) { |
valeurDateNaissance = ""; |
} |
return valeurDateNaissance; |
} |
public void setNaissanceDate(Date naissanceDate) { |
if (naissanceDate != null) { |
this.set("naissance_date", DateTimeFormat.getFormat("yyyy-MM-dd").format(naissanceDate)); |
242,12 → 253,25 |
return false; |
} |
} |
public String getDeces() { |
return renvoyerValeurCorrecte("ce_deces"); |
} |
public String getAnneeOuDateDeces() { |
String valeurDateDeces = get("deces_date"); |
if (!UtilString.isEmpty(valeurDateDeces) && valeurDateDeces.endsWith("00-00")) { |
valeurDateDeces = valeurDateDeces.substring(0, 4); |
} else if (UtilString.isEmpty(valeurDateDeces) && valeurDateDeces.equals("0000-00-00")) { |
valeurDateDeces = ""; |
} |
return valeurDateDeces; |
} |
public void setDeces(String deces) { |
set("ce_deces", deces); |
} |
public void setDeces(Date decesDate, String lieuDeces) { |
set("ce_deces", ETRE_DECEDE); |
setDecesDate(decesDate); |
267,6 → 291,7 |
} |
return dateDeces; |
} |
public void setDecesDate(Date decesDate) { |
if (decesDate != null) { |
this.set("deces_date", DateTimeFormat.getFormat("yyyy-MM-dd").format(decesDate)); |
/trunk/src/org/tela_botanica/client/modeles/personne/PersonneListe.java |
---|
125,7 → 125,7 |
public void selectionnerPersonne() { |
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR); |
mediateur.selectionnerPersonne(vueARafraichir, null, null, currentPage, nbElementsPage); |
mediateur.selectionnerPersonne(vueARafraichir, null, mediateur.getProjetId(), currentPage, nbElementsPage); |
} |
public void filtrerParNom(String nom) { |
/trunk/src/org/tela_botanica/client/modeles/structure/Structure.java |
---|
6,6 → 6,7 |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.util.UtilString; |
import com.extjs.gxt.ui.client.data.BaseModelData; |
import com.google.gwt.i18n.client.DateTimeFormat; |
166,6 → 167,20 |
} |
return dateFormatee; |
} |
public String getAnneOuDateFondationFormatLong() { |
String dateFormatee = ""; |
String dateFondation = renvoyerValeurCorrecte("date_fondation"); |
if (!dateFondation.equals("")) { |
if (dateFondation.endsWith("00-00")) { |
dateFormatee = dateFondation.substring(0, 4); |
} else { |
Date date = DateTimeFormat.getFormat("yyyy-MM-dd").parse(dateFondation); |
dateFormatee = DateTimeFormat.getLongDateFormat().format(date); |
} |
} |
return dateFormatee; |
} |
public Date getDateFondation() { |
Date fondationDate = null; |
String fondationChaine = renvoyerValeurCorrecte("date_fondation"); |
174,6 → 189,17 |
} |
return fondationDate; |
} |
public String getAnneeOuDateFondation() { |
String valeurDateFondation = get("date_fondation"); |
if (!UtilString.isEmpty(valeurDateFondation) && valeurDateFondation.endsWith("00-00")) { |
valeurDateFondation = valeurDateFondation.substring(0, 4); |
} else if (UtilString.isEmpty(valeurDateFondation) && valeurDateFondation.equals("0000-00-00")) { |
valeurDateFondation = ""; |
} |
return valeurDateFondation; |
} |
public void setDateFondation(Date dateFondation) { |
if (dateFondation != null) { |
this.set("date_fondation", DateTimeFormat.getFormat("yyyy-MM-dd").format(dateFondation)); |
/trunk/src/org/tela_botanica/client/modeles/structure/StructureListe.java |
---|
116,7 → 116,7 |
public void selectionnerStructure() { |
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR); |
mediateur.selectionnerStructure(vueARafraichir, null, null, null, currentPage, nbElementsPage); |
mediateur.selectionnerStructure(vueARafraichir, null, mediateur.getProjetId(), null, currentPage, nbElementsPage); |
} |
public void filtrerParNom(String nom) { |
/trunk/src/org/tela_botanica/client/modeles/projet/ProjetListe.java |
---|
120,7 → 120,7 |
public void selectionnerStructure() { |
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR); |
mediateur.selectionnerProjet(vueARafraichir, null, null, currentPage, nbElementsPage); |
mediateur.selectionnerProjet(vueARafraichir, mediateur.getProjetId(), null, currentPage, nbElementsPage); |
} |
public void filtrerParNom(String nom) { |
/trunk/src/org/tela_botanica/client/modeles/publication/PublicationListe.java |
---|
113,7 → 113,7 |
public void selectionnerPublication() { |
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR); |
mediateur.selectionnerPublication(vueARafraichir, null, null, null, currentPage, nbElementsPage); |
mediateur.selectionnerPublication(vueARafraichir, mediateur.getProjetId(), null, null, currentPage, nbElementsPage); |
} |
public void filtrerParNom(String nom) { |
/trunk/src/org/tela_botanica/client/i18n/Constantes.properties |
---|
518,9 → 518,11 |
personneCourriel = Courriel |
personneInfoNat = Informations Naturalistes |
tabPublications = Publications liées |
personneProjet = Projet |
personneLogos = Images |
personneBiographie = Biographie |
personneSpecialite = Spécialité |
personneRecolte = Recolte |
/trunk/src/org/tela_botanica/client/i18n/Constantes.java |
---|
505,10 → 505,12 |
String personneCourriel(); |
String personneLogos(); |
String personneBiographie(); |
String personneSpecialite(); |
String personneRecolte(); |
String personneInfoNat(); |
String tabPublications(); |
String personneProjet(); |
// +---------------------------------------------------------------------------------------------------------------+ |
/trunk/src/org/tela_botanica/client/vues/Formulaire.java |
---|
93,7 → 93,8 |
panneauFormulaire.setCollapsible(false); |
panneauFormulaire.setButtonAlign(HorizontalAlignment.CENTER); |
panneauFormulaire.setLayout(new FitLayout()); |
panneauFormulaire.setPadding(0); |
if (modeDeCreation.equals(MODE_AJOUTER)) { |
panneauFormulaire.setIcon(Images.ICONES.formAjouter()); |
} else if (modeDeCreation.equals(MODE_AJOUTER)) { |
/trunk/src/org/tela_botanica/client/vues/personne/PersonneForm.java |
---|
30,7 → 30,6 |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe; |
import org.tela_botanica.client.modeles.publication.PublicationListe; |
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; |
64,7 → 63,6 |
import com.extjs.gxt.ui.client.widget.button.ButtonBar; |
import com.extjs.gxt.ui.client.widget.form.ComboBox; |
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.LabelField; |
import com.extjs.gxt.ui.client.widget.form.Radio; |
238,7 → 236,7 |
cbProjets.setAllowBlank(false); |
cbProjets.addStyleName(ComposantClass.OBLIGATOIRE); |
cbProjets.addListener(Events.Valid, creerEcouteurChampObligatoire()); |
fsProjet.add(cbProjets, new FormData(450, 0)); |
fsProjet.add(cbProjets, new FormData(250, 0)); |
hmIdentite.put("cbProjets", cbProjets); |
336,14 → 334,12 |
formLayout.setLabelAlign(LabelAlign.TOP); |
LayoutContainer containerNaissance = new LayoutContainer(formLayout); |
DateField dfDateNaissance = new DateField(); |
dfDateNaissance.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy")); |
dfDateNaissance.setFieldLabel("Date de naissance"); |
dfDateNaissance.getMessages().setInvalidText("La valeur saisie n'est pas une date valide. La date doit être au format «jj/mm/aaaa»."); |
//Remplacement du DateField par un champ texte |
TextField tfDateNaissance = new TextField(); |
tfDateNaissance.setFieldLabel("Date de naissance"); |
containerNaissance.add(tfDateNaissance); |
hmIdentite.put("tfDateNaissance", tfDateNaissance); |
containerNaissance.add(dfDateNaissance); |
hmIdentite.put("dfDateNaissance", dfDateNaissance); |
// Lieu naissance |
TextField<String> tfLieuNaissance = new TextField<String>(); |
tfLieuNaissance.setFieldLabel("Lieu de naissance"); |
370,12 → 366,12 |
public void handleEvent(ComponentEvent be) { |
if(((Radio) be.getComponent()).getValue().equals(true)) { |
hmIdentite.getDateField("dfDateDeces").setVisible(true); |
hmIdentite.getTextField("tfDateDeces").setVisible(true); |
hmIdentite.getTextField("tfLieuDeces").setVisible(true); |
} else { |
DateField dfDateDeces = hmIdentite.getDateField("dfDateDeces"); |
dfDateDeces.setValue(null); |
dfDateDeces.setVisible(false); |
TextField tfDateDeces = hmIdentite.getTextField("tfDateDeces"); |
tfDateDeces.setValue(null); |
tfDateDeces.setVisible(false); |
TextField tfLieuDeces = hmIdentite.getTextField("tfLieuDeces"); |
tfLieuDeces.setValue(null); |
384,15 → 380,12 |
} |
}); |
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 de décès"); |
dfDateDeces.setVisible(false); |
TextField tfDateDeces = new TextField(); |
tfDateDeces.setFieldLabel("Date de décès"); |
tfDateDeces.setVisible(false); |
containerDeces.add(dfDateDeces); |
hmIdentite.put("dfDateDeces", dfDateDeces); |
containerDeces.add(tfDateDeces); |
hmIdentite.put("tfDateDeces", tfDateDeces); |
TextField<String> tfLieuDeces = new TextField<String>(); |
tfLieuDeces.setFieldLabel("Lieu de décès"); |
1004,12 → 997,12 |
hmIdentite.getTextField("tfAbreviation").setValue(personne.get("abreviation")); |
hmIdentite.getChampMultiValeurs("abreviationAutre").peupler(personne.getString("truk_abreviation_autre")); |
hmIdentite.getDateField("dfDateNaissance").setValue(personne.getDate("naissance_date")); |
hmIdentite.getTextField("tfDateNaissance").setValue(personne.getAnneeOuDateNaiss()); |
hmIdentite.getTextField("tfLieuNaissance").setValue(personne.get("naissance_lieu")); |
if (personne.estDecedee()) { |
hmIdentite.getDateField("dfDateDeces").setValue(personne.getDate("deces_date")); |
hmIdentite.getTextField("tfDateDeces").setValue(personne.getAnneeOuDateDeces()); |
hmIdentite.getTextField("tfLieuDeces").setValue(personne.get("deces_lieu")); |
Radio rbEstDecede = hmIdentite.getRadio("rbEstDecedee"); |
rbEstDecede.setValue(true); |
1064,7 → 1057,6 |
if ((strRegion!=null)&&(!strRegion.equals(""))) { |
ComboBox<Valeur> cbRegion = hmAdresse.getComboBoxValeur("cbRegion"); |
System.out.println(cbRegion.getStore().getCount()); |
cbRegion.setVisible(true); |
if (cbRegion.getStore().findModel("id_valeur", strRegion) != null) { |
1235,15 → 1227,39 |
personneSelectionnee.setFmtNomComplet(strPrefixe, strSuffixe); |
DateField dfDateNaissance = hmIdentite.getDateField("dfDateNaissance"); |
Date naissanceDate = dfDateNaissance.getValue(); |
personneSelectionnee.setNaissanceDate(naissanceDate); |
//Verifier que la date est soit JJ/MM/AAAA soit AAAA |
String valeurDateNaissance = (String) hmIdentite.getTextField("tfDateNaissance").getValue(); |
if (!UtilString.isEmpty(valeurDateNaissance)) { |
if (valeurDateNaissance.matches("\\d{2}/\\d{2}/\\d{4}")) { |
Date naissanceDate = DateTimeFormat.getFormat("dd/MM/yyyy").parse(valeurDateNaissance); |
personneSelectionnee.setNaissanceDate(naissanceDate); |
} else if (valeurDateNaissance.matches("\\d{4}")) { |
personneSelectionnee.set("naissance_date", valeurDateNaissance + "-00-00"); |
} else { |
lstMessageErreur.add("La date de naissance n'est pas au format jj/mm/AAAA ou AAAA."); |
} |
} |
Radio rbEstDecedee = hmIdentite.getRadio("rbEstDecedee"); |
if (rbEstDecedee.getValue() == true) { |
DateField dfDecesDate = hmIdentite.getDateField("dfDateDeces"); |
String decesLieu = (String) hmIdentite.getTextField("tfLieuDeces").getValue(); |
personneSelectionnee.setDeces(dfDecesDate.getValue(), decesLieu); |
//Verifier que la date est soit JJ/MM/AAAA soit AAAA |
Date dateDeces = null; |
String valeurDateDeces = (String) hmIdentite.getTextField("tfDateDeces").getValue(); |
if (!UtilString.isEmpty(valeurDateDeces)) { |
if (valeurDateDeces.matches("\\d{2}/\\d{2}/\\d{4}")) { |
dateDeces = DateTimeFormat.getFormat("dd/MM/yyyy").parse(valeurDateDeces); |
personneSelectionnee.setDeces(dateDeces, decesLieu); |
} else if (valeurDateDeces.matches("\\d{4}")) { |
personneSelectionnee.set("deces_date", valeurDateDeces + "-00-00"); |
personneSelectionnee.setDecesLieu(decesLieu); |
} else { |
lstMessageErreur.add("La date de deces n'est pas au format jj/mm/AAAA ou AAAA."); |
} |
} |
} else { |
personneSelectionnee.setNonDecedee(); |
} |
/trunk/src/org/tela_botanica/client/vues/personne/PersonneDetailVue.java |
---|
4,7 → 4,7 |
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.LinkedList; |
import java.util.MissingResourceException; |
import java.util.List; |
import org.tela_botanica.client.ComposantId; |
import org.tela_botanica.client.Mediateur; |
14,7 → 14,9 |
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.util.Debug; |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.modeles.publication.PublicationAPersonne; |
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe; |
import org.tela_botanica.client.vues.DetailVue; |
import com.extjs.gxt.ui.client.Registry; |
41,7 → 43,8 |
private TabItem tabAdresse; |
private TabItem tabInfosNat; |
private TabItem tabLogos; |
private TabItem tabPublications; |
private HashMap hmLabelFieldRegion = new HashMap(); |
private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG); |
48,10 → 51,14 |
private boolean ontologieRecue = false; |
private Personne personneAAfficher = null; |
private boolean personneAffichee = false; |
private String tableauPublicationsLieesTpl = ""; |
private String lignePublicationLieeTpl = ""; |
private void chargerOntologie() { |
mediateur.obtenirListeValeurEtRafraichir(this, "pays"); |
mediateur.obtenirListeValeurEtRafraichir(this, "tel"); |
mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonnePublication"); |
} |
58,8 → 65,6 |
public PersonneDetailVue(Mediateur mediateur) { |
super(mediateur); |
chargerOntologie(); |
mediateur.obtenirListeValeurEtRafraichir(this, "pays"); |
setLayout(new FitLayout()); |
83,6 → 88,11 |
tabInfosNat = new TabItem(i18nC.personneInfoNat()); |
tabInfosNat.setScrollMode(Scroll.AUTO); |
//Greg : ajout d'un résumé des publications |
tabPublications = new TabItem(i18nC.tabPublications()); |
tabPublications.setScrollMode(Scroll.AUTO); |
tabPublications.setLayout(new FlowLayout()); |
tabLogos = new TabItem(i18nC.personneLogos()); |
tabLogos.setScrollMode(Scroll.AUTO); |
tabLogos.setLayout(new FlowLayout()); |
94,6 → 104,7 |
tabPanel.add(tabIdentite); |
tabPanel.add(tabAdresse); |
tabPanel.add(tabInfosNat); |
tabPanel.add(tabPublications); |
tabPanel.add(tabLogos); |
panneauPrincipal.add(tabPanel); |
103,6 → 114,9 |
public void afficherDetailPersonne(Personne personne) { |
if (personne != null) { |
String tplEntete = initialiserTplEntete(); |
//Sélection des publication à personne |
mediateur.selectionnerPublicationAPersonne(this, null, personne.getId(), new LinkedList()); |
Params enteteParams = new Params(); |
enteteParams.set("nom", (String) personne.get("fmt_nom_complet")); |
140,7 → 154,7 |
Params tabIdentiteParams = new Params(); |
tabIdentiteParams.set("nom_complet", personne.getString("fmt_nom_complet")); |
tabIdentiteParams.set("abreviation", personne.getString("abreviation")); |
tabIdentiteParams.set("naissance_date", personne.getNaissanceDate()); |
tabIdentiteParams.set("naissance_date", personne.getAnneeOuDateNaiss().equals("") ? mediateur.i18nC.inconnue() : personne.getAnneeOuDateNaiss()); |
tabIdentiteParams.set("naissance_lieu", personne.getString("naissance_lieu")); |
String tplDeces = ""; |
if (personne.estDecedee()) { |
152,7 → 166,7 |
+ i18nC.personneLieuDeces() |
+ ":</b></span> {deces_lieu}<br /><br />"; |
tabIdentiteParams.set("deces_date", personne.getDecesDate()); |
tabIdentiteParams.set("deces_date", personne.getAnneeOuDateDeces().equals("") ? mediateur.i18nC.inconnue() : personne.getAnneeOuDateDeces()); |
tabIdentiteParams.set("deces_lieu", personne.getString("deces_lieu")); |
} |
242,14 → 256,16 |
// Infos naturalistes :Biographie, Spécialité (typé) |
String tplInfosNat = "<div class='{css_corps}'>" |
+ " <div class='{css_fieldset}'>" + " <h2>" |
+ i18nC.personneSpecialite() + "</h1>" |
+ " {specialites}" + " <h2>" |
+ i18nC.personneBiographie() + "</h2>" |
+ " {biographie}" + " " |
+ "<h2>" + i18nC.personneSpecialite() + "</h2>" |
+ " {specialites}" + " <h2>" |
+ i18nC.personneRecolte() + "</h2>" |
+ " {recoltes}" + " </div>" + "</div>"; |
Params prmInfosNat = new Params(); |
// TODO : replace id region par valeur |
prmInfosNat.set("biographie", personne.get("biographie")); |
String specialite = construireTxtTruck(personne.getSpecialite()); |
prmInfosNat.set("specialites", specialite); |
326,10 → 342,103 |
} |
} |
private void initialiserTableauPublicationsLieesTpl() { |
tableauPublicationsLieesTpl = |
"<div class='{css_corps}'>" + |
" <h2>{i18n_titre_publication}</h2>"+ |
" <table>"+ |
" <thead>"+ |
" <tr>" + |
" <th>{i18n_relation}</th>" + |
" <th>{i18n_auteur}</th>" + |
" <th>{i18n_titre}</th>" + |
" <th>{i18n_revue}</th>" + |
" <th>{i18n_editeur}</th>" + |
" <th>{i18n_annee}</th>" + |
" <th>{i18n_nvt}</th>" + |
" <th>{i18n_fascicule}</th>" + |
" <th>{i18n_page}</th>" + |
" </tr>"+ |
" </thead>"+ |
" <tbody>"+ |
" {lignes}"+ |
" </tbody>"+ |
"</table>"; |
} |
private void initialiserLignePublicationLieeTpl() { |
lignePublicationLieeTpl = |
"<tr>"+ |
" <td>{relation}</td>"+ |
" <td>{auteur}</td>"+ |
" <td>{titre}</td>"+ |
" <td>{revue}</td>"+ |
" <td>{editeur}</td>"+ |
" <td>{annee}</td>"+ |
" <td>{nvt}</td>"+ |
" <td>{fascicule}</td>"+ |
" <td>{page}</td>"+ |
"</tr>"; |
} |
/** |
* @author greg |
* Rempli l'onglet des publications liées |
* @param listePublications la liste des publications |
*/ |
private void afficherPublications(PublicationAPersonneListe listePublications) { |
List<PublicationAPersonne> publicationsLiees = listePublications.toList(); |
Iterator<PublicationAPersonne> iterateur = publicationsLiees.iterator(); |
//Onglet Publications |
initialiserTableauPublicationsLieesTpl(); |
Params paramsPublis = new Params(); |
String contenuLignes = ""; |
while (iterateur.hasNext()) { |
initialiserLignePublicationLieeTpl(); |
PublicationAPersonne publicationAPersonneCourante = iterateur.next(); |
Publication publication = publicationAPersonneCourante.getPublicationLiee(); |
Params ligneParams = new Params(); |
ligneParams.set("relation", construireTxtListeOntologie(publicationAPersonneCourante.getRole())); |
ligneParams.set("auteur", publication.getAuteur()); |
ligneParams.set("titre", publication.getTitre()); |
ligneParams.set("revue", publication.getCollection()); |
ligneParams.set("editeur", publication.getEditeur()); |
ligneParams.set("annee", publication.getAnneeParution()); |
ligneParams.set("nvt", publication.getIndicationNvt()); |
ligneParams.set("fascicule", publication.getFascicule()); |
ligneParams.set("page", publication.getPages()); |
contenuLignes += Format.substitute(lignePublicationLieeTpl, ligneParams); |
} |
paramsPublis.set("lignes", contenuLignes); |
paramsPublis.set("i18n_titre_publication", i18nC.tabPublications()); |
paramsPublis.set("i18n_relation", i18nC.publicationAuteurs()); |
paramsPublis.set("i18n_auteur", i18nC.publicationAuteurs()); |
paramsPublis.set("i18n_titre", i18nC.publicationTitre()); |
paramsPublis.set("i18n_revue", i18nC.publicationRevueCollection()); |
paramsPublis.set("i18n_editeur", i18nC.publicationEditeur()); |
paramsPublis.set("i18n_annee", i18nC.publicationDateParution()); |
paramsPublis.set("i18n_nvt", i18nC.publicationNvt()); |
paramsPublis.set("i18n_fascicule", i18nC.publicationFascicule()); |
paramsPublis.set("i18n_page", i18nC.publicationPage()); |
afficherOnglet(tableauPublicationsLieesTpl, paramsPublis, tabPublications); |
} |
public void rafraichir(Object nouvellesDonnees) { |
// FIXME : Ci-dessous, on utilise le booléen personneAffichee pour éviter un affichage répété de personnes. |
// Se règlerait avec une gestion Synchrone/Asynchrone |
// Si on a reçu une personne on en affiche les détails |
if (nouvellesDonnees instanceof Personne) { |
personneAAfficher = (Personne) nouvellesDonnees; |
personneAffichee = false; |
} else if (nouvellesDonnees instanceof ValeurListe) { |
ValeurListe ontologieReceptionnee = (ValeurListe) nouvellesDonnees; |
ajouterListeValeursAOntologie(ontologieReceptionnee); |
358,10 → 467,13 |
} |
} |
} |
} else if (nouvellesDonnees instanceof PublicationAPersonneListe) { |
afficherPublications((PublicationAPersonneListe) nouvellesDonnees); |
} |
if (ontologieRecue && personneAAfficher != null) { |
if (ontologieRecue && personneAAfficher != null && personneAffichee == false) { |
afficherDetailPersonne(personneAAfficher); |
personneAffichee = true; |
} |
} |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionDetailVue.java |
---|
452,7 → 452,7 |
" <span class='{css_label}'>{i18n_digital} :</span> {digital}<br />"+ |
" <span class='{css_label}'>{i18n_digital_pourcent} :</span> {digital_pourcent}<br />"+ |
" <span class='{css_label}'>{i18n_etat} :</span> {etat}<br />"+ |
" <span class='{css_label}'>{i18n_type_donnee} :</span> {type_donnee}<br />"+ |
//DELETEME : " <span class='{css_label}'>{i18n_type_donnee} :</span> {type_donnee}<br />"+ |
" </div>"+ |
" <hr class='{css_clear}'/>"+ |
"</div>"; |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPersonne.java |
---|
32,6 → 32,7 |
import org.tela_botanica.client.vues.FormulaireOnglet; |
import org.tela_botanica.client.vues.personne.PersonneForm; |
import com.extjs.gxt.ui.client.Style.Scroll; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
62,7 → 63,9 |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel; |
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig; |
import com.extjs.gxt.ui.client.widget.grid.RowNumberer; |
import com.extjs.gxt.ui.client.widget.layout.AnchorLayout; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.extjs.gxt.ui.client.widget.layout.FormLayout; |
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem; |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; |
import com.google.gwt.core.client.GWT; |
90,7 → 93,10 |
private FenetreForm fenetreFormulaire = null; |
public CollectionFormPersonne(Formulaire formulaireCourrant) { |
initialiserOnglet(formulaireCourrant); |
setLayout(new FitLayout()); |
setScrollMode(Scroll.AUTO); |
setId(ID); |
setText(Mediateur.i18nC.collectionPersonne()); |
setStyleAttribute("padding", "0"); |
125,7 → 131,9 |
panneau.setHeading(i18nC.collectionPersonneTitre()); |
panneau.setIcon(Images.ICONES.table()); |
panneau.setLayout(new FitLayout()); |
panneau.setFrame(true); |
panneau.setScrollMode(Scroll.AUTO); |
return panneau; |
} |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPublication.java |
---|
21,6 → 21,7 |
import org.tela_botanica.client.vues.FormulaireOnglet; |
import org.tela_botanica.client.vues.publication.PublicationForm; |
import com.extjs.gxt.ui.client.Style.Scroll; |
import com.extjs.gxt.ui.client.core.XTemplate; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
50,6 → 51,7 |
import com.extjs.gxt.ui.client.widget.grid.RowExpander; |
import com.extjs.gxt.ui.client.widget.grid.RowNumberer; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.extjs.gxt.ui.client.widget.layout.FlowLayout; |
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem; |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; |
import com.google.gwt.core.client.GWT; |
73,16 → 75,19 |
private FenetreForm fenetreFormulaire = null; |
public CollectionFormPublication(Formulaire formulaireCourrant) { |
initialiserOnglet(formulaireCourrant); |
setId(ID); |
setText(Mediateur.i18nC.collectionPublication()); |
setStyleAttribute("padding", "0"); |
panneauPrincipal = creerPanneauContenantGrille(); |
setLayout(new FitLayout()); |
barreOutils = creerBarreOutilsGrille(); |
panneauPrincipal.setTopComponent(barreOutils); |
grille = creerGrille(); |
panneauPrincipal.add(grille); |
panneauPrincipal.setLayout(new FitLayout()); |
panneauPrincipal.add(grille); |
add(panneauPrincipal); |
initialiser(); |
372,7 → 377,7 |
modeleDeColonnes.getColumn(0).setWidget(Images.ICONES.information().createImage(), "Info"); |
EditorGrid<CollectionAPublication> grillePublications = new EditorGrid<CollectionAPublication>(storeGrille, modeleDeColonnes); |
grillePublications.setHeight("100%"); |
//grillePublications.setHeight("100%"); |
grillePublications.setBorders(true); |
grillePublications.setSelectionModel(modeleDeSelection); |
grillePublications.addPlugin(expansionPlugin); |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionListeVue.java |
---|
136,7 → 136,7 |
mediateur.clicListeCollection(collection); |
} |
} |
private void clicSupprimerCollection(List<Collection> collectionsASupprimer) { |
if (store.getCount() > 0) { |
mediateur.clicSupprimerCollection(this, collectionsASupprimer); |
165,7 → 165,7 |
int[] pt = collections.getPageTable(); |
pagination.rafraichir(collections.getPageTable()); |
if (collections != null) { |
if (collections != null) { |
List<Collection> liste = collections.toList(); |
store.removeAll(); |
store.add(liste); |
/trunk/src/org/tela_botanica/client/vues/structure/StructureDetailVue.java |
---|
184,7 → 184,7 |
identificationParams.set("acronyme", acronyme); |
identificationParams.set("statut", typePrive+typePublic); |
identificationParams.set("date_fondation", structure.getDateFondationFormatLong()); |
identificationParams.set("date_fondation", structure.getAnneOuDateFondationFormatLong()); |
identificationParams.set("nbre_personnel", structure.getNbrePersonne()); |
identificationParams.set("description", structure.getDescription()); |
199,9 → 199,9 |
identificationParams.set("pays", pays); |
identificationParams.set("latitude_longitude", latitudeLongitude); |
//FIXME identificationParams.set("tel", structure.getTelephoneFixe()); |
identificationParams.set("tel", structure.getTelephoneFixe()); |
identificationParams.set("fax", structure.getFax()); |
//identificationParams.set("fax", structure.getFax()); |
identificationParams.set("courriel", structure.getCourriel()); |
identificationParams.set("web", web); |
/trunk/src/org/tela_botanica/client/vues/structure/StructureForm.java |
---|
1,6 → 1,7 |
package org.tela_botanica.client.vues.structure; |
import java.util.ArrayList; |
import java.util.Date; |
import java.util.Iterator; |
import java.util.List; |
33,6 → 34,7 |
import org.tela_botanica.client.util.UtilString; |
import org.tela_botanica.client.vues.Formulaire; |
import com.extjs.gxt.ui.client.Style.Scroll; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
118,7 → 120,7 |
private TextField<String> mnhnChp = null; |
private ComboBox<InterneValeur> comboTypeStructure = null; |
private TextField<String> nomStructureChp = null; |
private DateField dateFondationChp = null; |
private TextField<String> dateFondationChp = null; |
private TextArea descriptionChp = null; |
private TextArea conditionAccesChp = null; |
private TextArea conditionUsageChp = null; |
342,6 → 344,13 |
} |
} |
//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"); |
} |
// Affichage des messages d'alerte |
if (messages.size() != 0) { |
String[] a = {}; |
349,6 → 358,7 |
MessageBox.alert("Erreurs de saisies", UtilArray.implode(a, "\n\n"), null); |
return false; |
} |
return true; |
} |
662,8 → 672,17 |
structureCollectee.setTypePrive(comboLstpr.getValue().getId()); |
} |
} |
structureCollectee.setDateFondation(dateFondationChp.getValue()); |
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()); |
757,8 → 776,17 |
comboLstpu.setValue(comboLstpu.getStore().findModel("id_valeur", identification.getTypePublic())); |
} |
} |
dateFondationChp.setValue(identification.getDateFondation()); |
String dateFondation = identification.getAnneeOuDateFondation(); |
if (!dateFondation.equals("")) { |
if (dateFondation.endsWith("00-00")) { |
dateFondationChp.setValue(dateFondation.substring(0, 4)); |
} else { |
Date date = DateTimeFormat.getFormat("yyyy-MM-dd").parse(dateFondation); |
dateFondationChp.setValue(DateTimeFormat.getFormat("dd/MM/yyyy").format(date)); |
} |
} |
descriptionChp.setValue(identification.getDescription()); |
conditionAccesChp.setValue(identification.getConditionAcces()); |
conditionUsageChp.setValue(identification.getConditionUsage()); |
1196,7 → 1224,7 |
ContentPanel cp = new ContentPanel(); |
cp.setHeading("Personnes travaillant sur les collections"); |
cp.setIcon(Images.ICONES.table()); |
//cp.setScrollMode(Scroll.AUTO); |
cp.setScrollMode(Scroll.AUTO); |
cp.setLayout(new FitLayout()); |
//cp.setWidth(1250); |
//cp.setHeight("100%"); |
1680,12 → 1708,9 |
ligneTs.add(droiteTs, new ColumnData(0.5)); |
fieldSetIdentite.add(ligneTs); |
dateFondationChp = new DateField(); |
dateFondationChp = new TextField(); |
dateFondationChp.setTabIndex(tabIndex++); |
dateFondationChp.setFieldLabel("Date de fondation"); |
dateFondationChp.getPropertyEditor().getFormat(); |
dateFondationChp.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy")); |
dateFondationChp.getMessages().setInvalidText("La valeur saisie n'est pas une date valide. La date doit être au format «jj/mm/aaaa»."); |
fieldSetIdentite.add(dateFondationChp); |
nbreTotalPersonneStructureChp = new NumberField(); |
/trunk/src/org/tela_botanica/client/vues/publication/PublicationForm.java |
---|
6,11 → 6,13 |
import org.tela_botanica.client.ComposantClass; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.composants.InfoLogger; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.composants.InfoLogger; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.MenuApplicationId; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.modeles.personne.PersonneListe; |
import org.tela_botanica.client.modeles.projet.Projet; |
24,27 → 26,58 |
import org.tela_botanica.client.util.Pattern; |
import org.tela_botanica.client.util.UtilArray; |
import org.tela_botanica.client.util.UtilString; |
import org.tela_botanica.client.vues.FenetreForm; |
import org.tela_botanica.client.vues.Formulaire; |
import org.tela_botanica.client.vues.FormulaireBarreValidation; |
import org.tela_botanica.client.vues.personne.PersonneForm; |
import com.extjs.gxt.ui.client.Style.Scroll; |
import com.extjs.gxt.ui.client.Style.SortDir; |
import com.extjs.gxt.ui.client.core.XTemplate; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.event.KeyListener; |
import com.extjs.gxt.ui.client.event.Listener; |
import com.extjs.gxt.ui.client.event.SelectionListener; |
import com.extjs.gxt.ui.client.store.ListStore; |
import com.extjs.gxt.ui.client.store.Store; |
import com.extjs.gxt.ui.client.store.StoreEvent; |
import com.extjs.gxt.ui.client.widget.HorizontalPanel; |
import com.extjs.gxt.ui.client.widget.Info; |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.MessageBox; |
import com.extjs.gxt.ui.client.widget.Text; |
import com.extjs.gxt.ui.client.widget.button.Button; |
import com.extjs.gxt.ui.client.widget.button.ButtonBar; |
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.FormPanel; |
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.grid.CellEditor; |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig; |
import com.extjs.gxt.ui.client.widget.grid.ColumnData; |
import com.extjs.gxt.ui.client.widget.grid.ColumnModel; |
import com.extjs.gxt.ui.client.widget.grid.EditorGrid; |
import com.extjs.gxt.ui.client.widget.grid.Grid; |
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer; |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel; |
import com.extjs.gxt.ui.client.widget.grid.RowExpander; |
import com.extjs.gxt.ui.client.widget.grid.RowNumberer; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.extjs.gxt.ui.client.widget.layout.FlowLayout; |
import com.extjs.gxt.ui.client.widget.layout.FormData; |
import com.extjs.gxt.ui.client.widget.layout.FormLayout; |
import com.extjs.gxt.ui.client.widget.layout.RowData; |
import com.extjs.gxt.ui.client.widget.layout.RowLayout; |
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem; |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.user.client.Window; |
public class PublicationForm extends Formulaire implements Rafraichissable { |
52,13 → 85,12 |
private Publication publication; |
private PersonneListe auteursInitialListe = null; |
private static boolean publicationAPersonneListeChargementOk = false; |
private PublicationAPersonneListe auteursAjoutes = null; |
private PublicationAPersonneListe auteursSupprimes = null; |
private PersonneListe auteursAjoutes = null; |
private PersonneListe auteursSupprimes = null; |
private FieldSet auteursFieldset = null; |
private LayoutContainer auteursFieldset = null; |
private ComboBox<Projet> projetsCombo = null; |
private ArrayList<ComboBox<Personne>> auteurComboboxListe = null; |
private LayoutContainer conteneurChamps; |
private ListStore<Personne> auteursStorePartage = null; |
private static boolean auteurStorePartageChargementOk = false; |
82,7 → 114,23 |
private static boolean publicationOk = false; |
private static boolean attenteAjoutAuteursOk = true; |
private static boolean attenteSuppressionAuteursOk = true; |
private LayoutContainer zoneHaut, zoneBas; |
private static int idGenere = 1; |
private ToolBar barreOutils = null; |
private EditorGrid<Personne> grille; |
private PersonneListe personnesAjoutees = null; |
private PersonneListe personnesSupprimees = null; |
private ComboBox<Personne> personnesSaisiesComboBox = null; |
private Button personnesBoutonSupprimer = null; |
private Button personnesBoutonModifier = null; |
private ComboBox<Valeur> typeRelationCombo = null; |
private List<Valeur> roles = null; |
private PersonneListe listePersonne = new PersonneListe(); |
private FenetreForm fenetreFormulaire = null; |
public PublicationForm(Mediateur mediateurCourrant, String publicationId) { |
initialiserPublicationForm(mediateurCourrant, publicationId); |
} |
93,6 → 141,7 |
} |
private void initialiserPublicationForm(Mediateur mediateurCourrant, String publicationId) { |
auteursInitialListe = new PersonneListe(); |
initialiserValidation(); |
initialiserAffichageAuteurs(); |
102,18 → 151,24 |
String modeDeCreation = (UtilString.isEmpty(publication.getId()) ? Formulaire.MODE_AJOUTER : Formulaire.MODE_MODIFIER); |
initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.PUBLICATION); |
panneauFormulaire.setLayout(new RowLayout()); |
panneauFormulaire.setStyleAttribute("padding", "0"); |
zoneHaut = new LayoutContainer(new FitLayout()); |
zoneBas = new LayoutContainer(new FlowLayout()); |
panneauFormulaire.setLayout(new FlowLayout()); |
panneauFormulaire.add(zoneHaut, new RowData(1, 0.3)); |
panneauFormulaire.add(zoneBas, new RowData(1, 0.5)); |
panneauFormulaire.setScrollMode(Scroll.AUTO); |
genererTitreFormulaire(); |
creerZoneAuteurs(); |
panneauFormulaire.add(auteursFieldset); |
zoneHaut.add(auteursFieldset); |
creerZoneGeneralites(); |
panneauFormulaire.add(generalitesFieldset); |
zoneBas.add(generalitesFieldset); |
creerZoneEdition(); |
panneauFormulaire.add(editionFieldset); |
zoneBas.add(editionFieldset); |
if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) { |
mediateurCourrant.selectionnerPublication(this, publicationId); |
121,30 → 176,323 |
} |
} |
public void actualiserEtatBoutonsBarreOutils() { |
// Activation des boutons si la grille contient un élément |
if (grille.getStore().getCount() > 0) { |
personnesBoutonSupprimer.enable(); |
personnesBoutonModifier.enable(); |
} |
// Désactivation des boutons si la grille ne contient plus d'élément |
if (grille.getStore().getCount() == 0) { |
personnesBoutonSupprimer.disable(); |
personnesBoutonModifier.disable(); |
} |
} |
private ToolBar creerBarreOutilsGrille() { |
ToolBar barreOutils = new ToolBar(); |
Button ajouterBouton = creerBoutonAjouter(); |
barreOutils.add(ajouterBouton); |
barreOutils.add(new Text(" ou ")); |
personnesSaisiesComboBox = creerComboBoxPersonnesSaisies(); |
barreOutils.add(personnesSaisiesComboBox); |
barreOutils.add(new SeparatorToolItem()); |
personnesBoutonModifier = creerBoutonModifier(); |
barreOutils.add(personnesBoutonModifier); |
barreOutils.add(new SeparatorToolItem()); |
personnesBoutonSupprimer = creerBoutonSupprimer(); |
barreOutils.add(personnesBoutonSupprimer); |
barreOutils.add(new SeparatorToolItem()); |
Button rafraichirBouton = creerBoutonRafraichir(); |
barreOutils.add(rafraichirBouton); |
return barreOutils; |
} |
private Button creerBoutonAjouter() { |
Button bouton = new Button(i18nC.ajouter()); |
bouton.setIcon(Images.ICONES.vcardAjouter()); |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_AJOUTER); |
fenetreFormulaire.show(); |
} |
}); |
return bouton; |
} |
private Button creerBoutonModifier() { |
Button bouton = new Button(i18nC.modifier()); |
bouton.setIcon(Images.ICONES.vcardModifier()); |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
Personne personneSaisieSelectionnee = grille.getSelectionModel().getSelectedItem(); |
if (personneSaisieSelectionnee == null) { |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication()); |
} else { |
fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_MODIFIER); |
fenetreFormulaire.show(); |
} |
} |
}); |
return bouton; |
} |
private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) { |
String personneId = null; |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
Personne personneSaisieSelectionnee = grille.getSelectionModel().getSelectedItem(); |
personneId = personneSaisieSelectionnee.getId(); |
} |
final FenetreForm fenetre = new FenetreForm(""); |
final PersonneForm formulaire = creerFormulairePersonne(fenetre, personneId); |
fenetre.add(formulaire); |
return fenetre; |
} |
private PersonneForm creerFormulairePersonne(final FenetreForm fenetre, final String personneId) { |
PersonneForm formulairePersonne = new PersonneForm(mediateur, personneId, this); |
FormPanel panneauFormulaire = formulairePersonne.getFormulaire(); |
fenetre.setHeading(panneauFormulaire.getHeading()); |
panneauFormulaire.setHeaderVisible(false); |
panneauFormulaire.setTopComponent(null); |
// FIXME : avec GXT-2.1.0 la redéfinition du bottom component ne marche plus. Nous le cachons et en créeons un dans la fenêtre. |
panneauFormulaire.getBottomComponent().hide(); |
SelectionListener<ButtonEvent> ecouteur = creerEcouteurValidationFormulairePersonne(fenetre, formulairePersonne); |
final ButtonBar barreValidation = new FormulaireBarreValidation(ecouteur); |
fenetre.setBottomComponent(barreValidation); |
return formulairePersonne; |
} |
private SelectionListener<ButtonEvent> creerEcouteurValidationFormulairePersonne(final FenetreForm fenetre, final PersonneForm formulaire) { |
SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
String code = ((Button) ce.getComponent()).getData("code"); |
if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) { |
if (formulaire.soumettreFormulaire()) { |
fenetre.hide(); |
} |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) { |
formulaire.soumettreFormulaire(); |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) { |
fenetre.hide(); |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) { |
fenetreFormulaire.hide(); |
fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(formulaire.mode); |
fenetreFormulaire.show(); |
} |
} |
}; |
return ecouteur; |
} |
private Button creerBoutonSupprimer() { |
Button bouton = new Button(i18nC.supprimer()); |
bouton.setIcon(Images.ICONES.vcardSupprimer()); |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
Personne personneSaisieSelectionnee = grille.getSelectionModel().getSelectedItem(); |
if (personneSaisieSelectionnee == null) { |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication()); |
} else { |
supprimerDansGrille(personneSaisieSelectionnee); |
} |
} |
}); |
return bouton; |
} |
private Button creerBoutonRafraichir() { |
Button bouton = new Button(i18nC.rafraichir()); |
bouton.setIcon(Images.ICONES.rafraichir()); |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
actualiserGrille(); |
} |
}); |
return bouton; |
} |
private void actualiserGrille() { |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
// FIXME : c'est la merde |
//mediateur.selectionner(this, null, personneSelectionnee.getId(), "%"); |
} else { |
grille.getStore().removeAll(); |
layout(); |
} |
} |
private ComboBox<Personne> creerComboBoxPersonnesSaisies() { |
ListStore<Personne> personnesSaisiesStore = new ListStore<Personne>(); |
ComboBox<Personne> comboBox = new ComboBox<Personne>(); |
comboBox.setWidth(400); |
comboBox.setEmptyText(i18nC.chercherPersonneSaisi()); |
comboBox.setTriggerAction(TriggerAction.ALL); |
comboBox.setEditable(true); |
comboBox.setDisplayField("fmt_nom_complet"); |
comboBox.setStore(personnesSaisiesStore); |
comboBox.addKeyListener(new KeyListener() { |
public void componentKeyUp(ComponentEvent ce) { |
if (personnesSaisiesComboBox.getRawValue() != null && personnesSaisiesComboBox.getRawValue().length() > 0) { |
if (!ce.isNavKeyPress()) { |
obtenirPersonnesSaisies(personnesSaisiesComboBox.getRawValue()); |
} |
} |
} |
}); |
comboBox.addListener(Events.Select, new Listener<BaseEvent>() { |
public void handleEvent(BaseEvent be) { |
if (personnesSaisiesComboBox.getValue() instanceof Personne) { |
// N'ajouter l'auteur que s'il n'est pas déjà présent dans la grille et dans les valeurs initiales |
Personne personneSaisieSelectionne = personnesSaisiesComboBox.getValue(); |
if (grille.getStore().findModel(personneSaisieSelectionne) != null) { |
Info.display("Information", "La personne est déjà présente dans la liste d'auteurs"); |
} else { |
if (!auteursInitialListe.containsValue(personneSaisieSelectionne)) { |
auteursAjoutes.put(personneSaisieSelectionne.getId(), personneSaisieSelectionne); |
} |
ajouterDansGrille(personneSaisieSelectionne); |
personnesSaisiesComboBox.setValue(null); |
} |
} |
} |
}); |
return comboBox; |
} |
private void obtenirPersonnesSaisies(String nom) { |
mediateur.selectionnerPersonneParNomComplet(this, null, nom+"%"); |
} |
private void ajouterDansGrille(Personne personne) { |
ajouterDansGrille(personne, 0); |
} |
private void ajouterDansGrille(Personne personne, int index) { |
if (personne != null) { |
if (!grille.getStore().contains(personne)) { |
//1) si elle ne fait pas partie des initiaux, ajouter à la liste à ajouter |
if (!auteursInitialListe.containsValue(personne)) { |
auteursAjoutes.put(personne.getId(), personne); |
} |
// L'enlever de la liste à supprimer |
if (auteursSupprimes.containsValue(personne)) { |
auteursSupprimes.remove(personne); |
} |
//2) Ajouter a la grille |
grille.getStore().insert(personne, index); |
grille.getSelectionModel().select(index, false); |
} else { |
InfoLogger.display("Information", "La personne choisie existe déjà dans la liste."); |
} |
} |
} |
/** |
* Met à jour la grille avec les informations contenus dans la variable listePublicationsLiees |
*/ |
private void mettreAJourGrille() { |
grille.getStore().removeAll(); |
grille.getStore().add(listePersonne.toList()); |
} |
private void supprimerDansGrille(Personne personne) { |
if (personne != null) { |
//1) Ajouter a la liste des personne à supprimer uniquement si est présente dans la liste initiale |
if (auteursInitialListe.containsValue(personne)) { |
auteursSupprimes.put(personne.getId(), personne); |
} |
if (auteursAjoutes.containsValue(personne)) { |
auteursAjoutes.remove(personne); |
} |
//2) Supprimer la personne de la liste |
grille.getStore().remove(personne); |
} else { |
Info.display("Information", "Vous devez sélectionner une personne"); |
} |
} |
private EditorGrid<Personne> creerGrille() { |
ListStore<Personne> storeGrille = new ListStore<Personne>(); |
storeGrille.addListener(Store.Add, new Listener<StoreEvent<Personne>>() { |
public void handleEvent(StoreEvent<Personne> ce) { |
actualiserEtatBoutonsBarreOutils(); |
} |
}); |
storeGrille.addListener(Store.Remove, new Listener<StoreEvent<Personne>>() { |
public void handleEvent(StoreEvent<Personne> ce) { |
actualiserEtatBoutonsBarreOutils(); |
} |
}); |
storeGrille.addListener(Store.Update, new Listener<StoreEvent<Personne>>() { |
public void handleEvent(StoreEvent<Personne> ce) { |
if (ce.getRecord().isModified("_role_") && !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) { |
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE); |
} |
} |
}); |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>(); |
colonnes.add(new ColumnConfig("fmt_nom_complet", i18nC.personneNomComplet(), 150)); |
colonnes.add(new ColumnConfig("code_postal", i18nC.personneCodePostal(), 150)); |
colonnes.add(new ColumnConfig("ville", i18nC.personneVille(), 75)); |
colonnes.add(new ColumnConfig("truk_courriel", i18nC.personneCourriel(), 75)); |
GridSelectionModel<Personne> modeleDeSelection = new GridSelectionModel<Personne>(); |
ColumnModel modeleDeColonnes = new ColumnModel(colonnes); |
EditorGrid<Personne> grillePublications = new EditorGrid<Personne>(storeGrille, modeleDeColonnes); |
grillePublications.setHeight("100%"); |
grillePublications.setBorders(true); |
grillePublications.setSelectionModel(modeleDeSelection); |
grillePublications.getView().setForceFit(true); |
grillePublications.setAutoExpandColumn("fmt_nom_complet"); |
grillePublications.setStripeRows(true); |
grillePublications.setTrackMouseOver(true); |
return grillePublications; |
} |
private void genererTitreFormulaire() { |
String titre = i18nC.publicationTitreFormAjout(); |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
titre = i18nC.publicationTitreFormModif(); |
if (publication != null) { |
titre += " - "+i18nC.id()+": "+publication.getId(); |
titre += " - "+i18nC.id()+": "+publication.getId()+" - "+publication.getObjetDeLaPublication(); |
} |
} |
panneauFormulaire.setHeading(titre); |
} |
private void creerZoneAuteurs() { |
FormLayout layout = new FormLayout(); |
layout.setLabelWidth(200); |
// Fieldset Auteur |
auteursFieldset = new FieldSet(); |
auteursFieldset.setHeading(i18nC.publicationAuteursTitre()); |
auteursFieldset.setCollapsible(true); |
auteursFieldset.setLayout(layout); |
Debug.log("Dans creerZoneAuteurs"); |
auteursFieldset = new LayoutContainer(new FitLayout()); |
auteurComboboxListe = new ArrayList<ComboBox<Personne>>(0); |
auteursStorePartage = new ListStore<Personne>(); |
mediateur.clicObtenirListeAuteurs(this); |
creerChampsAuteur(); |
152,23 → 500,15 |
private void creerChampsAuteur() { |
auteursFieldset.removeAll(); |
conteneurChamps = new LayoutContainer(); |
Button ajouterAuteurBouton = new Button(i18nC.publicationAuteurBoutonAjouter()); |
ajouterAuteurBouton.setIcon(Images.ICONES.ajouter()); |
ajouterAuteurBouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent be) { |
creerChampAuteurEtBoutonSupprimer(null); |
} |
}); |
auteursFieldset.add(conteneurChamps); |
auteursFieldset.add(ajouterAuteurBouton); |
barreOutils = creerBarreOutilsGrille(); |
panneauFormulaire.setTopComponent(barreOutils); |
grille = creerGrille(); |
auteursFieldset.add(grille); |
auteursFieldset.layout(); |
} |
public void creerChampAuteurEtBoutonSupprimer(Personne auteur) { |
final HorizontalPanel panneauHorizontal = new HorizontalPanel(); |
/*final HorizontalPanel panneauHorizontal = new HorizontalPanel(); |
LayoutContainer panneauChampTxt = new LayoutContainer(); |
panneauChampTxt.setLayout(new FormLayout()); |
204,7 → 544,7 |
panneauHorizontal.add(supprimerAuteurBouton); |
conteneurChamps.add(panneauHorizontal); |
auteursFieldset.layout(); |
auteursFieldset.layout();*/ |
} |
private ComboBox<Personne> creerComboBoxAuteursSaisis() { |
356,7 → 696,6 |
} |
if (etrePretAPeupler()) { |
Debug.log("Entrain de peupler"); |
peuplerFormulaire(); |
genererTitreFormulaire(); |
initialiserPeupler(); |
363,7 → 702,6 |
} |
if (avoirAuteursMiseAJourCorrectement()) { |
Debug.log("Mise à jour liste auteur"); |
miseAJourAuteursInitialListe(); |
initialiserAuteurs(); |
auteursValideOk = true; |
379,13 → 717,13 |
private void miseAJourAuteursInitialListe() { |
Iterator<String> clesAjoutees = auteursAjoutes.keySet().iterator(); |
while (clesAjoutees.hasNext()) { |
Personne auteurAjoute = auteursAjoutes.get(clesAjoutees.next()).getPersonne(); |
Personne auteurAjoute = auteursAjoutes.get(clesAjoutees.next()); |
auteursInitialListe.put(auteurAjoute.getId(), auteurAjoute); |
} |
Iterator<String> clesSupprimees = auteursSupprimes.keySet().iterator(); |
while (clesSupprimees.hasNext()) { |
Personne auteurSupprime = auteursSupprimes.get(clesSupprimees.next()).getPersonne(); |
Personne auteurSupprime = auteursSupprimes.get(clesSupprimees.next()); |
auteursInitialListe.remove(auteurSupprime.getId()); |
} |
} |
407,13 → 745,18 |
Personne auteur = auteurs.get(it.next()).getPersonne(); |
auteursInitialListe.put(auteur.getId(), auteur); |
} |
Debug.log("Réception liste des auteurs : "+auteurs.size()); |
grille.getStore().removeAll(); |
grille.getStore().add(auteursInitialListe.toList()); |
publicationAPersonneListeChargementOk = true; |
} |
private void rafraichirInformation(Information info) { |
private void rafraichirInformation(Information info) { |
String type = info.getType(); |
if (type.equals("ajout_publication") || type.equals("modif_publication")) { |
// On vient de soumettre le formulaire, on doit passer à l'étape suivante: |
// Validation des auteurs ou fermeture du formulaire |
publicationValideOk = true; |
if (mode.equals(Formulaire.MODE_AJOUTER)) { |
if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) { |
422,38 → 765,42 |
publication.setId(publicationId); |
} |
} |
attenteAjoutAuteursOk = true; |
mediateur.ajouterPublicationAPersonne(this, publication.getId(), auteursAjoutes, PublicationAPersonne.ROLE_AUTEUR); |
attenteAjoutAuteursOk = true; |
} |
soumettreAuteurs(); |
} |
if (info.getType().equals("liste_personne")) { |
PersonneListe listePersonneAuteur = (PersonneListe) info.getDonnee(0); |
List<Personne> liste = listePersonneAuteur.toList(); |
/*List<Personne> liste = listePersonneAuteur.toList(); |
auteursStorePartage.removeAll(); |
auteursStorePartage.add(liste); |
Debug.log("Reception nouvelle liste auteurs"); |
auteurStorePartageChargementOk = true; |
auteurStorePartageChargementOk = true;*/ |
ListStore store = personnesSaisiesComboBox.getStore(); |
store.removeAll(); |
store.add(listePersonneAuteur.toList()); |
} else if (info.getType().equals("ajout_publication_a_personne")) { |
attenteAjoutAuteursOk = false; |
Debug.log("attenteAjoutAuteursOk"); |
} else if (info.getType().equals("suppression_publication_a_personne")) { |
attenteSuppressionAuteursOk = false; |
Debug.log("attenteSuppressionAuteursOk"); |
} else if (info.getType().equals("modif_publication")) { |
Info.display("Modification d'une publication", info.toString()); |
InfoLogger.display("Modification d'une publication", info.toString()); |
} else if (info.getType().equals("ajout_publication")) { |
if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String && ((String) info.getDonnee(0)).matches("[0-9]+")) { |
String publicationId = (String) info.getDonnee(0); |
Info.display("Ajout d'une publication", "La publication '"+publicationId+"' a bien été ajoutée"); |
InfoLogger.display("Ajout d'une publication", "La publication '"+publicationId+"' a bien été ajoutée"); |
} else { |
Info.display("Ajout d'une publication", info.toString()); |
InfoLogger.display("Ajout d'une publication", info.toString()); |
} |
} |
} |
} |
private boolean avoirAuteursMiseAJourCorrectement() { |
boolean ok = false; |
if (attenteAjoutAuteursOk == false && attenteSuppressionAuteursOk == false) { |
ok = true; |
496,8 → 843,7 |
private boolean etrePretAPeupler() { |
boolean ok = false; |
Debug.log("Mode :"+mode.equals(Formulaire.MODE_MODIFIER)+" - PublicationOk :"+publicationOk+" - AuteursAffiches :"+auteursAffiches); |
if (mode.equals(Formulaire.MODE_MODIFIER) && publicationOk && auteursAffiches && editeursOk) { |
if (mode.equals(Formulaire.MODE_MODIFIER) && publicationOk && editeursOk) { |
ok = true; |
} |
return ok; |
505,8 → 851,7 |
private Boolean etreValide() { |
Boolean valide = false; |
//Debug.log("formulaire"+formulaireValideOk+" - Publication :"+publicationValideOk+" - Auteurs :"+auteursValideOk, null); |
if (formulaireValideOk && publicationValideOk && auteursValideOk) { |
if (formulaireValideOk && auteursValideOk) { |
valide = true; |
} |
return valide; |
521,9 → 866,9 |
private void initialiserAuteurs() { |
attenteAjoutAuteursOk = true; |
auteursAjoutes = new PublicationAPersonneListe(); |
auteursAjoutes = new PersonneListe(); |
attenteSuppressionAuteursOk = true; |
auteursSupprimes = new PublicationAPersonneListe(); |
auteursSupprimes = new PersonneListe(); |
} |
private void repandreRafraichissement() { |
542,7 → 887,7 |
formulaireValideOk = verifierFormulaire(); |
if (formulaireValideOk) { |
soumettrePublication(); |
soumettreAuteurs(); |
//Les auteurs seront mis à jour lors du rafraichissement |
} |
return formulaireValideOk; |
} |
562,6 → 907,46 |
attenteAjoutAuteursOk = false; |
attenteSuppressionAuteursOk = false; |
//1) Auteurs ajoutés : |
// - Créer une PublicationAAuteurListe |
PublicationAPersonneListe listeDesAuteurs = new PublicationAPersonneListe(); |
Iterator<String> itAuteur = auteursAjoutes.keySet().iterator(); |
while (itAuteur.hasNext()) { |
PublicationAPersonne publiAPersonne = new PublicationAPersonne(); |
String cle = itAuteur.next(); |
publiAPersonne.setIdPersonne(cle); |
publiAPersonne.setIdPublication(publication.getId()); |
listeDesAuteurs.put(cle, publiAPersonne); |
} |
// - envoyer au mediateur SSI personnes à ajouter |
if (listeDesAuteurs.size() > 0) { |
mediateur.ajouterPublicationAPersonne(this, publication.getId(), listeDesAuteurs, PublicationAPersonne.ROLE_AUTEUR); |
attenteAjoutAuteursOk = true; |
} |
//2) Auteurs supprimés : |
// - Créer une PublicationAPersonneListe |
listeDesAuteurs = new PublicationAPersonneListe(); |
itAuteur = auteursSupprimes.keySet().iterator(); |
while (itAuteur.hasNext()) { |
PublicationAPersonne publiAPersonne = new PublicationAPersonne(); |
String cle = itAuteur.next(); |
publiAPersonne.setIdPersonne(cle); |
publiAPersonne.setIdPublication(publication.getId()); |
listeDesAuteurs.put(cle, publiAPersonne); |
} |
// - Envoyer au médiateur SSI personnes à supprimer |
if (listeDesAuteurs.size() > 0) { |
mediateur.supprimerPublicationAPersonne(this, listeDesAuteurs); |
attenteSuppressionAuteursOk = true; |
} |
/* |
attenteAjoutAuteursOk = false; |
attenteSuppressionAuteursOk = false; |
PersonneListe personnesInitiales = auteursInitialListe; |
PersonneListe personnesActuelles = new PersonneListe(); |
590,7 → 975,7 |
} |
publicationAAuteur.setPersonne(personne); |
publicationAAuteur.setIdRole(PublicationAPersonne.ROLE_AUTEUR); |
auteursAjoutes.put(publicationAAuteur.getId(), publicationAAuteur); |
//FIXME : auteursAjoutes.put(publicationAAuteur.getId(), publicationAAuteur); |
attenteAjoutAuteursOk = true; |
} |
} |
606,7 → 991,7 |
publicationAAuteur.setIdPublication(publication.getId()); |
publicationAAuteur.setPersonne(personne); |
publicationAAuteur.setIdRole(PublicationAPersonne.ROLE_AUTEUR); |
auteursSupprimes.put(publicationAAuteur.getId(), publicationAAuteur); |
//FIXME : auteursSupprimes.put(publicationAAuteur.getId(), publicationAAuteur); |
attenteSuppressionAuteursOk = true; |
} |
} |
615,14 → 1000,13 |
// Execution de les mise à jour pour le mode MODIFICATION |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
if (auteursAjoutes != null && auteursAjoutes.size() != 0) { |
mediateur.ajouterPublicationAPersonne(this, publication.getId(), auteursAjoutes, PublicationAPersonne.ROLE_AUTEUR); |
//FIXME : mediateur.ajouterPublicationAPersonne(this, publication.getId(), auteursAjoutes, PublicationAPersonne.ROLE_AUTEUR); |
} |
if (auteursSupprimes != null && auteursSupprimes.size() != 0) { |
mediateur.supprimerPublicationAPersonne(this, auteursSupprimes); |
//FIXME : mediateur.supprimerPublicationAPersonne(this, auteursSupprimes); |
} |
} |
Debug.log("personnesInitiales:"+personnesInitiales.size()+" - personnesActuelles :"+personnesActuelles.size()+" - auteursSupprimes :"+auteursSupprimes.size()+" - auteursAjoutes :"+auteursAjoutes.size()); |
}*/ |
} |
public boolean verifierFormulaire() { |
629,16 → 1013,10 |
boolean valide = true; |
ArrayList<String> messages = new ArrayList<String>(); |
boolean auteurErreur = true; |
for (int i = 0; i < auteurComboboxListe.size(); i++) { |
if (auteurComboboxListe.get(i).getValue() != null) { |
auteurErreur = false; |
break; |
} |
// Tester si au moins un auteur est présent |
if (grille.getStore().getModels().size() == 0) { |
messages.add("Veuillez saisir au moins un auteur."); |
} |
if (auteurErreur) { |
messages.add("Veuillez saisir au moins un auteur !"); |
} |
String titre = titreChp.getValue(); |
if (titre == null || titre.equals("")) { |
692,10 → 1070,9 |
} |
private Publication collecterPublication() { |
Publication publicationCollectee = (Publication) publication.cloner(new Publication()); |
publicationCollectee.setIdProjet(getValeurComboProjets()); |
publicationCollectee.setAuteur(construireIntituleAuteur()); |
String titre = titreChp.getValue(); |
749,8 → 1126,23 |
} |
private String construireIntituleAuteur() { |
String inituleAuteur = ""; |
int auteursNombre = auteurComboboxListe.size(); |
String intituleAuteur = ""; |
// TODO : ranger par ordre non-alphabétique |
grille.getStore().sort("nom", SortDir.ASC); |
List<Personne> auteurs = grille.getStore().getModels(); |
Iterator<Personne> itAuteurs = auteurs.iterator(); |
while (itAuteurs.hasNext()) { |
Personne personneCourante = itAuteurs.next(); |
intituleAuteur += personneCourante.getNom().toUpperCase() + " " + personneCourante.getPrenom(); |
if (itAuteurs.hasNext()) { |
intituleAuteur+=", "; |
} |
} |
/* |
* TO DELETE:int auteursNombre = auteurComboboxListe.size(); |
* |
for (int i = 0; i < auteursNombre; i++) { |
if (auteurComboboxListe.get(i).getValue() != null) { |
Personne auteur = auteurComboboxListe.get(i).getValue(); |
759,8 → 1151,8 |
inituleAuteur += ", "; |
} |
} |
} |
return inituleAuteur; |
}*/ |
return intituleAuteur; |
} |
private String construireNomComplet() { |
/trunk/src/org/tela_botanica/client |
---|
Property changes: |
Deleted: svn:mergeinfo |
Reverse-merged /branches/v1.0-syrah/src/org/tela_botanica/client:r1136-1261 |