/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; |
} |
} |
} |
/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")); |