Subversion Repositories eFlore/Applications.coel

Rev

Rev 302 | Rev 388 | 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.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.PersonneAsyncDao;
import org.tela_botanica.client.modeles.ProjetAsyncDao;
import org.tela_botanica.client.modeles.Publication;
import org.tela_botanica.client.modeles.PublicationAsyncDao;
import org.tela_botanica.client.modeles.Structure;
import org.tela_botanica.client.modeles.StructureAPersonne;
import org.tela_botanica.client.modeles.StructureAPersonneAsyncDao;
import org.tela_botanica.client.modeles.StructureAsyncDao;
import org.tela_botanica.client.modeles.StructureConservation;
import org.tela_botanica.client.modeles.StructureValorisation;
import org.tela_botanica.client.modeles.Utilisateur;
import org.tela_botanica.client.modeles.UtilisateurAsyncDao;
import org.tela_botanica.client.modeles.ValeurListeAsyncDao;

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

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

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

        //+----------------------------------------------------------------------------------------------------------------+
        //                                                                                              GESTION DES VALEURS ET LISTES
        //+----------------------------------------------------------------------------------------------------------------+
        
        public void obtenirListeValeurs(Rafraichissable vue, Integer id) {
                ValeurListeAsyncDao lsDao = new ValeurListeAsyncDao(vue);
                lsDao.obtenirListe(id);
        }
        
        
        public void obtenirListeRegion(Rafraichissable vue, Integer id, String region) {
                ValeurListeAsyncDao lsDao = new ValeurListeAsyncDao(vue);
                lsDao.selectionner("abv", id, null, region);
        }
        
        public void obtenirValeur(Rafraichissable vue, String type, Integer id, String identifiant) {
                ValeurListeAsyncDao lsDao = new ValeurListeAsyncDao(vue);
                lsDao.selectionner(type, id, null, identifiant);
        }
        
        //+----------------------------------------------------------------------------------------------------------------+
        //                                                                                              GESTION DES UTILISATEURS
        //+----------------------------------------------------------------------------------------------------------------+
        
        public void connecterUtilisateur(Rafraichissable vue, String login, String mdp) {
                Utilisateur utilisateur = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);
                utilisateur.setLogin(login);
                utilisateur.setMotDePasse(mdp);
                UtilisateurAsyncDao uDao = new UtilisateurAsyncDao(vue);
                uDao.connecterUtilisateur();            
        }
        
        public void deconnecterUtilisateur(Rafraichissable vue) {
                UtilisateurAsyncDao uDao = new UtilisateurAsyncDao(vue);
                uDao.deconnecterUtilisateur();          
        }
        
        //+----------------------------------------------------------------------------------------------------------------+
        //                                                                                              GESTION DES STRUCTURES
        //+----------------------------------------------------------------------------------------------------------------+

        public void obtenirListeStructures(Rafraichissable vue, String projetId) {
                StructureAsyncDao sDao = new StructureAsyncDao();
                sDao.selectionner(vue, projetId, "");
        }
        
        public void selectionnerStructure(Rafraichissable vue, String projetId, String structureId) {
                // Gestion des données des tables coel_structure, coel_structure_conservation et coel_structure_valorisation 
                StructureAsyncDao sDao = new StructureAsyncDao();
                sDao.selectionner(vue, projetId, structureId);
        }
        
        /** Lance la creation d'une Structure
         * @param vue la vue demandant a être rafraichie
         * @param structure les données de la structure
         */
        public void ajouterStructure(Rafraichissable vue, String idUtilisateur, Structure structure, StructureConservation conservation, StructureValorisation valorisation) {
                StructureAsyncDao structureDao = new StructureAsyncDao();
                structureDao.ajouter(vue, idUtilisateur, structure, conservation, valorisation);
        }

        public void supprimerStructure(Rafraichissable vue, String idUtilisateur, String idStr) {
                StructureAsyncDao structureDao = new StructureAsyncDao();
                structureDao.supprimer(vue, idUtilisateur, idStr);
        }
        
        public void modifierStructure(Rafraichissable vue, String utilisateurId, String structureId, Structure structure, StructureConservation conservation, StructureValorisation valorisation) {
                StructureAsyncDao structureDao = new StructureAsyncDao();
                structureDao.modifier(vue, utilisateurId, structureId, structure, conservation, valorisation);
        }

        //+----------------------------------------------------------------------------------------------------------------+
        // GESTION de la relation STRUCTURE A PERSONNE
        
        public void selectionnerStructureAPersonne(Rafraichissable vue, String idUtilisateur, String projetId, String structureId, String roleId) {
                // Gestion des données de la table coel_structure_a_personne
                if (structureId != null && roleId != null) {
                        StructureAPersonneAsyncDao sapDao = new StructureAPersonneAsyncDao();
                        sapDao.selectionner(vue, idUtilisateur, structureId, roleId);
                }
        }
        
        public void modifierStructureAPersonne(Rafraichissable vue, String utilisateurId, StructureAPersonne personnel) {
                StructureAPersonneAsyncDao structureAPersonneDao = new StructureAPersonneAsyncDao();
                structureAPersonneDao.modifier(vue, utilisateurId, personnel);
        }
        
        public void ajouterStructureAPersonne(Rafraichissable vue, String utilisateurId, String structureId, StructureAPersonne personnel) {
                StructureAPersonneAsyncDao structureAPersonneDao = new StructureAPersonneAsyncDao();
                structureAPersonneDao.ajouter(vue, utilisateurId, structureId, personnel);      
        }
        
        public void supprimerStructureAPersonne(Rafraichissable vue, String utilisateurId, String personnelId) {
                StructureAPersonneAsyncDao structureAPersonneDao = new StructureAPersonneAsyncDao();
                structureAPersonneDao.supprimer(vue, utilisateurId, personnelId);
        }
        
        //+----------------------------------------------------------------------------------------------------------------+
        //                                                                                              GESTION DES PROJETS
        //+----------------------------------------------------------------------------------------------------------------+
        
        public void selectionnerProjets(Rafraichissable vue)    {
                ProjetAsyncDao projetsDao = new ProjetAsyncDao(vue);
                projetsDao.selectionner();
        }

        //+----------------------------------------------------------------------------------------------------------------+
        //                                                                                              GESTION DES PERSONNES
        //+----------------------------------------------------------------------------------------------------------------+
        
        public void selectionnerPersonne(Rafraichissable vue, String personneId, String projetId, String nomComplet) {
                PersonneAsyncDao pDao = new PersonneAsyncDao(vue);
                pDao.selectionner(personneId, projetId, nomComplet);
        }

        public void supprimerPersonne(Rafraichissable vue, String utilisateurId,
                        String idStr) {
                PersonneAsyncDao personneDao = new PersonneAsyncDao(vue);
                personneDao.supprimer(vue, utilisateurId, idStr);
                
        }
        
        //+----------------------------------------------------------------------------------------------------------------+
        //                                                                                              GESTION DES PUBLICATIONS
        //+----------------------------------------------------------------------------------------------------------------+
        
        public void selectionnerPublications(Rafraichissable vue) {             
                PublicationAsyncDao lsDao = new PublicationAsyncDao(vue);
                lsDao.obtenirListePublication();
        }
        
        public void modifierPublication(Rafraichissable vue, String utilisateurId, Publication publi) {
                PublicationAsyncDao pDao = new PublicationAsyncDao(vue);
                pDao.modifierPublication(utilisateurId, publi);
        }

        public void ajouterPublication(Rafraichissable vue, String utilisateurId, Publication publi) {
                PublicationAsyncDao pDao = new PublicationAsyncDao(vue);
                pDao.ajouterPublication(utilisateurId, publi);
        }

        public void supprimerPublication(Rafraichissable vue, String utilisateurId, List<Publication> publicationListe) {
                String idPubs = "";
                for(Iterator<Publication> it = publicationListe.iterator(); it.hasNext();) {
                        Publication pub = it.next();
                        idPubs += pub.getId();
                        if(it.hasNext()) {
                                idPubs += ",";
                        }
                }
                PublicationAsyncDao pDao = new PublicationAsyncDao(vue);
                pDao.supprimerPublication(utilisateurId, idPubs);       
        }

}