Rev 239 | Rev 258 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.modeles;import org.tela_botanica.client.interfaces.Rafraichissable;import com.google.gwt.http.client.Request;import com.google.gwt.http.client.RequestBuilder;import com.google.gwt.http.client.RequestCallback;import com.google.gwt.http.client.RequestException;import com.google.gwt.http.client.Response;import com.google.gwt.http.client.URL;import com.google.gwt.json.client.JSONArray;import com.google.gwt.json.client.JSONObject;import com.google.gwt.json.client.JSONParser;import com.google.gwt.json.client.JSONValue;import com.google.gwt.maps.client.geom.LatLng;import com.google.gwt.user.client.Window;public class InformationCommuneDAO {private final String NOM_SERVICE = "CoordSearch";private final String CODE_PAYS = "FR";Rafraichissable r = null;public InformationCommuneDAO(Rafraichissable r) {this.r = r;}public void obtenirCommunePlusProche(final Rafraichissable r, double lng,double lat) {String adresseAppel = Configuration.getServiceBaseUrl() + "/"+ NOM_SERVICE + "/" + URL.encode("" + lat) + "/"+ URL.encode("" + lng) + "/*/*/";RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, adresseAppel);try {rb.sendRequest(null, new RequestCallback() {public void onError(Request request, Throwable exception) {Window.alert(exception.getMessage());}public void onResponseReceived(Request request,Response response) {if (response.getStatusCode() == Response.SC_BAD_REQUEST) {Window.alert("Requete mal formée");} else {final JSONValue responseValue = JSONParser.parse(response.getText());if (responseValue.isObject() != null) {JSONObject resultat = responseValue.isObject();JSONArray tableauCommune = resultat.get("geonames").isArray();JSONObject objetCommune = tableauCommune.get(0).isObject();/*String valeurCommune = objetCommune.get("name").isString().stringValue();r.rafraichir(valeurCommune, false);*/String pays = objetCommune.get("countryName").isString().stringValue();if(!pays.equals("France")){r.rafraichir("Aucune commune française n'a été trouvée à cet emplacement", false);return;}Double lng = objetCommune.get("lng").isNumber().doubleValue();Double lat = objetCommune.get("lat").isNumber().doubleValue();String nomCommune = objetCommune.get("name").isString().stringValue();String idLocalite = objetCommune.get("adminCode2").isString().stringValue();Object[] infos = { lat, lng, idLocalite, nomCommune};r.rafraichir(infos, false);}}}});} catch (RequestException e) {Window.alert(e.getMessage());}}public void obtenirInfosCommune(final Rafraichissable r,String valeurCommune, String codePostal) {codePostal = codePostal.replaceAll("000null", "*");codePostal = codePostal.replaceAll("\"", "");valeurCommune = valeurCommune.replaceAll("000null", "*");valeurCommune = valeurCommune.replaceAll("\"", "");String adresseAppel = Configuration.getServiceBaseUrl() + "/"+ NOM_SERVICE + "/*/*/" + URL.encode(valeurCommune) + "/"+ URL.encode(codePostal) + "/"+ URL.encode(CODE_PAYS);RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, adresseAppel);try {rb.sendRequest(null, new RequestCallback() {public void onError(Request request, Throwable exception) {Window.alert(exception.getMessage());}public void onResponseReceived(Request request,Response response) {if (response.getStatusCode() == Response.SC_BAD_REQUEST) {r.rafraichir("Impossible de géolocaliser cette observation", false);} else {final JSONValue responseValue = JSONParser.parse(response.getText());if (responseValue.isObject() != null) {JSONObject resultat = responseValue.isObject();JSONArray tableauCommune = resultat.get("postalCodes").isArray();if (tableauCommune.get(0) != null) {JSONObject objetCommune = tableauCommune.get(0).isObject();Double lng = objetCommune.get("lng").isNumber().doubleValue();Double lat = objetCommune.get("lat").isNumber().doubleValue();String nomCommune = objetCommune.get("placeName").isString().stringValue();String idLocalite = objetCommune.get("adminCode2").isString().stringValue();Object[] infos = { lat, lng, idLocalite, nomCommune};r.rafraichir(infos, false);}}}}});} catch (RequestException e) {Window.alert(e.getMessage());}}}