7,6 → 7,7 |
|
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.modeles.Information; |
81,6 → 82,9 |
private FenetreForm fenetreFormulaire = null; |
|
public PersonneFormPublication(Formulaire formulaireCourrant) { |
|
Debug.log("|> PersonneFormPublication : [constructeur]"); |
|
initialiserOnglet(formulaireCourrant); |
setId("publication"); |
setText(Mediateur.i18nC.collectionPublication()); |
97,6 → 101,9 |
} |
|
private void initialiser() { |
|
Debug.log("|> PersonneFormPublication.initialiser()"); |
|
// Remise à zéro des modification dans la liste des auteurs |
idGenere = 1; |
publicationsAjoutees = new PublicationAPersonneListe(); |
107,10 → 114,35 |
} |
|
public void mettreAJourPersonne() { |
|
Debug.log("|> *** BEGIN PersonneFormPublication.mettreAJourPersonne()"); |
|
personneSelectionnee = ((PersonneForm) formulaire).personneSelectionnee; |
|
Debug.log("|--> PersonneFormPublication.mettreAJourPersonne : personneSelectionnee="+personneSelectionnee.toString()); |
|
if (personneSelectionnee==null) Debug.log("|> *** (personneSelectionnee==null)"); |
else Debug.log("|> *** (personneSelectionnee!=null)"); |
|
//Boucle sur les role pour trouver les publication à personne |
if ((roles != null) && (personneSelectionnee!=null)) { |
|
// FIXME ! |
//------------------- |
// Author : Cyprien |
//------------------- |
// J'ai rajouté le test (toString()!="") parce que bien que l'objet personneSelectionne soit vide, (personneSelectionnee!=null) retournait |
// tout de meme VRAI |
// Mais le vrai problème, c'est que personneSelectionne puisse être nul ! personneSelectionne devrait toujours etre affecté à quelqu'un. |
// De plus, il y a un étrange comportement lorsque l'on clique sur "modifier" une personne : je ne sais pas pourquoi mais les opérations |
// s'effectuent deux fois au lieu d'une, c-a-d que le formulaire lance deux fois l'operation rafraichir au lieu d'une ... et l'opération |
// rafraichir lance à son tour de nombreuses opérations qui en conséquence sont effectuées deux fois au lieu d'une |
if ((roles != null) && (personneSelectionnee!=null) && (!personneSelectionnee.toString().equals(""))) { |
|
mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), roles); |
|
Debug.log("|--> PersonneFormPublication.mettreAJourPersonne : selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), roles)"); |
Debug.log("| avec personneSelectionnee.getId()="+personneSelectionnee.getId()); |
Debug.log("|> END PersonneFormPublication.mettreAJourPersonne()"); |
} |
} |
|
176,7 → 208,7 |
PublicationAPersonne publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem(); |
|
if (publicationSaisieSelectionnee == null) { |
Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication()); |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication()); |
} else { |
fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_MODIFIER); |
fenetreFormulaire.show(); |
247,7 → 279,7 |
public void componentSelected(ButtonEvent ce) { |
PublicationAPersonne publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem(); |
if (publicationSaisieSelectionnee == null) { |
Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication()); |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication()); |
} else { |
supprimerDansGrille(publicationSaisieSelectionnee); |
} |
269,6 → 301,9 |
} |
|
private void actualiserGrille() { |
|
Debug.log("|> PersonneFormPublication.actualiserGrille()"); |
|
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), "%"); |
} else { |
314,8 → 349,9 |
} |
|
private void ajouterDansGrille(Publication publication, int index) { |
Debug.log("|> PersonneFormPublication.ajouterDansGrille(Publication publication, int index)"); |
if (publication != null) { |
|
Debug.log("|--> publication != null"); |
if (!listePublicationsLiees.containsKey(publication.getId())) { |
PublicationAPersonne publicationLiee = new PublicationAPersonne(); |
publicationLiee.setPersonne(personneSelectionnee); |
324,6 → 360,9 |
publicationLiee.set("_etat_", aDonnee.ETAT_AJOUTE); |
listePublicationsLiees.put(publication.getId(), publicationLiee); |
|
Debug.log("|--> personneSelectionneeID="+personneSelectionnee.getId()); |
Debug.log("|--> publicationID="+publication.getId()); |
|
// Ajout à la grille |
grille.stopEditing(); |
grille.getStore().insert(publicationLiee, 0); |
330,7 → 369,7 |
grille.startEditing(index, 0); |
grille.getSelectionModel().select(index, false); |
} else { |
Info.display("Information", "La publication choisie existe déjà dans la liste."); |
InfoLogger.display("Information", "La publication choisie existe déjà dans la liste."); |
} |
} |
} |
339,6 → 378,9 |
* Met à jour la grille avec les informations contenus dans la variable listePublicationsLiees |
*/ |
private void mettreAJourGrille() { |
|
Debug.log("|> PersonneFormPublication.mettreAJourGrille()"); |
|
grille.getStore().removeAll(); |
grille.getStore().add(listePublicationsLiees.toList()); |
} |
361,6 → 403,9 |
} |
|
private EditorGrid<PublicationAPersonne> creerGrille() { |
|
Debug.log("|> PersonneFormPublication.creerGrille()"); |
|
ListStore<PublicationAPersonne> storeGrille = new ListStore<PublicationAPersonne>(); |
storeGrille.addListener(Store.Add, new Listener<StoreEvent<PublicationAPersonne>>() { |
public void handleEvent(StoreEvent<PublicationAPersonne> ce) { |
404,7 → 449,6 |
public Object preProcessValue(Object valeur) { |
Valeur retour = null; |
if (valeur != null ) { |
Debug.log(valeur.toString()); |
if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) { |
retour = typeRelationCombo.getStore().findModel("nom", valeur.toString()); |
} else if (typeRelationCombo.getStore().findModel("abr", valeur.toString()) != null) { |
522,10 → 566,16 |
} |
|
public void rafraichir(Object nouvellesDonnees) { |
|
Debug.log("|> PersonneFormPublication.rafraichir() BEGIN"); |
|
if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
rafraichirInformation(info); |
} else if (nouvellesDonnees instanceof ValeurListe) { |
|
Debug.log("|--> instanceof ValeurListe"); |
|
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees; |
if (listeValeurs.getId().equals(config.getListeId("relationPersonnePublication"))) { |
Formulaire.rafraichirComboBox(listeValeurs, typeRelationCombo); |
533,26 → 583,45 |
mettreAJourPersonne(); |
} |
} else if (nouvellesDonnees instanceof PublicationListe) { |
|
Debug.log("|--> instanceof PublicationListe"); |
|
PublicationListe listePublications = (PublicationListe) nouvellesDonnees; |
rafraichirPublicationListe(listePublications); |
} else if (nouvellesDonnees instanceof PublicationAPersonneListe) { |
|
Debug.log("|--> instanceof PublicationAPersonneListe"); |
|
PublicationAPersonneListe papl = (PublicationAPersonneListe) nouvellesDonnees; |
List<PublicationAPersonne> paplListe = papl.toList(); |
if (paplListe.size()>0){ |
|
Debug.log("|--> paplListe.size()>0"); |
Debug.log("|--> paplListe="+paplListe.toString()); |
|
Iterator<PublicationAPersonne> it = paplListe.iterator(); |
while (it.hasNext()) { |
PublicationAPersonne pap = it.next(); |
|
Debug.log("|--> listePublicationsLiees.size="+listePublicationsLiees.size()); |
|
listePublicationsLiees.put(pap.getPublicationLiee().getId(), pap); |
} |
mettreAJourGrille(); |
|
} |
else { |
Debug.log("|--> paplListe.size()<=0"); |
} |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
Debug.log("|> PersonneFormPublication.rafraichir() END"); |
} |
|
private void rafraichirPublicationListe(PublicationListe listePublications) { |
|
Debug.log("|> PersonneFormPublication.rafraichirPublicationListe(PublicationListe listePublications)"); |
|
publicationsSaisiesComboBox.getStore().removeAll(); |
publicationsSaisiesComboBox.getStore().add(listePublications.toList()); |
publicationsSaisiesComboBox.expand(); |
559,6 → 628,9 |
} |
|
public void rafraichirInformation(Information info) { |
|
Debug.log("|> PersonneFormPublication.rafraichirInformation(Information info) BEGIN"); |
|
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) { |
GWT.log("MESSAGES:\n"+info.getMessages().toString(), null); |
} |
583,9 → 655,9 |
ajouterDansGrille(publication); |
} |
} else if (type.equals("suppression_collection_a_publication")) { |
Info.display("Suppression des publications liées à la collection", info.toString()); |
InfoLogger.display("Suppression des publications liées à la collection", info.toString()); |
} else if (type.equals("ajout_collection_a_publication")) { |
Info.display("Ajout des publications liées à la collection", info.toString()); |
InfoLogger.display("Ajout des publications liées à la collection", info.toString()); |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(info.getClass(), this.getClass()), null); |
} |
595,11 → 667,14 |
grille.getStore().removeAll(); |
grille.getStore().add(personneSelectionnee.getPublicationsLiees().toList()); |
layout(); |
Info.display(i18nC.chargementPublication(), i18nC.ok()); |
InfoLogger.display(i18nC.chargementPublication(), i18nC.ok()); |
|
} |
|
public void collecter() { |
|
Debug.log("|*** PersonneFormPublication.collecter() BEGIN"); |
|
if (etreAccede()) { |
int nbrePublication = grille.getStore().getCount(); |
for (int i = 0; i < nbrePublication; i++) { |
608,14 → 683,16 |
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) { |
// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role |
publicationsSupprimees.put("id"+idGenere++, publicationLiee); |
|
Debug.log("|--> PersonneFormPublication.collecter(), ETAT_MODIFIE, relationAAjouter, clonage de publicationLiee"); |
PublicationAPersonne relationAAjouter = (PublicationAPersonne) publicationLiee.cloner(new PublicationAPersonne()); |
publicationsAjoutees.put("id"+idGenere++, relationAAjouter); |
Debug.log(publicationLiee.toString()); |
Debug.log("|--> ETAT_MODIFE, PublicationLiee = "+publicationLiee.toString()); |
} |
|
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) { |
publicationsAjoutees.put("id"+idGenere++, publicationLiee); |
Debug.log(publicationLiee.toString()); |
Debug.log("|--> ETAT_AJOUTE, PublicationLiee = "+publicationLiee.toString()); |
} |
// Initialisation de la grille |
publicationLiee.set("_etat_", ""); |
624,10 → 701,14 |
} |
grille.getStore().commitChanges(); |
} |
|
Debug.log("|*** PersonneFormPublication.collecter() END"); |
} |
|
public List verifier() { |
|
Debug.log("|> PersonneFormPublication.verifier()"); |
|
List lstMessageErreur = new LinkedList<String>(); |
//Vérifier les roles |
List<PublicationAPersonne> listePublis = grille.getStore().getModels(); |
642,21 → 723,30 |
} |
|
public void soumettre() { |
|
Debug.log("<8-8> BEGIN PersonneFormPublication.soumettre()"); |
|
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
if (publicationsAjoutees.size() == 0 && publicationsSupprimees.size() == 0) { |
Info.display("Modification des publications liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié."); |
InfoLogger.display("Modification des publications liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié."); |
} else { |
// Ajout des relations CollectionAPublication |
// Ajout des relations PublicationAPersonne |
if (publicationsAjoutees.size() != 0) { |
//TODO : utiliser le role d'une liste déroulante |
|
Debug.log("<8-8> PersonneFormPublication - Appel à mediateur.ajouterPublicationAPersonne()"); |
mediateur.ajouterPublicationAPersonne(this, publicationsAjoutees, personneSelectionnee.getId(), null); |
} |
// Suppression des relations CollectionAPublication |
// Suppression des relations PublicationAPersonne |
if (publicationsSupprimees.size() != 0) { |
|
Debug.log("<8-8> PersonneFormPublication - Appel à mediateur.supprimerPublicationAPersonne()"); |
mediateur.supprimerPublicationAPersonne(this, publicationsSupprimees); |
} |
} |
} |
|
Debug.log("<8-8> END PersonneFormPublication.soumettre()"); |
} |
|
private void obtenirPublicationsSaisies(String nom) { |