Subversion Repositories eFlore/Archives.cel-v1

Rev

Rev 11 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.client;


// TODO : sortie User vers une classe ...
// TODO : sortie les boutons supprimer et exporter et inclure ici

import com.google.gwt.i18n.client.Dictionary;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.HTTPRequest;
import com.google.gwt.user.client.ResponseTextHandler;

public class Mediator {
                
                
                private String serviceBaseUrl = getServiceBaseUrlFromDictionnary();
                private String user = null;
                private TaxonList taxonlist = null;
                private LocationList locationList = null;
                private Cel cel = null;

                
                Mediator() {
                        
                        
                }
        
                /**
                 * Recuperation information utilisateur
                 *
                 */
                
                public void initUser() {
                        getUserFromService();
                        
                }
        
                /**
                 * Action sur selection d'un lieu
                 *
                 */
                
                public void onLocationSelected(String loc) {
                
                        taxonlist.setLocation(loc);
                        taxonlist.updateCount();
                        
                        
                }
        
                /**
                 * Action sur ajout d'un taxon
                 */
                
        
                public void onTaxonListUpdate(String loc) {

                        locationList.setLocation(loc);
                        locationList.update();
                
                }
                
                /**
                 * Enregistrement TaxonList
                 * @param taxonlist
                 */
                
                public void registerTaxonList(TaxonList taxonlist) {
                        
                        this.taxonlist=taxonlist;
                
                }
        
                /**
                 * Enregistremnt LocationList
                 * @param locationList
                 */
                
                public void registerLocationList(LocationList locationList) {
                        
                        this.locationList=locationList;
                }
                
                /**
                 * Enregistrement Cel
                 * @param cel
                 */

                public void registerCel(Cel cel) {
                        
                        this.cel=cel;
                }

                

                /**
                 * Recherche distante et asynchrone de l'utilisateur connecté, en retour lancement methode initialisation
                 * de l'appellant Cel. (initAsunc)
                 * 
                 */
                
                private void getUserFromService() {


                        HTTPRequest.asyncGet(serviceBaseUrl + "/User/",
                                        new ResponseTextHandler() {

                                                public void onCompletion(String str) {
                                                        JSONValue jsonValue = JSONParser.parse(str);
                                                        JSONString jsonString;
                                                        if ((jsonString = jsonValue.isString()) != null) {
                                                                user = jsonString.stringValue();
                                                        }
                                                        cel.initAsync();
                                                }
                                        });

                }
        
                /**
                 * Accesseur Url de base
                 * @return Url de base
                 */
                
                public String getServiceBaseUrl() {
                        
                        return serviceBaseUrl;

                }

                
                /**
                 * Recuperation du prefixe d'appel des services
                 * @return prefix appel des service
                 */

                private String getServiceBaseUrlFromDictionnary() {

                        Dictionary theme = Dictionary.getDictionary("Parameters");
                        return theme.get("serviceBaseUrl");

                }


                /**
                 *  Accesseur Utilisateur
                 * @return utilisateur connecté ou identifiant de session
                 */
                
                public String getUser() {
                        return user;
                }



        }