Rev 883 | Rev 901 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client;import java.util.Iterator;import java.util.List;import org.tela_botanica.client.composants.AideFenetre;import org.tela_botanica.client.composants.IdentificationFenetre;import org.tela_botanica.client.composants.ParametreFenetre;import org.tela_botanica.client.i18n.Constantes;import org.tela_botanica.client.i18n.ErrorMessages;import org.tela_botanica.client.interfaces.Rafraichissable;import org.tela_botanica.client.modeles.Collection;import org.tela_botanica.client.modeles.CollectionAPersonne;import org.tela_botanica.client.modeles.CollectionAPublication;import org.tela_botanica.client.modeles.CollectionAPublicationListe;import org.tela_botanica.client.modeles.CollectionListe;import org.tela_botanica.client.modeles.Configuration;import org.tela_botanica.client.modeles.Information;import org.tela_botanica.client.modeles.MenuApplicationId;import org.tela_botanica.client.modeles.Personne;import org.tela_botanica.client.modeles.PersonneListe;import org.tela_botanica.client.modeles.Projet;import org.tela_botanica.client.modeles.ProjetListe;import org.tela_botanica.client.modeles.Publication;import org.tela_botanica.client.modeles.PublicationListe;import org.tela_botanica.client.modeles.Structure;import org.tela_botanica.client.modeles.StructureAPersonne;import org.tela_botanica.client.modeles.CollectionAPersonneListe;import org.tela_botanica.client.modeles.StructureAPersonneListe;import org.tela_botanica.client.modeles.StructureConservation;import org.tela_botanica.client.modeles.StructureListe;import org.tela_botanica.client.modeles.StructureValorisation;import org.tela_botanica.client.modeles.Utilisateur;import org.tela_botanica.client.modeles.ValeurListe;import org.tela_botanica.client.vues.CollectionForm;import org.tela_botanica.client.vues.CollectionListeVue;import org.tela_botanica.client.vues.CollectionVue;import org.tela_botanica.client.vues.ContenuVue;import org.tela_botanica.client.vues.EnteteVue;import org.tela_botanica.client.vues.Formulaire;import org.tela_botanica.client.vues.PersonneForm;import org.tela_botanica.client.vues.ProjetForm;import org.tela_botanica.client.vues.ProjetVue;import org.tela_botanica.client.vues.PublicationForm;import org.tela_botanica.client.vues.StructureForm;import org.tela_botanica.client.vues.PersonneVue;import org.tela_botanica.client.vues.PopupChargement;import org.tela_botanica.client.vues.PublicationVue;import org.tela_botanica.client.vues.StatutVue;import org.tela_botanica.client.vues.StructureVue;import org.tela_botanica.client.vues.MenuVue;import com.extjs.gxt.ui.client.Registry;import com.extjs.gxt.ui.client.Style.LayoutRegion;import com.extjs.gxt.ui.client.event.Listener;import com.extjs.gxt.ui.client.event.MessageBoxEvent;import com.extjs.gxt.ui.client.util.Margins;import com.extjs.gxt.ui.client.widget.Component;import com.extjs.gxt.ui.client.widget.Dialog;import com.extjs.gxt.ui.client.widget.Info;import com.extjs.gxt.ui.client.widget.MessageBox;import com.extjs.gxt.ui.client.widget.Viewport;import com.extjs.gxt.ui.client.widget.button.Button;import com.extjs.gxt.ui.client.widget.layout.BorderLayout;import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;import com.google.gwt.core.client.GWT;import com.google.gwt.i18n.client.Dictionary;import com.google.gwt.user.client.Window;import com.google.gwt.user.client.ui.RootPanel;public class Mediateur implements Rafraichissable {private Viewport viewport;private Modele modele = null;public static final Constantes i18nC = getI18nConstante();public static final ErrorMessages i18nM = getI18nMessage();private EnteteVue panneauNord = null;private MenuVue panneauOuest = null;private ContenuVue panneauCentre = null;private StatutVue panneauSud = null;private IdentificationFenetre fenetreIdentification = null;public Mediateur() {// Enregistrement du Médiateur dans le RegistreRegistry.register(RegistreId.MEDIATEUR, this);//Initialisation du RegistreinitialiserRegistre();// Création du Modèle qui s'enregistre lui même dans le Registremodele = new Modele();// Création du Viewport qui contient la disposition globale de l'applicationviewport = new Viewport();viewport.setLayout(new BorderLayout());// Création des différents panneauxcreerPanneauNord();creerPanneauOuest();creerPanneauCentral();creerPanneauSud();// Connection de l'utilisateurconnecterUtilisateur(null, null);// Retour à GWT du Viewport une fois constuitRootPanel.get().add(viewport);}//+----------------------------------------------------------------------------------------------------------------+// GESTION de l'I18N et du REGISTRE//+----------------------------------------------------------------------------------------------------------------+protected static Constantes getI18nConstante() {return GWT.create(Constantes.class);}protected static ErrorMessages getI18nMessage() {return GWT.create(ErrorMessages.class);}protected void initialiserRegistre() {Registry.register(RegistreId.APPLI_NOM, i18nC.appliNom());Registry.register(RegistreId.APPLI_CODE, i18nC.appliCode());Registry.register(RegistreId.APPLI_VERSION, i18nC.appliVersionNumero());Registry.register(RegistreId.APPLI_REVISION, "$Revision: 501 $");Registry.register(RegistreId.CONFIG, new Configuration());Registry.register(RegistreId.POPUP_CHARGEMENT, new PopupChargement(this));Registry.register(RegistreId.UTILISATEUR_COURANT, new Utilisateur());Registry.register(RegistreId.PROJET_COURANT, new Projet());}//+----------------------------------------------------------------------------------------------------------------+// GESTION des PANNEAUX PRINCIPAUX//+----------------------------------------------------------------------------------------------------------------+private void creerPanneauNord() {panneauNord = new EnteteVue(this);BorderLayoutData regionNord = new BorderLayoutData(LayoutRegion.NORTH, 100);regionNord.setCollapsible(true);regionNord.setFloatable(true);regionNord.setSplit(false);regionNord.setMargins(new Margins(5, 5, 0, 5));viewport.add(panneauNord, regionNord);}private void creerPanneauOuest() {panneauOuest = new MenuVue(this);BorderLayoutData regionOuest = new BorderLayoutData(LayoutRegion.WEST, 200);regionOuest.setSplit(true);regionOuest.setCollapsible(true);regionOuest.setMargins(new Margins(5));viewport.add(panneauOuest, regionOuest);}private void creerPanneauCentral() {panneauCentre = new ContenuVue(this);BorderLayoutData regionCentre = new BorderLayoutData(LayoutRegion.CENTER);regionCentre.setMargins(new Margins(5, 5, 5, 0));viewport.add(panneauCentre, regionCentre);}private void creerPanneauSud() {panneauSud = new StatutVue();BorderLayoutData regionSud = new BorderLayoutData(LayoutRegion.SOUTH, 20);regionSud.setCollapsible(true);regionSud.setFloatable(true);regionSud.setSplit(false);regionSud.setMargins(new Margins(0));viewport.add(panneauSud, regionSud);}public void actualiserPanneauCentral() {panneauCentre.layout();}//+----------------------------------------------------------------------------------------------------------------+// GESTION du MENU//+----------------------------------------------------------------------------------------------------------------+public void clicMenu(String codeMenuClique) {activerChargement(codeMenuClique);panneauOuest.selectionMenu(codeMenuClique);if (codeMenuClique.equals(MenuApplicationId.STRUCTURE)) {selectionnerStructure(panneauCentre, null);} else if (codeMenuClique.equals(MenuApplicationId.COLLECTION)) {selectionnerCollection(panneauCentre, null);} else if (codeMenuClique.equals(MenuApplicationId.PERSONNE)) {selectionnerPersonne(panneauCentre, null, null);} else if (codeMenuClique.equals(MenuApplicationId.PUBLICATION)) {selectionnerPublication(panneauCentre,null);} else if (codeMenuClique.equals(MenuApplicationId.PROJET)) {selectionnerProjets(panneauCentre);} else {GWT.log(i18nM.nonImplemente(codeMenuClique), null);}panneauCentre.layout();}public void activerChargement(String message) {afficherPopinChargement();panneauSud.showBusy(i18nC.chargement()+" "+message);}public void desactiverChargement() {masquerPopinChargement();panneauSud.clear();}//+----------------------------------------------------------------------------------------------------------------+// GESTION DES FENÊTRES//+----------------------------------------------------------------------------------------------------------------+public void ouvrirAide() {AideFenetre aideFenetre = new AideFenetre();aideFenetre.show();// FIXME : apparament le fade In/Fade Out pose problème sur les navigateurs...//aideFenetre.el().fadeIn(FxConfig.NONE);}public void ouvrirParametres() {ParametreFenetre parametresFenetre = new ParametreFenetre();parametresFenetre.show();}public void ouvrirIdentification() {fenetreIdentification = new IdentificationFenetre();fenetreIdentification.show();}public void ouvrirApplis(String id) {if (id.equals(ComposantId.MENU_CEL)) {Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getCelUrl(), "Carnet en ligne", "");} else if (id.equals(ComposantId.MENU_BEL)) {Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getCelUrl(), "Biblio en ligne", "");}}//+----------------------------------------------------------------------------------------------------------------+// GESTION de l'UTILISATEUR et de l'IDENTIFICATION//+----------------------------------------------------------------------------------------------------------------+/*** Retourne l'identifiant de l'utilisateur courrant de l'application.*/public String getUtilisateurId() {String id = null;Utilisateur utilisateurCourant = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);if (!utilisateurCourant.getId().equals("")) {id = utilisateurCourant.getId();}return id;}public void connecterUtilisateur(String login, String mdp) {modele.connecterUtilisateur(this, login, mdp);}public void deconnecterUtilisateur() {modele.deconnecterUtilisateur(this);}public void mettreAJourEtatIdentification(Utilisateur utilisateur) {// Mise à jour du registreRegistry.register(RegistreId.UTILISATEUR_COURANT, utilisateur);// Création de l'information de mise à jour de l'utilisateurInformation info = new Information("maj_utilisateur");// Rafraichissement de la fenêtre d'Identificationif (fenetreIdentification != null) {fenetreIdentification.rafraichir(info);}// Rafraichissement du panneau NordpanneauNord.rafraichir(info);// Rafraichissement du panneau Centreif (panneauCentre != null) {panneauCentre.rafraichir(info);}}//+----------------------------------------------------------------------------------------------------------------+// GESTION DES VALEURS ET LISTES//+----------------------------------------------------------------------------------------------------------------+public void obtenirListeValeurEtRafraichir(Rafraichissable vueARafraichir, String listeId) {modele.obtenirListeValeurs(vueARafraichir, ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeId));}public void obtenirValeurEtRafraichir(Rafraichissable vue, String listeId, String identifiantValeur) {modele.obtenirValeur(vue, "abv", ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeId), identifiantValeur);}public void obtenirListeRegionsEtRafraichir(Rafraichissable vue, String strListeId, String strPays) {modele.obtenirListeRegion(vue, ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(strListeId), strPays+".__");}//+----------------------------------------------------------------------------------------------------------------+// GESTION des PROJETS//+----------------------------------------------------------------------------------------------------------------+/*** Retourne l'identifiant du projet courrant de l'application.*/public String getProjetId() {String id = null;Projet projetCourant = (Projet) Registry.get(RegistreId.PROJET_COURANT);if (projetCourant != null && !projetCourant.getId().equals("")) {id = projetCourant.getId();}return id;}//Greg : ajout d'un écouteur pour le changement liste projetpublic void selectionnerProjets(Rafraichissable vueARafraichir) {modele.selectionnerProjets(vueARafraichir);}public void selectionnerProjetCourant(Projet projetSelectionne) {Registry.register(RegistreId.PROJET_COURANT, projetSelectionne);if (panneauCentre.getContenu() instanceof PersonneVue) {//modele.selectionnerPersonne(contenuPanneauCentre, null, getProjetId(), null);selectionnerPersonne(panneauCentre, null, getProjetId());//FIXME Le rafraichissement du panneau ne se fait pas!} else if (panneauCentre.getContenu() instanceof StructureVue) {modele.selectionnerStructure(panneauCentre.getContenu(), getProjetId(), null);} else if (panneauCentre.getContenu() instanceof CollectionVue) {modele.selectionnerCollection(panneauCentre.getContenu(), getProjetId(), null);}}//+----------------------------------------------------------------------------------------------------------------+// GESTION DES STRUCTURES//+----------------------------------------------------------------------------------------------------------------+public void afficherListeStructures(StructureListe structuresACharger) {if (!(panneauCentre.getContenu() instanceof StructureVue)) {panneauCentre.removeAll();panneauCentre.add(new StructureVue(this));}panneauCentre.getContenu().rafraichir(structuresACharger);}public void afficherFormStructure(String structureId) {String mode = Formulaire.MODE_AJOUTER;if (structureId != null) {mode = Formulaire.MODE_MODIFIER;}panneauCentre.removeAll();StructureForm structureForm = new StructureForm(this, mode);panneauCentre.add(structureForm);if (mode.equals(Formulaire.MODE_MODIFIER)) {selectionnerStructure(structureForm, structureId);selectionnerStructureAPersonne(structureForm, structureId, StructureAPersonne.ROLE_EQUIPE);}panneauCentre.layout();}public void clicListeStructure(Structure structure) {panneauCentre.getContenu().rafraichir(structure);if (structure != null && structure.getPersonnel() == null) {selectionnerStructureAPersonne(panneauCentre.getContenu(), structure.getId(), StructureAPersonne.ROLE_EQUIPE);}}public void clicAjouterStructure() {afficherFormStructure(null);}public void clicModifierStructure(List<Structure> structureSelection) {if (structureSelection.size() == 0) {Info.display("Information", "Veuillez sélectionner une structure.");} else if (structureSelection.size() > 1) {Info.display("Information", "Veuillez sélectionner une seule structure à la fois.");} else if (structureSelection.size() == 1) {afficherFormStructure(structureSelection.get(0).getId());} else {Info.display("Erreur", "Une erreur est survenue dans la méthode clicModifierStructure() du Médiateur.");}}public void clicSupprimerStructure(final Rafraichissable vue, final List<Structure> structureSelection) {if (structureSelection.size() == 0) {Info.display("Information", "Veuillez sélectionner une structure.");} else if(structureSelection.size() > 0) {String titre = "Supprimer des structures";String message = "Êtes vous sur de vouloir supprimer les structures sélectionnées ?";if (structureSelection.size() == 1) {titre = "Supprimer une structure";message = "Êtes vous sur de vouloir supprimer la structure sélectionnée ?";}final Listener<MessageBoxEvent> suppressionEcouteur = new Listener<MessageBoxEvent>() {public void handleEvent(MessageBoxEvent ce) {Dialog dialog = (Dialog) ce.getComponent();Button btn = ce.getButtonClicked();if (btn.getText().equals(dialog.yesText)) {String idStr = "" ;for(int i = 0 ; i < structureSelection.size() ; i++) {idStr += structureSelection.get(i).getId()+",";}supprimerStructure(vue, idStr);}}};MessageBox.confirm(titre, message, suppressionEcouteur);} else {Info.display("Erreur", "Une erreur est survenue dans la méthode clicSupprimerStructure() du Médiateur.");}}public void selectionnerStructure(Rafraichissable vueARafraichir, String structureId) {modele.selectionnerStructure(vueARafraichir, getProjetId(), structureId);}public void selectionnerStructureParProjet(Rafraichissable vueARafraichir, String projetId) {modele.selectionnerStructure(vueARafraichir, projetId, null);}public void ajouterStructure(Rafraichissable vueARafraichir, Structure structure, StructureConservation conservation, StructureValorisation valorisation) {modele.ajouterStructure(vueARafraichir, structure, conservation, valorisation);}public void modifierStructure(Rafraichissable vueARafraichir, String structureId, Structure structure, StructureConservation conservation, StructureValorisation valorisation) {modele.modifierStructure(vueARafraichir, structureId, structure, conservation, valorisation);}public void supprimerStructure(Rafraichissable vueARafraichir, String IdentifiantsStructureSepareParVirgule) {modele.supprimerStructure(vueARafraichir, IdentifiantsStructureSepareParVirgule);}//+----------------------------------------------------------------------------------------------------------------+// GESTION de la relation STRUCTURE A PERSONNEpublic void selectionnerStructureAPersonne(Rafraichissable vueARafraichir, String structureId, String roleId) {modele.selectionnerStructureAPersonne(vueARafraichir, structureId, roleId);}public void ajouterStructureAPersonne(Rafraichissable vueARafraichir, String structureId, StructureAPersonneListe personnelAjoute) {if (personnelAjoute != null && personnelAjoute.size() > 0) {for (Iterator<String> it = personnelAjoute.keySet().iterator(); it.hasNext();) {modele.ajouterStructureAPersonne(vueARafraichir, structureId, (StructureAPersonne) personnelAjoute.get(it.next()));}}}public void modifierStructureAPersonne(Rafraichissable vueARafraichir, StructureAPersonneListe personnelModifie) {if (personnelModifie != null && personnelModifie.size() > 0) {for (Iterator<String> it = personnelModifie.keySet().iterator(); it.hasNext();) {modele.modifierStructureAPersonne(vueARafraichir, (StructureAPersonne) personnelModifie.get(it.next()));}}}public void supprimerStructureAPersonne(Rafraichissable vueARafraichir, StructureAPersonneListe personnelSupprime) {if (personnelSupprime != null && personnelSupprime.size() > 0) {String idStructureAPersonneSepareParVirgule = "" ;for (Iterator<String> it = personnelSupprime.keySet().iterator(); it.hasNext();) {idStructureAPersonneSepareParVirgule += personnelSupprime.get(it.next()).getId()+"," ;}modele.supprimerStructureAPersonne(vueARafraichir, idStructureAPersonneSepareParVirgule);}}//+----------------------------------------------------------------------------------------------------------------+// GESTION des COLLECTIONS//+----------------------------------------------------------------------------------------------------------------+public void afficherListeCollections(CollectionListe collectionsACharger) {if (!(panneauCentre.getContenu() instanceof CollectionVue)) {panneauCentre.removeAll();panneauCentre.add(new CollectionVue(this));}panneauCentre.getContenu().rafraichir(collectionsACharger);}public void afficherFormCollection(String collectionId) {panneauCentre.removeAll();CollectionForm collectionForm = new CollectionForm(this, collectionId);panneauCentre.add(collectionForm);panneauCentre.layout();}public void clicListeCollection(Collection collectionCliquee) {panneauCentre.getContenu().rafraichir(collectionCliquee);if (collectionCliquee != null) {selectionnerCollectionAPersonne(panneauCentre.getContenu(), collectionCliquee.getId(), null);selectionnerCollectionAPublication(panneauCentre.getContenu(), collectionCliquee.getId());}}public void clicAjouterCollection() {afficherFormCollection(null);}public void clicModifierCollection(List<Collection> selection) {if (selection.size() == 0) {Info.display("Information", "Veuillez sélectionner une collection.");} else if (selection.size() > 1) {Info.display("Information", "Veuillez sélectionner une seule collection à la fois.");} else if (selection.size() == 1) {afficherFormCollection(selection.get(0).getId());} else {Info.display("Erreur", "Une erreur est survenue dans la méthode clicModifierCollection() du Médiateur.");}}public void clicSupprimerCollection(CollectionListeVue collectionListeVue, List<Collection> collectionsASupprimer) {// TODO Auto-generated method stub}public void selectionnerCollection(Rafraichissable vueARafraichir, String collectionId) {modele.selectionnerCollection(vueARafraichir, getProjetId(), collectionId);}public void selectionnerCollectionParProjet(Rafraichissable vueARafraichir, String projetId) {modele.selectionnerCollection(vueARafraichir, projetId, null);}public void ajouterCollection(Rafraichissable vueARafraichir, Collection collection) {modele.ajouterCollection(vueARafraichir, getUtilisateurId(), collection);}public void modifierCollection(Rafraichissable vueARafraichir, Collection collection) {modele.modifierCollection(vueARafraichir, collection);}public void supprimerCollection(Rafraichissable vueARafraichir, String IdentifiantsCollectionSepareParVirgule) {modele.supprimerCollection(vueARafraichir, getUtilisateurId(), IdentifiantsCollectionSepareParVirgule);}//+----------------------------------------------------------------------------------------------------------------+// GESTION de la relation COLLECTION A PERSONNEpublic void selectionnerCollectionAPersonne(Rafraichissable vueARafraichir, String collectionId, String roleId) {modele.selectionnerCollectionAPersonne(vueARafraichir, collectionId, roleId);}public void ajouterCollectionAPersonne(Rafraichissable vueARafraichir, String collectionId, CollectionAPersonneListe personnesAjoutees) {if (personnesAjoutees != null && personnesAjoutees.size() > 0) {for (Iterator<String> it = personnesAjoutees.keySet().iterator(); it.hasNext();) {modele.ajouterCollectionAPersonne(vueARafraichir, collectionId, (CollectionAPersonne) personnesAjoutees.get(it.next()));}}}public void modifierCollectionAPersonne(Rafraichissable vueARafraichir, CollectionAPersonneListe personnesModifiees) {if (personnesModifiees != null && personnesModifiees.size() > 0) {for (Iterator<String> it = personnesModifiees.keySet().iterator(); it.hasNext();) {modele.modifierCollectionAPersonne(vueARafraichir, (CollectionAPersonne) personnesModifiees.get(it.next()));}}}public void supprimerCollectionAPersonne(Rafraichissable vueARafraichir, CollectionAPersonneListe personnesSupprimees) {if (personnesSupprimees != null && personnesSupprimees.size() > 0) {String idCollectionAPersonneSeparesParVirgule = "" ;for (Iterator<String> it = personnesSupprimees.keySet().iterator(); it.hasNext();) {idCollectionAPersonneSeparesParVirgule += personnesSupprimees.get(it.next()).getId()+"," ;}modele.supprimerCollectionAPersonne(vueARafraichir, idCollectionAPersonneSeparesParVirgule);}}//+----------------------------------------------------------------------------------------------------------------+// GESTION de la relation COLLECTION A PUBLICATIONpublic void selectionnerCollectionAPublication(Rafraichissable vueARafraichir, String collectionId) {modele.selectionnerCollectionAPublication(vueARafraichir, collectionId);}public void ajouterCollectionAPublication(Rafraichissable vueARafraichir, String collectionId, CollectionAPublicationListe publicationsAjoutees) {if (publicationsAjoutees != null && publicationsAjoutees.size() > 0) {for (Iterator<String> it = publicationsAjoutees.keySet().iterator(); it.hasNext();) {modele.ajouterCollectionAPublication(vueARafraichir, collectionId, (CollectionAPublication) publicationsAjoutees.get(it.next()));}}}public void modifierCollectionAPublication(Rafraichissable vueARafraichir, CollectionAPublicationListe publicationsModifiees) {if (publicationsModifiees != null && publicationsModifiees.size() > 0) {for (Iterator<String> it = publicationsModifiees.keySet().iterator(); it.hasNext();) {modele.modifierCollectionAPublication(vueARafraichir, (CollectionAPublication) publicationsModifiees.get(it.next()));}}}public void supprimerCollectionAPersonne(Rafraichissable vueARafraichir, CollectionAPublicationListe publicationsSupprimees) {if (publicationsSupprimees != null && publicationsSupprimees.size() > 0) {String idCollectionAPublicationSeparesParVirgule = "" ;for (Iterator<String> it = publicationsSupprimees.keySet().iterator(); it.hasNext();) {idCollectionAPublicationSeparesParVirgule += publicationsSupprimees.get(it.next()).getId()+"," ;}modele.supprimerCollectionAPublication(vueARafraichir, idCollectionAPublicationSeparesParVirgule);}}//+----------------------------------------------------------------------------------------------------------------+// GESTION de la relation COLLECTION A PUBLICATION//+----------------------------------------------------------------------------------------------------------------+// GESTION de la relation COLLECTION A COMMENTAIRE//+----------------------------------------------------------------------------------------------------------------+// GESTION DES PERSONNES//+----------------------------------------------------------------------------------------------------------------+public void clicListePersonne(Personne personne) {panneauCentre.getContenu().rafraichir(personne);}public void afficherListePersonnes(PersonneListe personnesACharger) {if (!(panneauCentre.getContenu() instanceof PersonneVue)) {panneauCentre.removeAll();panneauCentre.add(new PersonneVue(this));panneauCentre.setId(ComposantId.PANNEAU_PERSONNE_LISTES);}panneauCentre.getContenu().rafraichir(personnesACharger);}public void clicAjouterPersonne() {afficherPersonneForm(null);}public void clicModifierPersonne(Personne personne) {afficherPersonneForm(personne);}public void afficherPersonneForm(Personne personne) {String personneId = null;if (personne != null) {personneId = personne.getId();}panneauCentre.removeAll();PublicationForm publicationForm = new PublicationForm(this, personneId);panneauCentre.add(publicationForm);panneauCentre.layout();}public void clicSupprimerPersonne(final Rafraichissable vue,final List<Personne> personneSelection) {//Empecher suppression utilisateurfor (int i=0; i < personneSelection.size(); i++) {Personne courante = personneSelection.get(i);if (courante.getId().equals(getUtilisateurId())) {Info.display("Information", "Vous ne pouvez pas supprimer votre compte");personneSelection.remove(courante);}}if (personneSelection.size() == 0) {Info.display("Information", "Veuillez sélectionner une personne.");} else if(personneSelection.size() > 0) {String message = "Êtes vous sur de vouloir supprimer les personnes sélectionnées ?";if (personneSelection.size() == 1) {message = "Êtes vous sur de vouloir supprimer la personne sélectionnée ?";}final Listener<MessageBoxEvent> listenerSuppression = new Listener<MessageBoxEvent>() {public void handleEvent(MessageBoxEvent ce) {Dialog dialog = (Dialog) ce.getComponent();Button btn = ce.getButtonClicked();if (btn.getText().equals(dialog.yesText)) {String idPersonneSepareParVirgule = "" ;Iterator<Personne> itPersonne = personneSelection.iterator();while (itPersonne.hasNext()) {Personne personneCourante = itPersonne.next();idPersonneSepareParVirgule += personneCourante.getId();idPersonneSepareParVirgule +=",";}modele.supprimerPersonne(vue, idPersonneSepareParVirgule);}}};MessageBox.confirm("Supprimer une personne", message, listenerSuppression);} else {Info.display("Erreur", "Une erreur est survenue dans la méthode clicSupprimerPersonne() du Médiateur.");}}public void selectionnerPersonne(Rafraichissable vue, Personne personne, String projetId) {int nbElements = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage"));selectionnerPersonne(vue, personne, projetId, 0, nbElements);}public void selectionnerPersonne(Rafraichissable vue, Personne personne, String projetId, int start, int nbElements) {String personneId = null;if (personne != null) {personneId = personne.getId();}modele.selectionnerPersonne(vue, personneId, projetId, null, start, nbElements);}public void selectionnerPersonneParNomComplet(Rafraichissable vueARafraichir, String projetId, String nomComplet) {modele.selectionnerPersonne(vueARafraichir, null, projetId, nomComplet, 0, -1);}public void selectionnerPersonneParProjet(Rafraichissable vueARafraichir, String projetId) {modele.selectionnerPersonne(vueARafraichir, null, projetId, null, 0, -1);}public void enregistrerPersonne(Rafraichissable vue, Personne personne){if (personne.getId() != null && !personne.getId().trim().equals("")) {modele.modifierPersonne(vue, personne);} else {modele.ajouterPersonne(vue, personne);}}//+----------------------------------------------------------------------------------------------------------------+// GESTION DES PUBLICATIONS//+----------------------------------------------------------------------------------------------------------------+public void afficherListePublication(PublicationListe nouvelleDonnees) {if (!(panneauCentre.getContenu() instanceof PublicationVue)) {panneauCentre.removeAll();PublicationVue publicationVue = new PublicationVue(this) ;panneauCentre.setId(ComposantId.PANNEAU_PUBLICATION_LISTE);panneauCentre.add(publicationVue);panneauCentre.layout(true);}masquerPopinChargement();panneauCentre.getContenu().rafraichir(nouvelleDonnees);}public void afficherFormPublication(String publicationId) {panneauCentre.removeAll();PublicationForm publicationForm = new PublicationForm(this, publicationId);panneauCentre.add(publicationForm);panneauCentre.layout();}public void clicListePublication(Publication publication) {if (publication != null) {panneauCentre.getContenu().rafraichir(publication);}}public void clicAjouterPublication() {afficherFormPublication(null);}public void clicModifierPublication(List<Publication> selection) {if (selection.size() == 0) {Info.display("Information", "Veuillez sélectionner une publication.");} else if (selection.size() > 1) {Info.display("Information", "Veuillez sélectionner une seule publication à la fois.");} else if (selection.size() == 1) {afficherFormPublication(selection.get(0).getId());} else {Info.display("Erreur", "Une erreur est survenue dans la méthode clicModifierPublication() du Médiateur.");}}public void clicSupprimerPublication(final List<Publication> publicationListe) {if (publicationListe.size() <= 0) {MessageBox.alert("Attention", "Vous devez sélectionner une publication", null);} else {String message = "Voulez-vous vraiment supprimer ces publications ?";if (publicationListe.size() == 1) {message = "Voulez-vous vraiment supprimer cette publication ?";}final Listener<MessageBoxEvent> listenerSuppression = new Listener<MessageBoxEvent>() {public void handleEvent(MessageBoxEvent ce) {Dialog dialog = (Dialog) ce.getComponent();Button btn = ce.getButtonClicked();if (btn.getText().equals(dialog.yesText)) {modele.supprimerPublication(panneauCentre.getContenu(), publicationListe);}}};MessageBox.confirm("Supprimer une publication", message, listenerSuppression);}}public void selectionnerPublication(Rafraichissable vueARafraichir, String publicationId) {modele.selectionnerPublication(vueARafraichir, publicationId, getProjetId(), null);}public void selectionnerPublicationParNomComplet(Rafraichissable vueARafraichir, String projetId, String nomComplet) {modele.selectionnerPublication(vueARafraichir, null, projetId, nomComplet);}public void ajouterPublication(Rafraichissable vueARafraichir, Publication publication) {modele.ajouterPublication(vueARafraichir, publication);}public void modifierPublication(Rafraichissable vueARafraichir, Publication publication) {modele.modifierPublication(vueARafraichir, publication);}public void clicObtenirListeEditeurs(Rafraichissable vueARafraichir) {selectionnerStructureParProjet(vueARafraichir, null);}public void clicObtenirListeAuteurs(Rafraichissable vueARafraichir) {selectionnerPersonneParProjet(vueARafraichir, null);}//+----------------------------------------------------------------------------------------------------------------+// GESTION de la relation PUBLICATION A PERSONNEpublic void selectionnerPublicationAPersonne(Rafraichissable vueARafraichir, String publicationId, String personnesId, String roleId) {modele.selectionPublicationAPersonne(vueARafraichir, publicationId, personnesId, roleId);}public void ajouterPublicationAPersonne(Rafraichissable vueArafraichir, String publicationId, String personnesId, String roleId) {modele.ajouterAuteurPublication(vueArafraichir, publicationId, personnesId, roleId);}public void modifierPublicationAPersonne(Rafraichissable vueArafraichir, String publicationId, String personnesId, String roleId) {modele.modifierAuteurPublication(vueArafraichir, publicationId, personnesId, roleId);}//+----------------------------------------------------------------------------------------------------------------+// RAFRAICHISSEMENT//+----------------------------------------------------------------------------------------------------------------+public void rafraichir(Object nouvelleDonnees) {if (nouvelleDonnees instanceof Utilisateur) {mettreAJourEtatIdentification((Utilisateur) nouvelleDonnees);} else {GWT.log(i18nM.erreurRafraichir(nouvelleDonnees.getClass(), this.getClass()), null);}}//+----------------------------------------------------------------------------------------------------------------+// GESTION du STATUT//+----------------------------------------------------------------------------------------------------------------+public void afficherPopinChargement() {((PopupChargement) Registry.get(RegistreId.POPUP_CHARGEMENT)).center();}public void masquerPopinChargement() {((PopupChargement) Registry.get(RegistreId.POPUP_CHARGEMENT)).hide();}public void afficherFormProjet(String projetId) {panneauCentre.removeAll();ProjetForm projetForm = new ProjetForm(this, projetId);panneauCentre.add(projetForm);panneauCentre.layout();}public void afficherListeProjets(ProjetListe projetsACharger) {if (!(panneauCentre.getContenu() instanceof ProjetVue)) {panneauCentre.removeAll();panneauCentre.add(new ProjetVue(this));panneauCentre.setId(ComposantId.PANNEAU_PROJET_LISTE);panneauCentre.layout();}panneauCentre.getContenu().rafraichir(projetsACharger);}//+----------------------------------------------------------------------------------------------------------------+// GESTION des projets//+----------------------------------------------------------------------------------------------------------------+public void clicListeProjet(Projet projet) {panneauCentre.getContenu().rafraichir(projet);}public void clicSupprimerProjet(List<Projet> selectedItems) {// TODO Auto-generated method stub}public void clicModifierProjet(List<Projet> selectedItems) {afficherFormProjet(selectedItems.get(0).getId());}public void clicAjouterProjet() {afficherFormProjet(null);}public void selectionnerProjet(Rafraichissable vueARafraichir, String projetId) {modele.selectionnerProjet(vueARafraichir, projetId);}public void ajouterProjet(Rafraichissable vueARafraichir, Projet projetCollecte) {modele.ajouterProjet(vueARafraichir, projetCollecte);}public void modifierProjet(Rafraichissable vueARafraichir, Projet projetCollecte) {modele.modifierProjet(vueARafraichir, projetCollecte);}}