Rev 119 | Rev 142 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client;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.interfaces.Rafraichissable;import org.tela_botanica.client.modeles.Configuration;import org.tela_botanica.client.modeles.Menu;import org.tela_botanica.client.modeles.PersonneListe;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.StructureListe;import org.tela_botanica.client.modeles.Utilisateur;import org.tela_botanica.client.modeles.ValeurListe;import org.tela_botanica.client.vues.ContenuPanneauVue;import org.tela_botanica.client.vues.EntetePanneauVue;import org.tela_botanica.client.vues.FormStructureVue;import org.tela_botanica.client.vues.PersonneVue;import org.tela_botanica.client.vues.PublicationDetailPanneauVue;import org.tela_botanica.client.vues.PublicationVue;import org.tela_botanica.client.vues.StructureDetailPanneauVue;import org.tela_botanica.client.vues.StructureVue;import org.tela_botanica.client.vues.MenuPanneauVue;import com.extjs.gxt.ui.client.Registry;import com.extjs.gxt.ui.client.Style.LayoutRegion;import com.extjs.gxt.ui.client.util.Margins;import com.extjs.gxt.ui.client.widget.Viewport;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.user.client.Window;import com.google.gwt.user.client.ui.RootPanel;public class Mediateur {private Modele modele = null;private Utilisateur utilisateur = null;private Viewport viewport;private EntetePanneauVue panneauNord = null;private MenuPanneauVue panneauOuest = null;private ContenuPanneauVue panneauCentre = null;public Mediateur() {// Enregistrement du Médiateur dans le RegistreRegistry.register(RegistreId.MEDIATEUR, this);// Création du Modèle qui s'enregistre lui même dans le Registremodele = new Modele();// Création de l'utilsateur courrantutilisateur = new Utilisateur(null, false);Registry.register(RegistreId.UTILISATEUR, utilisateur);this.connecterUtilisateur(null, null);// 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();// Registry utile car présent partout!Registry.register(RegistreId.VIEWPORT, viewport);Registry.register(RegistreId.PANNEAU_OUEST, panneauOuest);Registry.register(RegistreId.PANNEAU_CENTRE, panneauCentre);// Chargement du menuchargeMenu(panneauOuest.listerMenu());// Retour à GWT du Viewport une fois constuitRootPanel.get().add(viewport);}public String getUtilisateurId() {return utilisateur.getId();}private void creerPanneauNord() {panneauNord = new EntetePanneauVue();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 MenuPanneauVue();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 ContenuPanneauVue();BorderLayoutData regionCentre = new BorderLayoutData(LayoutRegion.CENTER);regionCentre.setMargins(new Margins(5, 5, 5, 0));viewport.add(panneauCentre, regionCentre);}public void chargeMenu(Menu menus) {((MenuPanneauVue) Registry.get(RegistreId.PANNEAU_OUEST)).rafraichir(menus);}public void clicMenu(String s) {panneauCentre.removeAll();if (s.equals("Institutions")) {((Modele) Registry.get(RegistreId.MODELE)).obtenirListeInstitutions();}else if (s.equals("Publications")) {((Modele) Registry.get(RegistreId.MODELE)).obtenirListePublications();}else if (s.equals("Personnes")) {((Modele) Registry.get(RegistreId.MODELE)).obtenirListePersonnes();}else {Window.alert("Non implémenté!");}panneauCentre.layout();}public void clicIdentification() {// Gestion du loginIdentificationFenetre dialog = new IdentificationFenetre();dialog.setClosable(false);dialog.show();}public void clicListeInstitution(Structure institution) {((StructureDetailPanneauVue) Registry.get(RegistreId.PANNEAU_INSTITUTION_DETAIL)).rafraichir(institution);}public void afficherListeInstitutions(StructureListe nouvelleDonnees) {// TODO : créer dès l'initialisation de l'application InsitutionVue et la cacherStructureVue institutionVue = new StructureVue();panneauCentre.add(institutionVue);institutionVue.rafraichir(nouvelleDonnees);}public void afficherListePersonnes(PersonneListe nouvelleDonnees) {PersonneVue personneVue = new PersonneVue();panneauCentre.add(personneVue);personneVue.rafraichir(nouvelleDonnees);}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() {IdentificationFenetre identifFenetre = new IdentificationFenetre();identifFenetre.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(), "Carnet en ligne", "");}}public void connecterUtilisateur(String login, String mdp) {((Modele) Registry.get(RegistreId.MODELE)).connecterUtilisateur(login, mdp);}public void deconnecterUtilisateur() {((Modele) Registry.get(RegistreId.MODELE)).deconnecterUtilisateur();}public void mettreAJourEtatIdentification(Utilisateur utilisateur) {panneauNord.rafraichir(utilisateur);}public void clicAjouterStructure() {panneauCentre.removeAll();FormStructureVue formStructureVue = new FormStructureVue();panneauCentre.add(formStructureVue);panneauCentre.setId(ComposantId.PANNEAU_FORM_STRUCTURE);panneauCentre.layout();}/* GREG : Ajouter Personne* Gestion du clic dans le menu gauche* Affiche le formulaire* */public void clicAjouterPersonne() {GWT.log("ajouter pers", null);}public void afficherListeValeurs(ValeurListe nouvelleDonnees) {if (panneauCentre.getId().equals(ComposantId.PANNEAU_FORM_STRUCTURE)) {((FormStructureVue) panneauCentre.getItem(0)).rafraichir(nouvelleDonnees);} else {GWT.log("Aucun panneau trouvé pour afficher la liste de valeur", null);}}public void afficherListePublication(PublicationListe nouvelleDonnees) {PublicationVue publicationVue = new PublicationVue() ;panneauCentre.add(publicationVue);publicationVue.rafraichir(nouvelleDonnees);}public void clicListePublication(Publication publication) {((PublicationDetailPanneauVue) Registry.get(RegistreId.PANNEAU_PUBLICATION_DETAIL)).rafraichir(publication);}public void clicAjouterPublication() {// TODO Auto-generated method stub}/*** TODO : afficher un message du type "Structure ajoutée".* Lance la creation d'une structure* @param les données de la structure saisie*/public void ajouterStructure(Rafraichissable vue, Structure structure) {modele.ajouterStructure(vue, structure);}}