Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 10 | Go to most recent revision | Blame | Last modification | View Log | RSS feed

package org.tela_botanica.client.modeles;

/**
 * Modele DAO, specifique, permettant la validation, l'acces aux donnees distantes et la présentation des donnees en retour
 * 
 */

import org.tela_botanica.client.Util;
import org.tela_botanica.client.interfaces.iRetourObservation;

import com.google.gwt.http.client.URL;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONNumber;
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 ObservationAsynchroneDAO {

        
        
        /**
         * Constructeur 
         */
        
        public ObservationAsynchroneDAO() {     
                
                
        }
        
        
        
        // TODO Classe Filtre pour les parametres ?
        
        public void getNombreObservation(String baseURL, final iRetourObservation retour, String identifiant, String identifiantLocalite, String localite, String annee,  String mois,  String jour, String lieudit, String rechercheLibre) {

                
                        HTTPRequest.asyncGet(baseURL + "/InventoryItemList/" + identifiant + "/" + identifiantLocalite + "/" + URL.encodeComponent(localite) + "/" + annee  + "/"  + mois  + "/"  + jour  + "/" + URL.encodeComponent(rechercheLibre) +  "/" + URL.encodeComponent(lieudit), 
                                        new ResponseTextHandler() {

                                                public void onCompletion(String str) {

                                                        JSONValue jsonValue = JSONParser.parse(str);
                                                        JSONNumber jsonNumber;
                                                        if ((jsonNumber = jsonValue.isNumber()) != null) {
                                                                retour.onRetour(new Observation((int) jsonNumber.getValue()));
                                                        }
                                                }
                                        });

                }



        public void getListeObservation(String baseURL,final iRetourObservation retour, String identifiant, String identifiantLocalite, String localite, String annee, String mois, String jour, String lieudit, String rechercheLibre, int debut, int longueur)
                        {
                

                HTTPRequest.asyncGet(baseURL + "/InventoryItemList/" + identifiant + "/" + identifiantLocalite + "/" + URL.encodeComponent(localite) +"/" + annee  + "/"  + mois  + "/"  + jour   + "/" + URL.encodeComponent(rechercheLibre) + "/" + URL.encodeComponent(lieudit) + "/"
                                + debut + "/" + longueur ,
                                
                                new ResponseTextHandler() {
                                
                                public void onCompletion(String str) {

                                        JSONValue jsonValue = JSONParser.parse(str);
                                        JSONArray jsonArray;
                                        JSONArray jsonArrayNested;
                                        
                                        if ((jsonArray = jsonValue.isArray()) != null) {
                                                        
                                                        if ((jsonArray = jsonValue.isArray()) != null) {
                                                                
                                                                int arraySize = jsonArray.size();
                                                                
                                                                Observation[] listeObservation=new Observation[arraySize];
                                                                
                                                                for (int i = 0; i < arraySize; i++) {
                                                                
                                                                        if ((jsonArrayNested = jsonArray.get(i).isArray()) != null) {
                                                                        
                                                                                String transmis=((JSONString) jsonArrayNested.get(13)).stringValue();
                                                                                String nomSaisi=Util.toCelString(((JSONString) jsonArrayNested.get(0)).toString());
                                                                                String nomRetenu=Util.toCelString(((JSONString) jsonArrayNested.get(2)).toString());
                                                                                String numeroNomenclatural=((JSONString) jsonArrayNested.get(3)).stringValue();
                                                                                String numeroTaxonomique=((JSONString) jsonArrayNested.get(4)).stringValue();
                                                                                String famille=Util.toCelString(((JSONString) jsonArrayNested .get(5)).toString());
                                                                                String localite=Util.toCelString(((JSONString) jsonArrayNested .get(6)).toString());
                                                                                String lieudit=Util.toCelString(((JSONString) jsonArrayNested .get(9)).toString());
                                                                                String station=Util.toCelString(((JSONString) jsonArrayNested .get(10)).toString());
                                                                                String milieu=Util.toCelString(((JSONString) jsonArrayNested .get(11)).toString());
                                                                                String commentaire=Util.toCelString(((JSONString) jsonArrayNested .get(12)).toString());
                                                                                String date=((JSONString) jsonArrayNested .get(8)).stringValue();
                                                                                String numeroOrdre=((JSONString) jsonArrayNested.get(7)).stringValue();
                                                                        
                                                                                listeObservation[i]=new Observation(transmis, nomSaisi, nomRetenu, numeroNomenclatural, numeroTaxonomique, famille, localite, lieudit, station, milieu, commentaire, date, numeroOrdre);
                                                                        }
                                                                }
                                                                retour.onRetour(new Observation(listeObservation));
                                                        
                                                        }
                                                        
                                        }
                                }
                                        
                        });
                                                
        }




}