Subversion Repositories eFlore/Applications.coel

Rev

Rev 107 | Rev 135 | 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.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.PublicationListe;
import org.tela_botanica.client.modeles.PublicationListeAsyncDao;
import org.tela_botanica.client.modeles.Structure;
import org.tela_botanica.client.modeles.StructureAsyncDao;
import org.tela_botanica.client.modeles.StructureListe;
import org.tela_botanica.client.modeles.StructureListeAsyncDao;
import org.tela_botanica.client.modeles.Utilisateur;
import org.tela_botanica.client.modeles.UtilisateurAsyncDao;
import org.tela_botanica.client.modeles.ValeurListe;
import org.tela_botanica.client.modeles.ValeurListeAsyncDao;

import com.extjs.gxt.ui.client.Registry;

// TODO : le transformer en SINGLETON
public class Modele implements Rafraichissable {

        public Modele() {
                Registry.register(RegistreId.MODELE, this);
        }

        public void rafraichir(Object nouvelleDonnees) {
                if (nouvelleDonnees instanceof StructureListe) {
                        ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).afficherListeInstitutions((StructureListe) nouvelleDonnees);
                } else if (nouvelleDonnees instanceof Utilisateur) {
                        ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).mettreAJourEtatIdentification((Utilisateur) nouvelleDonnees);
                } else if (nouvelleDonnees instanceof ValeurListe) {
                        ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).afficherListeValeurs((ValeurListe) nouvelleDonnees);
                } else if (nouvelleDonnees instanceof PublicationListe) {
                        ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).afficherListePublication((PublicationListe) nouvelleDonnees);
                }
                
        }
        
        public void obtenirListeValeurs(Integer id) {
                ValeurListeAsyncDao lsDao = new ValeurListeAsyncDao(this);
                lsDao.obtenirListe(id);
        }
        
        public void obtenirListeInstitutions() {
                StructureListeAsyncDao lsDao = new StructureListeAsyncDao(this);
                lsDao.obtenirListeInstitution();
        }

        public void connecterUtilisateur(String login, String mdp) {
                Utilisateur utilisateur = (Utilisateur) Registry.get(RegistreId.UTILISATEUR);
                utilisateur.setLogin(login);
                utilisateur.setMotDePasse(mdp);
                UtilisateurAsyncDao uDao = new UtilisateurAsyncDao(this);
                uDao.connecterUtilisateur();            
        }
        
        public void deconnecterUtilisateur() {
                UtilisateurAsyncDao uDao = new UtilisateurAsyncDao(this);
                uDao.deconnecterUtilisateur();          
        }

        public void obtenirListePublications() {                
                PublicationListeAsyncDao lsDao = new PublicationListeAsyncDao(this);
                lsDao.obtenirListePublication();
        }

        /** Lance la creation d'une Structure
         * @param r la vue demandant a être rafraichie
         * @param structure les données de la structure
         */
        public void ajouterStructure(Rafraichissable r, Structure structure) {
                StructureAsyncDao structureDao = new StructureAsyncDao();
                Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
                structureDao.ajouter(r, mediateur.getUtilisateurId(), structure);
        }
        
}