Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 36 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.client.modeles;


import org.tela_botanica.client.image.ImageModele;
import org.tela_botanica.client.interfaces.Rafraichissable;

import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.HTTPRequest;
import com.google.gwt.user.client.ResponseTextHandler;
import com.google.gwt.user.client.Window;

/**
 * DAO d'accès à l'arbre de mots clés
 * @author aurelien
 *
 */
public class MotsClesAsynchroneDAO {
        
        /**
         * Le modele associé au DAO
         */
        private ImageModele iModele = null ;
        
        public MotsClesAsynchroneDAO(ImageModele im)
        {
                iModele = im ;
        }
        
        /**
         * Setteur pour le modèle 
         * @param im le modèle à associer
         */
        public void setIModele(ImageModele im)
        {
                iModele = im ; 
        }
        
        /**
         * Envoie une requete au serveur jrest pour obtenir l'arbre des mots clés
         * @param r le rafraichissable qui demande les données
         */
        public void obtenirListeMotsCles(final Rafraichissable r)
        {
                // on demande tous les mots clés associés à l'utilisateur
                HTTPRequest.asyncGet("jrest/InventoryKeyWordList/"+iModele.getIdentifiant(), new ResponseTextHandler() {

                        public void onCompletion(String responseText) {
                                
                                final JSONValue responseValue = JSONParser.parse(responseText);
                                // si la requête est un succès on reçoit un tableau
                                if (responseValue.isArray() != null) {
                                        
                                        final JSONArray reponse = responseValue.isArray();
                                                // et on met à jour le demandeur des données
                                                r.rafraichir(reponse, true) ;           
                                }                                       
                        }                       
                });
        }
        
        /**
         * Envoie requete au serveur jrest pour ajouter un mot clé
         * @param motcle le mots clés à ajouter avec son parent et son identifiant
         */
        public void ajouterBaseDeDonnees(String motcle)
        {
                if(!motcle.equals(""))
                {
                        String postData = motcle ;
                        
                        // on fait un post asynchrone
                        HTTPRequest.asyncPost("jrest/InventoryKeyWordList/","&identifiant="+iModele.getIdentifiant()+postData, new ResponseTextHandler() {
        
                                public void onCompletion(String responseText) {
                                
                                        // si on reçoit une erreur d'ajout, on affiche un message d'erreur
                                        if(responseText.equals("ERROR"))
                                        {
                                                Window.alert("Attention, la base de données des mots clés n'est plus synchronisée avec l'application," +
                                                                "nous vous invitons à recharger la page. ") ;
                                        }
                                }
                                
                        }) ;
                }
        } 
        
        /**
         * Envoie requete au serveur jrest pour supprimer un mot clé
         * @param motcle le mots clés à supprimer
         */
        public void supprimerBaseDeDonnees(String motcle)
        {
                if(!motcle.equals(""))
                {
                        String postData = "" ;
                        postData += "&action=DELETE" ;
                        
                        HTTPRequest.asyncPost("jrest/InventoryKeyWordList/"+iModele.getIdentifiant()+"/"+motcle,postData, new ResponseTextHandler() {
        
                                public void onCompletion(String responseText) {
                                        
                                        if(responseText.equals("ERROR"))
                                        {
                                                Window.alert("Attention, la base de données des mots clés n'est plus synchronisée avec l'application," +
                                                                "nous vous invitons à recharger la page. ") ;
                                        }
                                }
                                
                        }) ;
                }
        }

        /**
         * Envoie requete au serveur jrest pour modifier un mot clé
         * @param motcle le mots clés à modifier avec son parent et son identifiant
         */
        public void modifierBaseDeDonnees(String motcle) {
                
                if(!motcle.equals(""))
                {

                String postData = "" ;
                postData += "&action=modification"+motcle ;
                        
                HTTPRequest.asyncPost("jrest/InventoryKeyWordList/"+iModele.getIdentifiant() ,postData, new ResponseTextHandler() {
        
                                public void onCompletion(String responseText) {
                                        
                                        
                                }
                                
                        }) ;
                }
                
        }
        
        /**
         * Envoie requete au serveur jrest pour modifier un mot clé
         * @param motcle le mots clés à ajouter avec son ancien parent, son nouveau et son identifiant
         */
        public void deplacerBaseDeDonnees(String motcle) {
                
                if(!motcle.equals(""))
                {

                String postData = "" ;
                postData += "&action=deplacement"+motcle ;
                        
                HTTPRequest.asyncPost("jrest/InventoryKeyWordList/"+iModele.getIdentifiant() ,postData, new ResponseTextHandler() {
        
                                public void onCompletion(String responseText) {
                                        
                                        
                                }
                                
                        }) ;
                }
                
        } 

}