Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1209 → Rev 1210

/trunk/src/org/tela_botanica/client/vues/personne/PersonneFormPublication.java
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);
323,6 → 359,9
publicationLiee.setIdPublication(publication.getId());
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();
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,9 → 701,13
}
grille.getStore().commitChanges();
}
Debug.log("|*** PersonneFormPublication.collecter() END");
}
public List verifier() {
 
Debug.log("|> PersonneFormPublication.verifier()");
List lstMessageErreur = new LinkedList<String>();
//Vérifier les roles
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) {