Rev 2 | 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() {
}
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));
}
}
}
});
}
}