Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1013 → Rev 1014

/trunk/src/org/tela_botanica/client/vues/personne/PersonneFormPublication.java
1,6 → 1,8
package org.tela_botanica.client.vues.personne;
 
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
 
import org.tela_botanica.client.ComposantClass;
11,7 → 13,6
import org.tela_botanica.client.modeles.Valeur;
import org.tela_botanica.client.modeles.ValeurListe;
import org.tela_botanica.client.modeles.aDonnee;
import org.tela_botanica.client.modeles.collection.CollectionAPersonne;
import org.tela_botanica.client.modeles.personne.Personne;
import org.tela_botanica.client.modeles.publication.Publication;
import org.tela_botanica.client.modeles.publication.PublicationAPersonne;
18,6 → 19,7
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.UtilString;
import org.tela_botanica.client.vues.FenetreForm;
import org.tela_botanica.client.vues.Formulaire;
import org.tela_botanica.client.vues.FormulaireBarreValidation;
73,6 → 75,8
private Button publicationsBoutonSupprimer = null;
private Button publicationsBoutonModifier = null;
private ComboBox<Valeur> typeRelationCombo = null;
private List<Valeur> roles = null;
private PublicationAPersonneListe listePublicationsLiees = new PublicationAPersonneListe();
private FenetreForm fenetreFormulaire = null;
87,7 → 91,6
panneauPrincipal.setTopComponent(barreOutils);
grille = creerGrille();
panneauPrincipal.add(grille);
mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonnePublication");
add(panneauPrincipal);
initialiser();
101,11 → 104,14
// Actualisation de l'état des boutons de la barre d'outils
actualiserEtatBoutonsBarreOutils();
mettreAJourPersonne();
}
public void mettreAJourPersonne() {
personneSelectionnee = ((PersonneForm) formulaire).personneSelectionnee;
//Boucle sur les role pour trouver les publication à personne
if (roles != null) {
mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), roles);
}
}
private ContentPanel creerPanneauContenantGrille() {
309,30 → 315,34
private void ajouterDansGrille(Publication publication, int index) {
if (publication != null) {
/*CollectionAPublication publicationLiee = new CollectionAPublication();
publicationLiee.setPublication(publication);
publicationLiee.setIdPublication(publication.getId());
// Gestion de l'id de la collection
if (mode.equals(Formulaire.MODE_MODIFIER)) {
publicationLiee.setIdCollection(collection.getId());
if (!listePublicationsLiees.containsKey(publication.getId())) {
PublicationAPersonne publicationLiee = new PublicationAPersonne();
publicationLiee.setPersonne(personneSelectionnee);
publicationLiee.setPublicationLiee(publication);
publicationLiee.setIdPublication(publication.getId());
publicationLiee.set("_etat_", aDonnee.ETAT_AJOUTE);
listePublicationsLiees.put(publication.getId(), publicationLiee);
 
// Ajout à la grille
grille.stopEditing();
grille.getStore().insert(publicationLiee, 0);
grille.startEditing(index, 0);
grille.getSelectionModel().select(index, false);
} else {
Info.display("Information", "La publication choisie existe déjà dans la liste.");
}
*/
PublicationAPersonne publicationLiee = new PublicationAPersonne();
publicationLiee.setPersonne(personneSelectionnee);
publicationLiee.setPublicationLiee(publication);
publicationLiee.setIdPublication(publication.getId());
publicationLiee.set("_etat_", aDonnee.ETAT_AJOUTE);
// Ajout à la grille
grille.stopEditing();
grille.getStore().insert(publicationLiee, 0);
grille.startEditing(index, 0);
grille.getSelectionModel().select(index, false);
}
}
/**
* Met à jour la grille avec les informations contenus dans la variable listePublicationsLiees
*/
private void mettreAJourGrille() {
grille.getStore().removeAll();
grille.getStore().add(listePublicationsLiees.toList());
}
private void supprimerDansGrille(PublicationAPersonne publicationLiee) {
if (publicationLiee != null) {
// Ajout de la personne supprimée à la liste
424,12 → 434,14
public String render(PublicationAPersonne modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PublicationAPersonne> store, Grid<PublicationAPersonne> grille) {
// Gestion du texte afficher dans la cellule
String role = modele.get("_role_");
if (typeRelationCombo.getStore() != null && role.matches("[0-9]+")) {
String roleNom = "";
if (typeRelationCombo.getStore() != null && role!=null && role.matches("[0-9]+")) {
roleNom = typeRelationCombo.getStore().findModel("id_valeur", role).getNom();
role = typeRelationCombo.getStore().findModel("id_valeur", role).getId();
}
modele.set("_role_", role);
return role;
modele.set("_etat_", aDonnee.ETAT_MODIFIE);
return roleNom;
}
};
437,6 → 449,7
ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonneCollection(), 75);
typeRelationColonne.setEditor(editeurRelation);
typeRelationColonne.setRenderer(relationRendu);
colonnes.add(typeRelationColonne);
colonnes.add(new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150));
513,13 → 526,27
Information info = (Information) nouvellesDonnees;
rafraichirInformation(info);
} else if (nouvellesDonnees instanceof ValeurListe) {
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
if (listeValeurs.getId().equals(config.getListeId("relationPersonnePublication"))) {
Formulaire.rafraichirComboBox(listeValeurs, typeRelationCombo);
roles = listeValeurs.toList();
mettreAJourPersonne();
}
} else if (nouvellesDonnees instanceof PublicationListe) {
PublicationListe listePublications = (PublicationListe) nouvellesDonnees;
rafraichirPublicationListe(listePublications);
} else if (nouvellesDonnees instanceof PublicationAPersonneListe) {
PublicationAPersonneListe papl = (PublicationAPersonneListe) nouvellesDonnees;
List<PublicationAPersonne> paplListe = papl.toList();
if (paplListe.size()>0){
Iterator<PublicationAPersonne> it = paplListe.iterator();
while (it.hasNext()) {
PublicationAPersonne pap = it.next();
listePublicationsLiees.put(pap.getPublicationLiee().getId(), pap);
}
mettreAJourGrille();
}
} else {
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
}
581,11 → 608,11
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);
PublicationAPersonne relationAAjouter = (PublicationAPersonne) publicationLiee.cloner(new PublicationAPersonne());
publicationsAjoutees.put("id"+idGenere++, relationAAjouter);
Debug.log(publicationLiee.toString());
}
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
publicationsAjoutees.put("id"+idGenere++, publicationLiee);
Debug.log(publicationLiee.toString());
592,6 → 619,7
}
// Initialisation de la grille
publicationLiee.set("_etat_", "");
}
}
grille.getStore().commitChanges();
598,6 → 626,21
}
}
public List verifier() {
List lstMessageErreur = new LinkedList<String>();
//Vérifier les roles
List<PublicationAPersonne> listePublis = grille.getStore().getModels();
Iterator<PublicationAPersonne> itPublis = listePublis.iterator();
while (itPublis.hasNext()) {
PublicationAPersonne publi = itPublis.next();
if (UtilString.isEmpty((String) publi.get("_role_"))) {
lstMessageErreur.add("Vous devez choisir le rôle de la relation " + grille.getStore().indexOf(publi));
}
}
return lstMessageErreur;
}
public void soumettre() {
if (mode.equals(Formulaire.MODE_MODIFIER)) {
if (publicationsAjoutees.size() == 0 && publicationsSupprimees.size() == 0) {