Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1292 → Rev 1322

/trunk/src/org/tela_botanica/client/vues/personne/PersonneForm.java
33,6 → 33,7
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.synchronisation.Sequenceur;
import org.tela_botanica.client.util.Pattern;
import org.tela_botanica.client.util.UtilString;
import org.tela_botanica.client.vues.Formulaire;
119,6 → 120,9
private String personneId = null;
private FormBinding binding = null;
//Gestion du mode synchrone
private Sequenceur sequenceur;
//Publi
private ComboBox<Publication> cbPubli;
private ListStore<Publication> storePubli;
135,6 → 139,8
private void initialiserPersonneForm(Mediateur mediateurCourrant, String personneIdCourrant) {
//Initialisation du séquenceur
sequenceur = new Sequenceur();
personne = new Personne();
personne.setId(personneIdCourrant);
personneId = personneIdCourrant;
145,9 → 151,9
initialiserComposants();
genererTitreFormulaire();
mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonnePublication");
mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonnePublication", sequenceur);
if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) {
mediateur.selectionnerPersonne(this, personne, null);
mediateur.selectionnerPersonne(this, personne, null, sequenceur);
}
}
252,7 → 258,7
hmIdentite.put("cbProjets", cbProjets);
mediateur.selectionnerProjet(this, null);
mediateur.selectionnerProjet(this, null, sequenceur);
left.add(fsProjet);
281,7 → 287,7
fsNoms.add(cbPrefixe);
hmIdentite.put("cbPrefixe", cbPrefixe);
mediateur.obtenirListeValeurEtRafraichir(this, "prefixe");
mediateur.obtenirListeValeurEtRafraichir(this, "prefixe", sequenceur);
 
//Prénom
TextField<String> tfPrenom = new TextField<String>();
313,7 → 319,7
fsNoms.add(cbSuffixe);
hmIdentite.put("cbSuffixe", cbSuffixe);
mediateur.obtenirListeValeurEtRafraichir(this, "suffixes");
mediateur.obtenirListeValeurEtRafraichir(this, "suffixes", sequenceur);
 
TextField<String> tfAbreviation = new TextField<String>();
tfAbreviation.setFieldLabel("Abréviation");
484,7 → 490,7
lcAutreInformations1.add(cbSexe, fd);
hmIdentite.put("cbSexe", cbSexe);
mediateur.obtenirListeValeurEtRafraichir(this, "sexe");
mediateur.obtenirListeValeurEtRafraichir(this, "sexe", sequenceur);
//Description
TextArea taDescription = new TextArea();
627,7 → 633,7
hmAdresse.put("tfVille", tfVille);
// MAJ ComboBox
mediateur.obtenirListeValeurEtRafraichir(this, "pays");
mediateur.obtenirListeValeurEtRafraichir(this, "pays", sequenceur);
FieldSet fsAdresse = new FieldSet();
fsAdresse.setHeading("Adresse personnelle");
970,7 → 976,7
private void mettreAJourRegion() {
//Met à jour la combo box en sélectionnant la valeur enregistrée pour la personne
ComboBox<Valeur> cbRegion = hmAdresse.getComboBoxValeur("cbRegion");
if (personneSelectionnee.get("ce_truk_region").toString().startsWith("AUTRE##")) {
if (personneSelectionnee.get("ce_truk_region")!=null && personneSelectionnee.get("ce_truk_region").toString().startsWith("AUTRE##")) {
cbRegion.setRawValue(personneSelectionnee.get("ce_truk_region").toString().replaceFirst("^AUTRE##", ""));
} else if (personneSelectionnee.get("ce_truk_region") != null && cbRegion.getStore().getCount() > 0) {
Valeur valeurRegion = cbRegion.getStore().findModel("id_valeur", personneSelectionnee.get("ce_truk_region"));
/trunk/src/org/tela_botanica/client/vues/personne/PersonneFormPublication.java
283,7 → 283,7
private void actualiserGrille() {
if (mode.equals(Formulaire.MODE_MODIFIER)) {
mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), "%");
mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), "%", null);
} else {
grille.getStore().removeAll();
layout();
669,7 → 669,7
// Ajout des relations PublicationAPersonne
if (publicationsAjoutees.size() != 0) {
//TODO : utiliser le role d'une liste déroulante
mediateur.ajouterPublicationAPersonne(this, publicationsAjoutees, personneSelectionnee.getId(), null);
mediateur.ajouterPublicationAPersonne(this, publicationsAjoutees, personneSelectionnee.getId(), null, null);
}
// Suppression des relations PublicationAPersonne
if (publicationsSupprimees.size() != 0) {
/trunk/src/org/tela_botanica/client/vues/personne/PersonneVue.java
5,9 → 5,12
import org.tela_botanica.client.composants.InfoLogger;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
import org.tela_botanica.client.modeles.ValeurListe;
import org.tela_botanica.client.modeles.personne.Personne;
import org.tela_botanica.client.modeles.personne.PersonneListe;
import org.tela_botanica.client.synchronisation.Sequenceur;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.util.UtilString;
 
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.LayoutRegion;
24,6 → 27,9
private PersonneDetailVue panneauPersonneDetail;
private Mediateur mediateur = null;
 
//Sequenceur pour la gestion du synchrone
private Sequenceur sequenceur = new Sequenceur();
public PersonneVue(Mediateur mediateur) {
this.mediateur = mediateur;
32,6 → 38,12
setLayout(layout);
 
panneauPersonneListe = new PersonneListeVue();
//Charger les ontologies nécessaires à l'affichage des personnes
mediateur.obtenirListeValeurEtRafraichir(this, "pays", sequenceur);
mediateur.obtenirListeValeurEtRafraichir(this, "tel", sequenceur);
mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonnePublication", sequenceur);
this.add(panneauPersonneListe, new BorderLayoutData(LayoutRegion.CENTER));
 
panneauPersonneDetail = new PersonneDetailVue(mediateur);
43,15 → 55,18
 
public void rafraichir(Object nouvellesDonnees) {
if (nouvellesDonnees instanceof Personne) {
panneauPersonneDetail.rafraichir((Personne) nouvellesDonnees);
sequenceur.empilerRafraichissement(panneauPersonneDetail, (Personne) nouvellesDonnees);
//panneauPersonneDetail.rafraichir((Personne) nouvellesDonnees);
} else if (nouvellesDonnees instanceof PersonneListe) {
panneauPersonneListe.rafraichir((PersonneListe) nouvellesDonnees);
} else if (nouvellesDonnees instanceof Information) {
Information info = (Information) nouvellesDonnees;
// Affichage des éventuels messages de déboguage ou d'alerte
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
if (!UtilString.isEmpty(info.getMessages())) {
GWT.log(info.getMessages().toString(), null);
}
// Traitement en fonction des types d'information
if (info.getType().equals("liste_personne")) {
panneauPersonneListe.rafraichir((PersonneListe) info.getDonnee(0));
59,6 → 74,8
} else {
panneauPersonneListe.rafraichir(info);
}
} else if (nouvellesDonnees instanceof ValeurListe) {
panneauPersonneListe.rafraichir((ValeurListe) nouvellesDonnees);
} else {
GWT.log(mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
}
/trunk/src/org/tela_botanica/client/vues/personne/PersonneListeVue.java
174,7 → 174,6
store.removeAll();
store.add(liste);
mediateur.desactiverChargement();
mediateur.actualiserPanneauCentral();
grille.fireEvent(Events.ViewReady);
}
/trunk/src/org/tela_botanica/client/vues/personne/PersonneDetailVue.java
11,12 → 11,12
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.configuration.Configuration;
import org.tela_botanica.client.interfaces.Rafraichissable;
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.modeles.publication.Publication;
import org.tela_botanica.client.modeles.publication.PublicationAPersonne;
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe;
import org.tela_botanica.client.synchronisation.Sequenceur;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.vues.DetailVue;
 
49,24 → 49,19
private HashMap hmLabelFieldRegion = new HashMap();
private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
private boolean ontologieRecue = false;
//private boolean ontologieRecue = false;
private Personne personneAAfficher = null;
 
private boolean personneAffichee = false;
//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");
}
private Sequenceur sequenceur = new Sequenceur();
public PersonneDetailVue(Mediateur mediateur) {
super(mediateur);
chargerOntologie();
 
//chargerOntologie(); -> Les ontologies sont chargées plus tôt, dans la vue PersonneVue
setLayout(new FitLayout());
 
entete = new Html();
89,7 → 84,6
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());
322,7 → 316,7
 
while (itComposants.hasNext()) {
String region = itComposants.next();
mediateur.obtenirValeurEtRafraichir(this, "region", region);
mediateur.obtenirValeurEtRafraichir(this, "region", region, sequenceur);
}
}
 
432,50 → 426,14
}
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);
ontologieRecue = true;
// Remplacer ci-dessous par Ontologie
ValeurListe listeValeur = (ValeurListe) nouvellesDonnees;
if (listeValeur.getId().equals(config.getListeId("region"))) {
Collection colCleListeValeur = listeValeur.keySet();
Iterator<String> itLv = colCleListeValeur.iterator();
while (itLv.hasNext()) {
String idRegion = itLv.next();
Valeur region = listeValeur.get(idRegion);
 
if (region != null) {
 
String strRegionId = region.getAbreviation();
 
LinkedList<LabelField> listComposantsRegion = (LinkedList) hmLabelFieldRegion.get(strRegionId);
for (int i = 0; i < listComposantsRegion.size(); i++) {
LabelField lfRegion = listComposantsRegion.get(i);
lfRegion.setFieldLabel(region.getNom());
}
 
}
}
}
if (nouvellesDonnees instanceof ValeurListe) {
ajouterListeValeursAOntologie((ValeurListe) nouvellesDonnees);
} else if (nouvellesDonnees instanceof Personne) {
afficherDetailPersonne((Personne) nouvellesDonnees);
} else if (nouvellesDonnees instanceof PublicationAPersonneListe) {
afficherPublications((PublicationAPersonneListe) nouvellesDonnees);
}
if (ontologieRecue && personneAAfficher != null && personneAffichee == false) {
afficherDetailPersonne(personneAAfficher);
personneAffichee = true;
}
}
 
}