Subversion Repositories eFlore/Applications.cel

Compare Revisions

No changes between revisions

Ignore whitespace Rev 2567 → Rev 2568

/trunk/src/org/tela_botanica/client/modeles/dao/InformationCommuneDAO.java
File deleted
/trunk/src/org/tela_botanica/client/modeles/dao/ListeReferentielCommuneAsynchroneDAO.java
File deleted
/trunk/src/org/tela_botanica/client/modeles/dao/ListeEntiteGeographiqueObservationAsynchroneDAO.java
18,7 → 18,7
import com.google.gwt.json.client.JSONValue;
 
/**
* DAO la liste des communes.
* DAO la liste des localites.
* @author David Delon
*
*/
40,23 → 40,10
public ListeEntiteGeographiqueObservationAsynchroneDAO(final ObservationModele obs) {
this.observationModele = obs;
}
/**
* Envoie une requete au serveur jrest pour obtenir les communes correspondant
* à des critères données en paramètres.
* @param r le rafraichissable qui demande la mise à jour
* @param critere un string contenant le terme a rechercher
*/
public final void obtenirListeEntitesGeographiques(final Rafraichissable r, final String utilisateur) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, Configuration.getServiceBaseUrl() + "/InventoryLocationList/" + utilisateur);
try {
rb.sendRequest(null, new RequestCallback() {
63,22 → 50,17
 
@Override
public void onError(final Request request, final Throwable exception) {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
}
 
@Override
public void onResponseReceived(final Request request,
final Response response) {
final ListeEntiteGeographiqueObservation listeEntiteGeographiqueObservation;
final JSONValue responseValue = JSONParser.parse(response.getText());
final ListeEntiteGeographiqueObservation listeEntiteGeographiqueObservation;
final JSONValue responseValue = JSONParser.parse(response.getText());
JSONArray reponse = null;
// si c'est un tableau
if ((reponse = responseValue.isArray()) != null) {
94,19 → 76,18
String zoneGeo = Util.getValeurJsonOuVide(entites, "zone_geo");
String lieuDit = Util.getValeurJsonOuVide(entites, "lieudit");
String station = Util.getValeurJsonOuVide(entites, "station");
String pays = Util.getValeurJsonOuVide(entites, "pays");
EntiteGeographiqueObservation ent = new EntiteGeographiqueObservation(idZoneGeo, zoneGeo, lieuDit, station);
ent.setPays(pays);
listeEntiteGeographiqueObservation.put(ent);
}
}
} else {
listeEntiteGeographiqueObservation = new ListeEntiteGeographiqueObservation(0);
}
// dans tous les cas on transmet la liste crée au rafraichissable en lui demandant de répandre les données car il est
// le premier à les recevoir
r.rafraichir(listeEntiteGeographiqueObservation, true);
}
119,4 → 100,4
}
}
}
}
/trunk/src/org/tela_botanica/client/modeles/dao/InformationLocaliteDAO.java
New file
0,0 → 1,200
package org.tela_botanica.client.modeles.dao;
 
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.objets.Configuration;
import org.tela_botanica.client.modeles.objets.EntiteGeographiqueObservation;
import org.tela_botanica.client.util.Util;
 
import com.google.gwt.http.client.Request;
import org.tela_botanica.client.util.RequestBuilderWithCredentials;
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.JSONObject;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.Window;
 
public class InformationLocaliteDAO {
 
private final String NOM_SERVICE = "CoordSearch";
private final String CODE_PAYS = "FR";
// Ce DAO peut être fréquemment sollicité lors de l'utilisation de la carte
// et peut empiler beaucoup de longues requête, ceci permet donc de les annuler facilement
private static Request requeteEnCours = null;
 
Rafraichissable r = null;
 
public InformationLocaliteDAO(Rafraichissable r) {
this.r = r;
}
 
public void obtenirLocalitePlusProche(final Rafraichissable r, final double lng,
final double lat) {
annulerRequeteEnCours();
 
String adresseAppel = Configuration.getServiceBaseUrl() + "/"
+ NOM_SERVICE + "?lat="+URL.encode("" + lat) + "&lon="+URL.encode("" + lng);
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, adresseAppel);
 
try {
requeteEnCours = rb.sendRequest(null, new RequestCallback() {
 
@Override
public void onError(Request request, Throwable exception) {
Window.alert(exception.getMessage());
requeteEnCours = null;
}
 
@Override
public void onResponseReceived(Request request,
Response response) {
EntiteGeographiqueObservation infos;
String idLocalite = "";
String nomLocalite = "";
String pays = "";
 
if (response.getStatusCode() == Response.SC_BAD_REQUEST) {
Window.alert("Requete mal formée");
} else {
if(response.getText().equals("")) {
 
infos = new EntiteGeographiqueObservation(idLocalite, nomLocalite, null, null);
infos.setLat(""+lat);
infos.setLon(""+lng);
r.rafraichir(infos, false);
}
final JSONValue responseValue = JSONParser
.parse(response.getText());
 
if (responseValue.isObject() != null) {
JSONObject objectRetour = responseValue.isObject();
if(objectRetour.get("nom").isString() != null) {
nomLocalite = objectRetour.get("nom").isString().stringValue();
}
if(objectRetour.get("code_zone").isString() != null) {
idLocalite = objectRetour.get("code_zone").isString().stringValue().substring(0, 2);
}
if(objectRetour.get("code_pays").isString() != null) {
pays = objectRetour.get("code_pays").isString().stringValue();
}
}
}
infos = new EntiteGeographiqueObservation(idLocalite, nomLocalite, null, null);
infos.setLat(""+lat);
infos.setLon(""+lng);
infos.setPays(pays);
 
r.rafraichir(infos, false);
}
});
} catch (RequestException e) {
Window.alert(e.getMessage());
}
}
 
public void obtenirInfosLocalite(final Rafraichissable r,
String valeurLocalite, String codeLoc) {
annulerRequeteEnCours();
codeLoc = codeLoc.replaceAll("000null", "*");
codeLoc = codeLoc.replaceAll("\"", "");
valeurLocalite = valeurLocalite.split(" \\([0-9][0-9]\\)")[0];
valeurLocalite = valeurLocalite.replaceAll("000null", "*");
valeurLocalite = valeurLocalite.replaceAll("\"", "");
String adresseAppel = Configuration.getServiceBaseUrl() + "/"
+ NOM_SERVICE+"?zone="+ URL.encode(valeurLocalite);
if(!codeLoc.trim().isEmpty()) {
// Cas du code de département ou postal
if(Util.estUnNombre(codeLoc)) {
adresseAppel += "&code="+URL.encode(codeLoc)+"&pays="+URL.encode(CODE_PAYS);
} else {
//cas du code pays
adresseAppel += "&pays="+URL.encode(codeLoc);
}
}
 
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, adresseAppel);
 
try {
requeteEnCours = rb.sendRequest(null, new RequestCallback() {
 
@Override
public void onError(Request request, Throwable exception) {
Window.alert(exception.getMessage());
}
 
@Override
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) {
EntiteGeographiqueObservation infos;
Double lng = 0.0;
Double lat = 0.0;
JSONObject objectRetour = responseValue.isObject();
String nomLocalite = Util.getValeurJsonOuVide(objectRetour, "nom");
String idLocalite = Util.getValeurJsonOuVide(objectRetour, "code_zone");
lat = Util.jsonNonNull(objectRetour,"lat") ? objectRetour.get("lat").isNumber().doubleValue(): 0.0;
lng = Util.jsonNonNull(objectRetour,"lng") ? objectRetour.get("lng").isNumber().doubleValue(): 0.0;
String pays = Util.getValeurJsonOuVide(objectRetour, "code_pays");
infos = new EntiteGeographiqueObservation(idLocalite, nomLocalite, null, null);
infos.setLat(""+lat);
infos.setLon(""+lng);
infos.setPays(pays);
r.rafraichir(infos, false);
} else {
EntiteGeographiqueObservation infos;
String idLocalite = "";
String nomLocalite = "";
 
infos = new EntiteGeographiqueObservation(idLocalite, nomLocalite, null, null);
infos.setLat("");
infos.setLon("");
r.rafraichir(infos, false);
}
}
}
});
} catch (RequestException e) {
Window.alert(e.getMessage());
}
}
public static void annulerRequeteEnCours() {
if(requeteEnCours != null) {
requeteEnCours.cancel();
requeteEnCours = null;
}
}
}
/trunk/src/org/tela_botanica/client/modeles/dao/ListeReferentielLocaliteAsynchroneDAO.java
New file
0,0 → 1,146
package org.tela_botanica.client.modeles.dao;
 
import java.util.HashMap;
 
import org.tela_botanica.client.interfaces.FournisseurListe;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.objets.Configuration;
import org.tela_botanica.client.modeles.objets.ListeReferentielLocalite;
import org.tela_botanica.client.modeles.objets.ReferentielLocalite;
import org.tela_botanica.client.observation.ObservationModele;
 
import com.google.gwt.http.client.Request;
import org.tela_botanica.client.util.RequestBuilderWithCredentials;
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.JSONParser;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
 
/**
* DAO la liste des localites. Utilisation d'un cache pour eviter les requetes inutiles
* @author David Delon
*
*/
public class ListeReferentielLocaliteAsynchroneDAO implements FournisseurListe {
 
/**
* Le modèle associé au DAO.
*/
private ObservationModele observationModele = null;
/**
* Cache
*
*/
private HashMap<String,ListeReferentielLocalite> cache = new HashMap();
/**
* Constructeur.
* @param obs : Modele
*/
public ListeReferentielLocaliteAsynchroneDAO(final ObservationModele obs) {
this.observationModele = obs;
}
/**
* Envoie une requete au serveur jrest pour obtenir les localites correspondant
* à des critères données en paramètres.
* @param r le rafraichissable qui demande la mise à jour
* @param critere un string contenant le terme a rechercher
*/
@Override
public final void obtenirListeDonnees(final Rafraichissable r, final String critere) {
ListeReferentielLocalite referentielLocaliteDataFromCache=null;
// En cache ?
if ((referentielLocaliteDataFromCache=getFromCache(critere))!=null) {
r.rafraichir(referentielLocaliteDataFromCache,true);
}
else {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, Configuration.getServiceBaseUrl() + "/LocationSearch/" + URL.encodeComponent(critere));
try {
rb.sendRequest(null, new RequestCallback() {
@Override
public void onError(final Request request, final Throwable exception) {
// TODO Auto-generated method stub
}
@Override
public void onResponseReceived(final Request request,
final Response response) {
final ListeReferentielLocalite referentielLocaliteData;
final JSONValue responseValue = JSONParser.parse(response.getText());
JSONArray reponse = null;
// si c'est un tableau
if ((reponse = responseValue.isArray()) != null) {
JSONArray localites;
final int taillemax = reponse.size();
referentielLocaliteData = new ListeReferentielLocalite(taillemax);
for (int i = 0; i < taillemax; i++) {
if ((localites = reponse.get(i).isArray()) != null) {
String localite = ((JSONString) localites.get(0)).stringValue();
String departement = ((JSONString) localites.get(1)).stringValue();
ReferentielLocalite com = new ReferentielLocalite(localite, departement);
referentielLocaliteData.put(com.getLocalite() + com.getCodeLocalite(), com);
}
}
} else {
referentielLocaliteData = new ListeReferentielLocalite(0);
}
addToCache(critere, referentielLocaliteData);
r.rafraichir(referentielLocaliteData, true);
}
});
} catch (RequestException e) {
e.printStackTrace();
}
} // Fin else si pas de cache
}
/**
* Fonction à implémenter dans le futur, lors de l'utilisation de plusieurs
* référentiels de localité
*/
@Override
public void obtenirListeDonnees(Rafraichissable r, String referentiel, String critere) {
// TODO Auto-generated method stub
}
private void addToCache(String query, ListeReferentielLocalite result) {
cache.put(query.toLowerCase(),result);
}
 
private ListeReferentielLocalite getFromCache (String query) {
return cache.get(query.toLowerCase());
}
}
/trunk/src/org/tela_botanica/client/modeles/dao/ObservationAsynchroneDAO.java
58,6 → 58,7
+"&nom_sel="+URL.encodeComponent(obs.getNomSaisi())
+"&nom_sel_nn="+obs.getNumeroNomenclaturalSaisi()
+"&zone_geo="+URL.encodeComponent(obs.getLocalite())
+"&pays="+ (obs.getPays() != null ? obs.getPays() : "")
+"&ce_zone_geo="+obs.getIdentifiantLocalite()
+"&date_observation=" + obs.getDate()
+"&lieudit="+ URL.encodeComponent(obs.getLieudit())
113,6 → 114,7
+ "&nom_sel=" + URL.encodeComponent(obs.getNomSaisi())
+ "&nom_sel_nn=" + obs.getNumeroNomenclaturalSaisi()
+ "&zone_geo=" + URL.encodeComponent(obs.getLocalite())
+"&pays="+ (obs.getPays() != null ? obs.getPays() : "")
+ "&ce_zone_geo=" + obs.getIdentifiantLocalite()
+ "&date_observation=" + obs.getDate()
+ "&lieudit="+ URL.encodeComponent(obs.getLieudit())
/trunk/src/org/tela_botanica/client/modeles/dao/ListeObservationAsynchroneDAO.java
60,7 → 60,7
if(criteres != null)
{
// on construit les paramètres du get avec les critères (&critere1=valeur1&critere2=valeur2 etc...)
// ils contiennent limite et taille page et autres filtres (communes , lieu dit etc ...)S
// ils contiennent limite et taille page et autres filtres (localites , lieu dit etc ...)S
for (int i = 0; i < criteres.length; i++) {
144,6 → 144,10
postData += "&nom_sel_nn=" + obs.getNumeroNomenclaturalSaisi();
}
if(obs.getPays() != null) {
postData += "&pays=" + URL.encodeComponent(obs.getPays());
}
if(obs.getIdentifiantLocalite() != null) {
postData += "&ce_zone_geo=" + obs.getIdentifiantLocalite();
}
/trunk/src/org/tela_botanica/client/modeles/objets/ReferentielCommune.java
File deleted
/trunk/src/org/tela_botanica/client/modeles/objets/ListeReferentielCommune.java
File deleted
/trunk/src/org/tela_botanica/client/modeles/objets/ReferentielLocalite.java
New file
0,0 → 1,41
package org.tela_botanica.client.modeles.objets;
 
/**
*
* Classe representant un element du referentiel de localites
*
*/
 
public class ReferentielLocalite {
 
private String localite = null;
private String codeLocalite = null;
private String codeInsee = null;
 
/**
* @param localite
* @param code
*/
public ReferentielLocalite(String localite, String code) {
this.localite = localite;
if(code.length() == 5) {
codeInsee = code;
codeLocalite = code.substring(0,2);
} else {
codeLocalite = code;
}
}
 
public String getLocalite() {
return localite;
}
 
public String getCodeLocalite() {
return codeLocalite;
}
 
public String getCodeInsee() {
return codeInsee;
}
}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/trunk/src/org/tela_botanica/client/modeles/objets/ListeReferentielLocalite.java
New file
0,0 → 1,53
package org.tela_botanica.client.modeles.objets;
 
import java.util.HashMap;
 
/**
* table de hachage composée de localites, renvoyé par les objets de type DAO
* pour les localites
* TODO : utiliser un identifiant localite
* La clé est le nom de la localite + code de la localite dans la base de données, et la valeur un objet
* de type ReferentielLocalite
* @author david delon
*
*/
public class ListeReferentielLocalite extends HashMap<String, ReferentielLocalite> {
private static final long serialVersionUID = 2714510270773281540L;
/**
* Constructeur sans paramètres
*/
public ListeReferentielLocalite()
{
super();
}
/**
* Constructeur avec paramètre
* @param taille la taille de la table de hachage
*/
public ListeReferentielLocalite(int taille)
{
super(taille);
}
/**
* Constructeur avec paramètre
* @param ic un tableau d'ImageCarnet
*/
public ListeReferentielLocalite(ReferentielLocalite[] com)
{
super() ;
for (int i = 0; i < com.length; i++)
{
if(com[i] != null && com[i] instanceof ReferentielLocalite)
{
this.put(com[i].getLocalite()+com[i].getCodeLocalite(),com[i]);
}
}
}
}
/trunk/src/org/tela_botanica/client/modeles/objets/Observation.java
34,6 → 34,7
private String certitude=null;
private String phenologie=null;
private String altitude=null;
private String pays=null;
private Map<String, ChampEtendu> champsEtendus=null;
 
60,7 → 61,7
* @param date
* @param numeroOrdre
*/
public Observation(String transmis, String nomSaisi, String nomRetenu, String numeroNomenclaturalSaisi, String numeroNomenclaturalRetenu, String numeroTaxonomique, String famille, String localite, String identifiantLocalite, String lieudit, String station, String milieu, String commentaire, String date, String numeroOrdre) {
public Observation(String transmis, String nomSaisi, String nomRetenu, String numeroNomenclaturalSaisi, String numeroNomenclaturalRetenu, String numeroTaxonomique, String famille, String localite, String identifiantLocalite, String lieudit, String station, String milieu, String commentaire, String date, String numeroOrdre, String pays) {
this.transmis = transmis;
this.nomSaisi = nomSaisi;
93,6 → 94,7
public Observation(JSONObject observation) {
this.transmis = Util.getValeurJsonOuVide(observation, "transmission");
this.pays = Util.getValeurJsonOuVide(observation, "pays");
this.identifiantLocalite = Util.getValeurJsonOuVide(observation, "ce_zone_geo");
this.nomSaisi = Util.getValeurJsonOuVide(observation, "nom_sel");
this.nomRetenu = (Util.getValeurJsonOuVide(observation,"nom_ret"));
202,6 → 204,14
}
return identifiantLocalite;
}
public String getPays() {
return pays;
}
public void setPays(String pays) {
this.pays = pays;
}
 
public String getMilieu() {
/trunk/src/org/tela_botanica/client/observation/ObservationModele.java
9,13 → 9,13
import org.tela_botanica.client.modeles.dao.ImageGeneriqueVueAsynchroneDAO;
import org.tela_botanica.client.modeles.dao.ImageInformationRepartitionAsynchroneDAO;
import org.tela_botanica.client.modeles.dao.ImportObservationAsynchroneDAO;
import org.tela_botanica.client.modeles.dao.InformationCommuneDAO;
import org.tela_botanica.client.modeles.dao.InformationLocaliteDAO;
import org.tela_botanica.client.modeles.dao.LiaisonMotsClesObsAsynchroneDAO;
import org.tela_botanica.client.modeles.dao.LienImageAsynchroneDAO;
import org.tela_botanica.client.modeles.dao.ListeDateObservationAsynchroneDAO;
import org.tela_botanica.client.modeles.dao.ListeEntiteGeographiqueObservationAsynchroneDAO;
import org.tela_botanica.client.modeles.dao.ListeObservationAsynchroneDAO;
import org.tela_botanica.client.modeles.dao.ListeReferentielCommuneAsynchroneDAO;
import org.tela_botanica.client.modeles.dao.ListeReferentielLocaliteAsynchroneDAO;
import org.tela_botanica.client.modeles.dao.ListeReferentielNomAsynchroneDAO;
import org.tela_botanica.client.modeles.dao.ListeReferentielPersoAsynchroneDAO;
import org.tela_botanica.client.modeles.dao.MotsClesAsynchroneDAO;
77,7 → 77,7
*/
private ListeReferentielNomAsynchroneDAO nomDAO=null;
private ListeReferentielCommuneAsynchroneDAO refDAO=null;
private ListeReferentielLocaliteAsynchroneDAO refDAO=null;
private ListeReferentielPersoAsynchroneDAO refPersoDAO=null;
 
/**
169,15 → 169,15
 
/**
* Obtenir une liste de commune
* Obtenir une liste de localites
* @param r
* @param critere
*/
public void obtenirListeReferentielCommune(Rafraichissable r, String critere) {
public void obtenirListeReferentielLocalite(Rafraichissable r, String critere) {
if (refDAO==null) {
refDAO=new ListeReferentielCommuneAsynchroneDAO(this);
refDAO=new ListeReferentielLocaliteAsynchroneDAO(this);
}
refDAO.obtenirListeDonnees(r, critere);
184,7 → 184,7
}
/**
* Obtenir une liste de commune
* Obtenir une liste de valeur vis à vis d'un champ donné pour un utilisateur
* @param r
* @param critere
*/
689,13 → 689,13
return (cacheObservation.get(ordreObs) != null) ? cacheObservation.get(ordreObs).getId() : null;
}
 
public void obtenirInformationCommune(Rafraichissable r, String nomCommune, String codePostal) {
InformationCommuneDAO infocommune = new InformationCommuneDAO(r);
infocommune.obtenirInfosCommune(r, nomCommune, codePostal);
public void obtenirInformationLocalite(Rafraichissable r, String nomLocalite, String code) {
InformationLocaliteDAO infoLocalite = new InformationLocaliteDAO(r);
infoLocalite.obtenirInfosLocalite(r, nomLocalite, code);
}
public void obtenirInformationCoord(Rafraichissable r, double lat, double lng) {
InformationCommuneDAO infocommune = new InformationCommuneDAO(r);
infocommune.obtenirCommunePlusProche(r, lng, lat);
InformationLocaliteDAO infoLocalite = new InformationLocaliteDAO(r);
infoLocalite.obtenirLocalitePlusProche(r, lng, lat);
}
}
/trunk/src/org/tela_botanica/client/observation/ObservationMediateur.java
8,7 → 8,7
import org.tela_botanica.client.CarnetEnLigneMediateur;
import org.tela_botanica.client.cel2;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.dao.InformationCommuneDAO;
import org.tela_botanica.client.modeles.dao.InformationLocaliteDAO;
import org.tela_botanica.client.modeles.objets.Configuration;
import org.tela_botanica.client.modeles.objets.EntiteGeographiqueObservation;
import org.tela_botanica.client.modeles.objets.InfosReferentielNom;
614,14 → 614,14
// Assistants de saisie
/**
*
* Lance un appel de recherche d'une liste de commune correspondant aux criteres de selectionne
* Lance un appel de recherche d'une liste de localite correspondant aux criteres de selection
* @param r : la vue demandeuse de donnee
* @param critere : les criteres de selection
*/
public void obtenirListeReferentielCommune(Rafraichissable r, String critere) {
public void obtenirListeReferentielLocalite(Rafraichissable r, String critere) {
observationModele.obtenirListeReferentielCommune(r,critere) ;
observationModele.obtenirListeReferentielLocalite(r,critere) ;
}
// Assistants de saisie
1131,8 → 1131,8
observationModele.obtenirInformationCoord(r, lat, lng);
}
public void obtenirInformationCommune(Rafraichissable r, String nomCommune, String codePostal) {
observationModele.obtenirInformationCommune(r,nomCommune, codePostal);
public void obtenirInformationLocalite(Rafraichissable r, String nomLocalite, String codeLoc) {
observationModele.obtenirInformationLocalite(r, nomLocalite, codeLoc);
}
 
public void obtenirInformationCoord(double lat, double lng) {
1143,7 → 1143,7
cartoObservationVue.setDoitZoomerSurRetour(true);
// Les requêtes hors France sont longues, on veille donc à ne pas les empiler
// inutilement pour ne pas les traiter au retour
InformationCommuneDAO.annulerRequeteEnCours();
InformationLocaliteDAO.annulerRequeteEnCours();
// Pour faire patienter l'utilisateur le temps de trouver la zone
//Util.curseurAttente();
afficherFenetreCarto();
1151,9 → 1151,8
observationModele.obtenirInformationCoord(cartoObservationVue, lat, lng);
}
 
public void obtenirInformationCommune(String nomCommune,
String codeLoc) {
observationModele.obtenirInformationCommune(cartoObservationVue, nomCommune, codeLoc);
public void obtenirInformationLocalite(String nomLocalite, String codeLoc) {
observationModele.obtenirInformationLocalite(cartoObservationVue, nomLocalite, codeLoc);
}
 
/**
1165,9 → 1164,9
cartoObservationVue.rafraichir(infos, false);
}
 
public void rafraichirSaisieCommuneObservation(EntiteGeographiqueObservation infosCommune) {
InformationCommuneDAO.annulerRequeteEnCours();
formulaireSaisieObservationVue.rafraichir(infosCommune, false);
public void rafraichirSaisieLocaliteObservation(EntiteGeographiqueObservation infosLocalite) {
InformationLocaliteDAO.annulerRequeteEnCours();
formulaireSaisieObservationVue.rafraichir(infosLocalite, false);
cacherFenetreCarto();
}
 
/trunk/src/org/tela_botanica/client/util/Util.java
79,15 → 79,15
String lieuModele = modeleLieu;
String commune = obs.getLocalite();
String localite = obs.getLocalite();
String lieuDit = obs.getLieudit();
String station = obs.getStation();
String lieuCommuneFormate = "";
String lieulocaliteFormate = "";
String lieuDitFormate = "";
String stationFormatee = "";
if(commune != null && !commune.contains("000null") && !commune.trim().equals("")) {
if(localite != null && !localite.contains("000null") && !localite.trim().equals("")) {
String idLoc =obs.getIdentifiantLocalite().replaceAll(" ","/");
if(idLoc != null && !idLoc.contains("000null") && !idLoc.trim().equals("")) {
 
98,13 → 98,13
if(idLoc.length() > 2) {
idLoc = idLoc.substring(0,2);
}
lieuCommuneFormate += idLoc+" - ";
lieulocaliteFormate += idLoc+" - ";
}
lieuCommuneFormate += commune;
lieuModele = lieuModele.replaceAll("IDLOCCOMMUNE", lieuCommuneFormate);
lieulocaliteFormate += localite;
lieuModele = lieuModele.replaceAll("IDLOCLOCALITE", lieulocaliteFormate);
} else {
lieuModele = lieuModele.replaceAll("IDLOCCOMMUNE,", lieuCommuneFormate);
lieuModele = lieuModele.replaceAll("IDLOCLOCALITE,", lieulocaliteFormate);
}
if(lieuDit != null && !lieuDit.contains("000null") && !lieuDit.trim().equals("")) {
128,10 → 128,10
return lieuModele;
}
public static String obtenirIdLocAPartirChaineCommune(String commune) {
public static String obtenirIdLocAPartirChaineLocalite(String localite) {
String idLoc = "";
String[] depCom = commune.split(" ");
String[] depCom = localite.split(" ");
if(depCom.length > 1) {
idLoc = depCom[1].replace('(', ' ');
} else {
/trunk/src/org/tela_botanica/client/vues/image/MiniListeObservationVue.java
85,7 → 85,7
int taillePage = 50;
private String modeleLieu = "IDLOCCOMMUNE, LIEUDIT, STATION";
private String modeleLieu = "IDLOCLOCALITE, LIEUDIT, STATION";
/**
* Nombre de pages totales
/trunk/src/org/tela_botanica/client/vues/observation/filtres/ArbreEntiteGeographiqueObservationFiltreVue.java
134,15 → 134,10
// enfin on considère le composant comme instancié
estInstancie = true;
 
}
 
});
}
 
/**
* ajoute les listeners pour les boutons et le cochage des entites
*/
181,13 → 176,11
nomFiltre = "" ;
entitesGeographiquesEncours = "" ;
String nomPere = "" ;
String nomGrandPere = "" ;
String nomArriereGrandPere = "";
switch(node.getDepth())
{
case 0:
String[] filtresStr = {"pays","departement","localite","lieudit","station"};
int profNoeud = node.getDepth();
if(profNoeud == 0) {
if(!arbreCharge)
{
arbreEntitesGeographiques.getRootNode().expand();
196,27 → 189,15
{
observationMediateur.obtenirNombreObservation() ;
}
return ;
case 4: nomFiltre += "station,lieudit,commune,departement";
nomPere = ((String[])node.getParentNode().getUserObject())[0] ;
nomGrandPere = ((String[])node.getParentNode().getParentNode().getUserObject())[0] ;
nomArriereGrandPere = ((String[])node.getParentNode().getParentNode().getParentNode().getUserObject())[0] ;
entitesGeographiquesEncours += node.getText()+","+nomPere+","+nomGrandPere+","+nomArriereGrandPere ;
break;
case 3: nomFiltre += "lieudit,commune,departement";
nomPere = ((String[])node.getParentNode().getUserObject())[0] ;
nomGrandPere = ((String[])node.getParentNode().getParentNode().getUserObject())[0] ;
entitesGeographiquesEncours += node.getText()+","+nomPere+","+nomGrandPere ;
break;
case 2: nomFiltre += "commune,departement";
nomPere = ((String[])node.getParentNode().getUserObject())[0] ;
entitesGeographiquesEncours += node.getText()+","+nomPere ;
break;
case 1: nomFiltre += "departement";
entitesGeographiquesEncours += node.getText() ;
break;
default:
break;
} else {
Node noeud = (Node)node;
for(int i = profNoeud - 1; i >= 0; i--) {
nomFiltre += filtresStr[i]+",";
entitesGeographiquesEncours += ((String[])noeud.getUserObject())[0]+",";
noeud = noeud.getParentNode();
}
nomFiltre.replaceAll(",$", "");
entitesGeographiquesEncours.replaceAll(",$", "");
}
filtreModifie = true ;
318,6 → 299,7
Observation obs = (Observation)nouvelleDonnees ;
EntiteGeographiqueObservation ent = new EntiteGeographiqueObservation(obs.getIdentifiantLocalite(),obs.getLocalite(),obs.getLieudit(),obs.getStation());
ent.setPays(obs.getPays());
creerHierarchieNoeud(arbreEntitesGeographiques.getTree(), arbreEntitesGeographiques.getRootNode(), ent);
514,6 → 496,8
String lieuDit=null;
String station=null;
String id_pays = ent.getPays();
// TODO creer une fonction plus efficace lors du passage au multi reférentiel
id_zone_geo = Util.convertirChaineZoneGeoVersDepartement(ent.getIdZoneGeo());
524,8 → 508,16
lieuDit = ent.getLieuDit();
station = ent.getStation();
if(id_pays.equals(null) || (id_pays.trim()).isEmpty()) {
id_pays="Inconnue" ;
}
if(id_zone_geo.contains("000null") || id_zone_geo.equals(null) || (id_zone_geo.trim()).equals("")) {
id_zone_geo="Inconnue" ;
} else {
if(ent.getIdZoneGeo().contains("INSEE-C:") && ent.getIdZoneGeo().length() > 10) {
id_pays = "FR";
}
}
if(zone_geo.contains("000null") || zone_geo.equals(null) || (zone_geo.trim().equals(""))) {
540,37 → 532,28
station="Inconnue" ;
}
Node noeudMemeId = arbre.getNodeById(""+id_zone_geo);
if(noeudMemeId == null) {
// on crée le noeud de l'identifiant zone_geo
noeudMemeId = creerNoeud(""+id_zone_geo,id_zone_geo);
root.appendChild(noeudMemeId) ;
}
String[] idLocalites = {id_pays, id_zone_geo, zone_geo, lieuDit, station};
// on teste si la localité existe
Node noeudMemeLoc = arbre.getNodeById(""+(id_zone_geo+zone_geo));
if(noeudMemeLoc == null)
{
// on crée le noeud de la zone_geo
noeudMemeLoc = creerNoeud(""+id_zone_geo+zone_geo, zone_geo);
noeudMemeId.appendChild(noeudMemeLoc) ;
}
Node noeudMemeId = null;
String idNoeud = "";
String locNiveau = "";
// on teste si le lieu dit existe
Node noeudMemeLieu = arbre.getNodeById(""+(id_zone_geo+zone_geo+lieuDit));
if(noeudMemeLieu == null)
{
// on crée le noeud du lieu dit
noeudMemeLieu = creerNoeud(id_zone_geo+zone_geo+lieuDit, lieuDit);
noeudMemeLoc.appendChild(noeudMemeLieu) ;
}
Node noeudParent = root;
// on teste si la station existe
Node noeudMemeStation = arbre.getNodeById(""+(id_zone_geo+zone_geo+lieuDit+station));
if(noeudMemeStation == null) {
// on crée le noeud de la station
noeudMemeStation = creerNoeud(id_zone_geo+zone_geo+lieuDit+station,station);
noeudMemeLieu.appendChild(noeudMemeStation);
for(int i = 0; i < idLocalites.length; i++) {
// Recherche des noeuds correspondant à chacun des niveaux de la hierarchie
locNiveau = idLocalites[i];
idNoeud += idLocalites[i];
noeudMemeId = arbre.getNodeById(idNoeud);
// Si le noeud n'existe pas on le crée
if(noeudMemeId == null) {
noeudMemeId = creerNoeud(idNoeud, locNiveau);
noeudParent.appendChild(noeudMemeId) ;
}
noeudParent = noeudMemeId;
}
root.sort(comparerNoeuds()) ;
620,22 → 603,26
int profondeur = 0;
if(nom.equals("departement")) {
if(nom.equals("pays")) {
profondeur = 1;
}
if(nom.equals("commune")) {
if(nom.equals("departement")) {
profondeur = 2;
}
if(nom.equals("lieudit")) {
if(nom.equals("localite")) {
profondeur = 3;
}
if(nom.equals("station")) {
if(nom.equals("lieudit")) {
profondeur = 4;
}
if(nom.equals("station")) {
profondeur = 5;
}
return profondeur;
}
/trunk/src/org/tela_botanica/client/vues/observation/ListeObservationVue.java
117,7 → 117,7
private final int KEY_ENTER = 13;
private String modeleLieu = "IDLOCCOMMUNE, LIEUDIT, STATION";
private String modeleLieu = "IDLOCLOCALITE, LIEUDIT, STATION";
 
 
private boolean tailleInitialisee = false ;
912,8 → 912,8
nomFiltre = "departement";
}
if(nomFiltre.equals("commune")) {
nomFiltre = "commune";
if(nomFiltre.equals("localite")) {
nomFiltre = "localite";
}
if(nomFiltre.equals("nom_taxon")) {
/trunk/src/org/tela_botanica/client/vues/observation/FormulaireSaisieObservationVue.java
16,11 → 16,11
import org.tela_botanica.client.modeles.objets.Configuration;
import org.tela_botanica.client.modeles.objets.EntiteGeographiqueObservation;
import org.tela_botanica.client.modeles.objets.ListeObservation;
import org.tela_botanica.client.modeles.objets.ListeReferentielCommune;
import org.tela_botanica.client.modeles.objets.ListeReferentielLocalite;
import org.tela_botanica.client.modeles.objets.ListeReferentielNom;
import org.tela_botanica.client.modeles.objets.Observation;
import org.tela_botanica.client.modeles.objets.Ontologies;
import org.tela_botanica.client.modeles.objets.ReferentielCommune;
import org.tela_botanica.client.modeles.objets.ReferentielLocalite;
import org.tela_botanica.client.modeles.objets.ReferentielNom;
import org.tela_botanica.client.modeles.objets.ListeReferentielPerso.TypesReferentiels;
import org.tela_botanica.client.observation.ObservationMediateur;
35,7 → 35,6
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.maps.gwt.client.LatLng;
import com.gwtext.client.core.EventCallback;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.Ext;
96,14 → 95,14
private ComboBox station = null;
private ComboBox milieu = null;
private TextField comment = null;
private ComboBox commune = null;
private ComboBox localite = null;
private String departement = null;
private String codeLocalite = null;
private String pays = null;
private ComboBox espece = null;
private String numeroNom = null;
private String numeroOrdre = null;
private String codeLoc = null;
private String referentielTaxo = null;
private String referentielGeo = null;
 
110,7 → 109,7
// Pour remise a zero partielle lors d'une validation
 
private enum Champs {
DATE, LIEUDIT, STATION, MILIEU, COMMENT, COMMUNE, ESPECE, TOUT, LATITUDE, LONGITUDE, ALTITUDE, ABONDANCE, CERTITUDE, REFERENTIELTAXO, PHENOLOGIE;
DATE, LIEUDIT, STATION, MILIEU, COMMENT, LOCALITE, ESPECE, TOUT, LATITUDE, LONGITUDE, ALTITUDE, ABONDANCE, CERTITUDE, REFERENTIELTAXO, PHENOLOGIE;
 
@Override
public String toString() {
119,8 → 118,8
case DATE:
return "date";
case COMMUNE:
return "commune";
case LOCALITE:
return "localite";
case LIEUDIT:
return "lieu dit";
159,7 → 158,7
return "phenologie";
case TOUT:
return "date, commune, lieu dit, station, milieu, espèce, commentaire, latitude, longitude, altitude, abondance, identification, referentiel, phenologie";
return "date, localite, lieu dit, station, milieu, espèce, commentaire, latitude, longitude, altitude, abondance, identification, referentiel, phenologie";
}
return TOUT.toString();
}
171,7 → 170,7
private Button boutonSupprimer = new Button("Supprimer");
private Button boutonAnnuler = new Button("Réinitialiser");
 
private boolean selectionCommune=false;
private boolean selectionlocalite=false;
private boolean selectionEspece=false;
private boolean selectionAbondance = false;
private boolean selectionCertitude = false;
180,8 → 179,8
private Toolbar bt = null ;
 
private final String VALEURS_MULTIPLES = "(Valeurs multiples)";
private final String modeleMessageModif = "commune:lieu-dit:station:milieu:latitude:longitude:altitude:date:espece:commentaire:abondance:identification:referentiel:phenologie";
private boolean communeModifiee = false;
private final String modeleMessageModif = "localite:lieu-dit:station:milieu:latitude:longitude:altitude:date:espece:commentaire:abondance:identification:referentiel:phenologie";
private boolean localiteModifiee = false;
private boolean lieuDitModifie = false;
private boolean stationModifiee = false;
private boolean milieuModifie = false;
227,13 → 226,13
 
private TextField altitude;
 
private MultiFieldPanel htmlCommunePanel = null;
private MultiFieldPanel htmllocalitePanel = null;
 
private MultiFieldPanel coordPanel;
 
private TextField coordonnees;
 
private Label lienSelectionCommune = null;
private Label lienSelectionlocalite = null;
 
private HTML afficherFormulaireLatLon;
 
247,11 → 246,11
 
private boolean altModifiee;
 
protected boolean rechercheCommuneEnCours = false;
protected boolean recherchelocaliteEnCours = false;
 
private Timer tCoord;
 
final String resultTplRefPerso = "<div class=\"search-item-commune\">{element_referentiel}</div>";
final String resultTplRefPerso = "<div class=\"search-item-localite\">{element_referentiel}</div>";
 
private ComboBox selecteurAbondance = null;
 
326,38 → 325,38
this.setPaddings(5) ;
 
// Accesskey pour debugging
commune = new ComboBox("Commune","commune\" accesskey=\"1");
localite = new ComboBox("Localite","localite\" accesskey=\"1");
 
final String resultTplCommune = "<div class=\"search-item-commune\">{commune}</div>";
commune.setTpl(resultTplCommune);
commune.setMode(ComboBox.REMOTE);
commune.setItemSelector("div.search-item-commune");
commune.setTypeAhead(true);
commune.setLoadingText("Recherche...");
commune.setHideTrigger(true);
final String resultTpllocalite = "<div class=\"search-item-localite\">{localite}</div>";
localite.setTpl(resultTpllocalite);
localite.setMode(ComboBox.REMOTE);
localite.setItemSelector("div.search-item-localite");
localite.setTypeAhead(true);
localite.setLoadingText("Recherche...");
localite.setHideTrigger(true);
 
//création du lien "Accès carto" dans le formulaire
String aideLienLocaliser = "Vous pouvez entrer une nom sous la forme commune (departement) ou bien commune (pays) "+
"avec un numéro de département sur 2 chiffres ou un code de pays àdeux lettres ";
String aideLienLocaliser = "Via une carte, obtenez les coordonnées (latitude/longitude) de votre observation, Vous pouvez entrer une nom sous la forme commune (departement) ou bien localite (pays) "+
"avec un numéro de département sur 2 chiffres ou un code de pays à deux lettres (format iso 3166 1)";
basculerverscarto = new HTML(" <a id=\"lien_carto\" title=\""+aideLienLocaliser+"\" href=\"#\" tabindex=\"2\">Localiser la zone</a>");
basculerverscarto.addStyleName("lien_actif");
 
//création info bulle sur le lien "accès carto"
ToolTip tip2 = new ToolTip();
tip2.setHtml("Via une carte, obtenez les coordonnées (latitude/longitude) de votre observation ");
tip2.setHtml(aideLienLocaliser);
tip2.applyTo(basculerverscarto.getElement());
 
//Sur une meme ligne, ajout de plusieurs champs
htmlCommunePanel = new MultiFieldPanel();
htmllocalitePanel = new MultiFieldPanel();
 
int largeurCommune = Window.getClientWidth()/4;
htmlCommunePanel.addToRow(commune, largeurCommune);
htmlCommunePanel.addToRow(basculerverscarto, 160);
int largeurlocalite = Window.getClientWidth()/4;
htmllocalitePanel.addToRow(localite, largeurlocalite);
htmllocalitePanel.addToRow(basculerverscarto, 160);
 
htmlCommunePanel.setBorder(false);
htmlCommunePanel.setId("x-commune-panel");
htmllocalitePanel.setBorder(false);
htmllocalitePanel.setId("x-localite-panel");
 
panneauPremierColonne.add(htmlCommunePanel);
panneauPremierColonne.add(htmllocalitePanel);
 
station = new AutoCompletionRefComboBox("Station", "station", observationMediateur, TypesReferentiels.REFERENTIEL_STATION) {
 
385,12 → 384,12
altitude.setGrowMax(70);
altitude.setAllowBlank(true);
 
lienSelectionCommune = new Label("");
lienSelectionlocalite = new Label("");
 
 
lienSelectionCommune.setId("conteneur_selection_commune");
lienSelectionCommune.setStyleName("conteneur_selection_commune");
lienSelectionCommune.addStyleName("lien_actif");
lienSelectionlocalite.setId("conteneur_selection_localite");
lienSelectionlocalite.setStyleName("conteneur_selection_localite");
lienSelectionlocalite.addStyleName("lien_actif");
 
// Panneau de type plusieurs champs de formulaire sur une meme ligne, où seront renseignés Lat/Lon
coordPanel = new MultiFieldPanel();
402,8 → 401,8
 
coordPanel.addToRow(latitude, new ColumnLayoutData(largeur));
coordPanel.addToRow(longitude, new ColumnLayoutData(largeur));
coordPanel.addToRow(lienSelectionCommune, new ColumnLayoutData(largeur));
lienSelectionCommune.addClass("lien_decale");
coordPanel.addToRow(lienSelectionlocalite, new ColumnLayoutData(largeur));
lienSelectionlocalite.addClass("lien_decale");
coordPanel.setBorder(false);
 
coordPanel.addToRow(altitude, new ColumnLayoutData(largeur));
604,7 → 603,7
panneauPremierColonne.doLayout();
panneauSecondeColonne.doLayout();
htmlCommunePanel.doLayout();
htmllocalitePanel.doLayout();
htmlPanel.doLayout();
doLayout();
776,11 → 775,11
@Override
public void execute(EventObject e) {
 
if(commune.getValue() != null && !commune.getValue().equals("")) {
obtenirInformationCommune();
if(localite.getValue() != null && !localite.getValue().equals("")) {
obtenirInformationLocalite();
longlatAjoutee = true;
} else {
Window.alert("Veuillez renseigner une commune et un numéro de département sous la forme : Commune (departement)");
Window.alert("Veuillez renseigner une localite suivie d'un numéro de département ou une localité suivie d'un code de pays à deux lettres \n Sous la forme : localite (departement) ou Localité (Pays)");
}
}
});
791,7 → 790,7
 
latitude.setWidth(largeurN+"px");
longitude.setWidth(largeurN+"px");
lienSelectionCommune.setWidth(largeurN+"px");
lienSelectionlocalite.setWidth(largeurN+"px");
}
}
 
800,10 → 799,10
// Listener completion communne
final Rafraichissable r = this;
ListenerConfig listenerConfigCommune=new ListenerConfig();
listenerConfigCommune.setDelay(200);
listenerConfigCommune.setStopPropagation(false);
listenerConfigCommune.setStopEvent(false);
ListenerConfig listenerConfiglocalite=new ListenerConfig();
listenerConfiglocalite.setDelay(200);
listenerConfiglocalite.setStopPropagation(false);
listenerConfiglocalite.setStopEvent(false);
 
date.addListener(new DatePickerListenerAdapter() {
 
828,9 → 827,9
@Override
public void run() {
double[] coord = coordonneesValides();
if(!rechercheCommuneEnCours && coord != null && (longModifiee || latModifiee)) {
rechercheCommuneEnCours = true;
Ext.get(lienSelectionCommune.getElement()).mask("recherche");
if(!recherchelocaliteEnCours && coord != null && (longModifiee || latModifiee)) {
recherchelocaliteEnCours = true;
Ext.get(lienSelectionlocalite.getElement()).mask("recherche");
observationMediateur.obtenirInformationCoord(r,coord[0], coord[1]);
}
}
837,7 → 836,7
 
};
 
ajouterListenerChampEvenementsClavier(commune, listenerConfigCommune);
ajouterListenerChampEvenementsClavier(localite, listenerConfiglocalite);
ajouterListenerChampEvenementsClavier(date);
ajouterListenerChampEvenementsClavier(selecteurReferentielTaxo);
ajouterListenerChampEvenementsClavier(espece, listenerConfigEspece);
890,20 → 889,19
this.addListener(new ContainerListenerAdapter() {
@Override
public void onAfterLayout(Container self) {
commune.focus();
localite.focus();
}
});
}
 
private void ajouterListenerChampsCombobox() {
commune.addListener(new ComboBoxListenerAdapter() {
localite.addListener(new ComboBoxListenerAdapter() {
@Override
public void onSelect(ComboBox comboBox, Record record, int index) {
commune.setValue(record.getAsString("commune"));
departement=record.getAsString("departement");
codeLoc=record.getAsString("codeInsee");
selectionCommune=true;
commune.collapse();
localite.setValue(record.getAsString("localite"));
codeLocalite=record.getAsString("departement");
selectionlocalite=true;
localite.collapse();
}
 
@Override
1058,14 → 1056,14
validerSaisie(Champs.DATE);
}
 
if(champ.equals(commune)) {
if(champ.equals(commune)) {
if (selectionCommune) {
communeModifiee= true;
selectionCommune=false;
if(champ.equals(localite)) {
if(champ.equals(localite)) {
if (selectionlocalite) {
localiteModifiee= true;
selectionlocalite=false;
}
else {
validerSaisie(Champs.COMMUNE);
validerSaisie(Champs.LOCALITE);
}
}
}
1128,11 → 1126,11
dateModifiee = true;
}
 
if(champ.equals(commune)) {
departement="";
commune.collapse();
obtenirListeReferentielCommune();
communeModifiee= true;
if(champ.equals(localite)) {
codeLocalite="";
localite.collapse();
obtenirListeReferentiellocalite();
localiteModifiee= true;
}
}
 
1168,38 → 1166,38
@Override
public void rafraichir(Object nouvelleDonnees, boolean repandreRaffraichissement) {
 
// si l'on a reçu une liste du referentiel commune (completion referentiel commune)
if(nouvelleDonnees instanceof ListeReferentielCommune)
// si l'on a reçu une liste du referentiel localite (completion referentiel localite)
if(nouvelleDonnees instanceof ListeReferentielLocalite)
{
ListeReferentielCommune data = (ListeReferentielCommune) nouvelleDonnees ;
Object[][] communeData = new Object[data.size()][3];
ListeReferentielLocalite data = (ListeReferentielLocalite) nouvelleDonnees ;
Object[][] localiteData = new Object[data.size()][3];
int i = 0 ;
 
// on la parse et on récupère les informations quiç nous interessent
for (Iterator it = data.keySet().iterator(); it.hasNext();)
{
ReferentielCommune ref=data.get(it.next());
ReferentielLocalite ref=data.get(it.next());
 
communeData[i][0]= ref.getCommune();
communeData[i][1]= ref.getDepartement();
communeData[i][2]= ref.getCodeInsee();
localiteData[i][0]= ref.getLocalite();
localiteData[i][1]= ref.getCodeLocalite();
localiteData[i][2]= ref.getCodeInsee();
i++ ;
}
 
// creation du store
FieldDef defCommune = new StringFieldDef("commune");
FieldDef deflocalite = new StringFieldDef("localite");
FieldDef defDepartement = new StringFieldDef("departement");
FieldDef defCodeInsee = new StringFieldDef("codeInsee");
 
FieldDef[] defTab = { defCommune, defDepartement, defCodeInsee};
FieldDef[] defTab = { deflocalite, defDepartement, defCodeInsee};
 
RecordDef rd = new RecordDef(defTab);
 
final MemoryProxy dataProxy = new MemoryProxy(communeData);
final MemoryProxy dataProxy = new MemoryProxy(localiteData);
final ArrayReader reader = new ArrayReader(rd);
 
Store store=new Store(dataProxy,reader);
commune.setStore(store);
localite.setStore(store);
store.load();
 
}
1275,98 → 1273,101
if(nouvelleDonnees instanceof EntiteGeographiqueObservation)
{
EntiteGeographiqueObservation infosComm = (EntiteGeographiqueObservation)nouvelleDonnees ;
if(rechercheCommuneEnCours) {
afficherIndicationCommune(infosComm);
if(recherchelocaliteEnCours) {
afficherIndicationlocalite(infosComm);
} else {
rafraichirCommuneEtCoord(infosComm);
rafraichirlocaliteEtCoord(infosComm);
}
}
}
 
private void afficherIndicationCommune(
private void afficherIndicationlocalite(
final EntiteGeographiqueObservation infosCom) {
 
String nCommune = "";
String nlocalite = "";
if(infosCom != null && infosCom.getZoneGeo() != null && !infosCom.getZoneGeo().trim().isEmpty()){
nCommune += infosCom.getZoneGeo();
nlocalite += infosCom.getZoneGeo();
if(!infosCom.getIdZoneGeo().trim().isEmpty()) {
if(Util.estUnNombre(infosCom.getIdZoneGeo())) {
nCommune += " ("+Util.convertirChaineZoneGeoVersDepartement(infosCom.getIdZoneGeo())+")";
} else if(infosCom.getPays() != null && infosCom.getPays().trim().isEmpty()) {
nCommune += " ("+infosCom.getPays()+")";
nlocalite += " ("+Util.convertirChaineZoneGeoVersDepartement(infosCom.getIdZoneGeo())+")";
}
} else if(infosCom.getPays() != null && !infosCom.getPays().trim().isEmpty()) {
nlocalite += " ("+infosCom.getPays()+")";
}
 
lienSelectionCommune.setHtml("<a id=\"lien_selection_commune\" tabindex=\"9\">"+nCommune+"</a>");
lienSelectionCommune.setStyleName("img-curseur-depl");
lienSelectionlocalite.setHtml("<a id=\"lien_selection_localite\" tabindex=\"9\">"+nlocalite+"</a>");
lienSelectionlocalite.setStyleName("img-curseur-depl");
 
Ext.get("lien_selection_commune").addListener("click",new EventCallback() {
Ext.get("lien_selection_localite").addListener("click",new EventCallback() {
@Override
public void execute(EventObject e) {
rafraichirCommune(infosCom);
rafraichirlocalite(infosCom);
}
});
 
Ext.get("lien_selection_commune").addListener("keypress",new EventCallback() {
Ext.get("lien_selection_localite").addListener("keypress",new EventCallback() {
@Override
public void execute(EventObject e) {
if(e.getCharCode() == KEY_ENTER) {
rafraichirCommune(infosCom);
rafraichirlocalite(infosCom);
}
}
});
 
Ext.get("lien_selection_commune").addListener("focus",new EventCallback() {
Ext.get("lien_selection_localite").addListener("focus",new EventCallback() {
@Override
public void execute(EventObject e) {
Ext.get("lien_selection_commune").toggleClass("lien_sel");
Ext.get("lien_selection_localite").toggleClass("lien_sel");
}
});
 
Ext.get("lien_selection_commune").addListener("blur",new EventCallback() {
Ext.get("lien_selection_localite").addListener("blur",new EventCallback() {
@Override
public void execute(EventObject e) {
Ext.get("lien_selection_commune").toggleClass("lien_sel");
Ext.get("lien_selection_localite").toggleClass("lien_sel");
}
});
 
} else {
if(rechercheCommuneEnCours) {
lienSelectionCommune.setHtml("<span id=\"aucune_selection_commune\"> Erreur de localisation </span>");
if(recherchelocaliteEnCours) {
lienSelectionlocalite.setHtml("<span id=\"aucune_selection_localite\"> Erreur de localisation </span>");
} else {
lienSelectionCommune.setHtml("<span id=\"aucune_selection_commune\"> </span>");
lienSelectionlocalite.setHtml("<span id=\"aucune_selection_localite\"> </span>");
}
}
 
Ext.get(lienSelectionCommune.getElement()).unmask();
rechercheCommuneEnCours = false;
Ext.get(lienSelectionlocalite.getElement()).unmask();
recherchelocaliteEnCours = false;
}
 
private void rafraichirCommune(EntiteGeographiqueObservation infosCom) {
String nCommune = "";
private void rafraichirlocalite(EntiteGeographiqueObservation infosCom) {
String nlocalite = "";
 
if(infosCom.getZoneGeo() != null && !infosCom.getZoneGeo().equals("")) {
nCommune += infosCom.getZoneGeo();
nlocalite += infosCom.getZoneGeo();
}
if(Util.estUnNombre(infosCom.getIdZoneGeo())) {
String codeGeoFormate = Util.convertirChaineZoneGeoVersDepartement(infosCom.getIdZoneGeo());
nCommune += " ("+codeGeoFormate+")";
departement = Util.convertirChaineZoneGeoVersDepartement(infosCom.getIdZoneGeo());
} else if(infosCom.getPays() != null && infosCom.getPays().trim().isEmpty()) {
nCommune += " ("+infosCom.getPays()+")";
nlocalite += " ("+codeGeoFormate+")";
codeLocalite = Util.convertirChaineZoneGeoVersDepartement(infosCom.getIdZoneGeo());
} else if(infosCom.getPays() != null && !infosCom.getPays().trim().isEmpty()) {
nlocalite += " ("+infosCom.getPays()+")";
}
if (! nCommune.equals("")) {
commune.setValue(nCommune);
communeModifiee = true;
if (!nlocalite.equals("")) {
// Afin de pas effacer un pays précédemment saisi
if(!localite.getValue().contains(nlocalite)) {
localite.setValue(nlocalite);
}
localiteModifiee = true;
}
}
 
// Se déclenche au retour de la "localisation sur la carte"
private void rafraichirCommuneEtCoord(EntiteGeographiqueObservation infosCom) {
private void rafraichirlocaliteEtCoord(EntiteGeographiqueObservation infosCom) {
rafraichirCommune(infosCom);
rafraichirlocalite(infosCom);
if(infosCom.getLat() != null && !infosCom.getLat().equals("")) {
latitude.setValue(Util.tronquerNombrePourAffichage("" + infosCom.getLat(), 5));
}
1381,12 → 1382,12
coordPanel.setVisible(true);
}
 
public void obtenirListeReferentielCommune() {
public void obtenirListeReferentiellocalite() {
 
String com=commune.getText();
String com=localite.getText();
com=com.replaceAll("%","");
 
observationMediateur.obtenirListeReferentielCommune(this,com);
observationMediateur.obtenirListeReferentielLocalite(this,com);
 
}
 
1418,36 → 1419,14
return;
}
 
if(departement != null) {
if(departement.equals("000null") || departement.equals("")) {
String[] depCom = commune.getText().split(" ");
if(depCom.length > 1) {
String dep = depCom[1].replace('(', ' ');
dep =dep.replace(')', ' ');
dep = dep.trim();
dep = dep.replace('\\',' ');
dep = dep.trim();
affecterCodeLocaliteOuPays();
 
try
{
int nDep = Integer.parseInt(dep);
if(nDep > 0 && nDep < 110) {
departement = dep ;
}
}
catch(NumberFormatException e)
{
departement = "" ;
}
}
}
}
 
String dateObs = Util.remplacerSeparateursDateFormatCel(date.getRawValue());
 
Observation obs=new Observation(espece.getText(),numeroNom,commune.getText(),departement,lieudit.getText(),station.getText(),milieu.getText(), comment.getText(),dateObs);
Observation obs=new Observation(espece.getText(),numeroNom,localite.getText(),codeLocalite,lieudit.getText(),station.getText(),milieu.getText(), comment.getText(),dateObs);
 
String[] coords = getValeurCoordonnees();
obs.setPays(pays);
obs.setLatitude(coords[0]);
obs.setLongitude(coords[1]);
obs.setAltitude(altitude.getText());
1474,36 → 1453,16
return;
}
 
if(departement.equals("000null") || departement.equals("")) {
String[] depCom = commune.getText().split(" ");
if(depCom.length > 1) {
String dep = depCom[1].replace('(', ' ');
dep =dep.replace(')', ' ');
dep = dep.trim();
dep = dep.replace('\\',' ');
dep = dep.trim();
 
try
{
int nDep = Integer.parseInt(dep);
if(nDep > 0 && nDep < 110) {
departement = dep ;
}
}
catch(NumberFormatException e)
{
departement = "" ;
}
}
}
 
affecterCodeLocaliteOuPays();
String dateObs = Util.remplacerSeparateursDateFormatCel(date.getRawValue());
 
Observation obs=new Observation(espece.getText(),numeroNom,commune.getText(),departement,lieudit.getText(),station.getText(),milieu.getText(), comment.getText(),dateObs);
Observation obs=new Observation(espece.getText(),numeroNom,localite.getText(),codeLocalite,lieudit.getText(),station.getText(),milieu.getText(), comment.getText(),dateObs);
obs.setNumeroOrdre(numeroOrdre);
 
String[] coords = getValeurCoordonnees();
 
obs.setPays(pays);
obs.setLatitude(coords[0]);
obs.setLongitude(coords[1]);
obs.setAltitude(altitude.getText());
1517,11 → 1476,31
observationMediateur.modifierObservation(obs);
}
 
private void affecterCodeLocaliteOuPays() {
codeLocalite = "";
pays = "";
// Soit un numéro de département, soit un code de pays à deux lettres
String[] codeCom = localite.getText().split(" ");
if(codeCom.length > 1) {
String codeLoc = codeCom[1].replace('(', ' ');
codeLoc = codeLoc.replace(')', ' ').trim().replace('\\',' ').trim();
 
if(Util.estUnNombre(codeLoc)) {
codeLocalite = codeLoc ;
} else {
pays = codeLoc;
}
}
}
 
private void modifierObservationEnMasse(Champs champModifie) {
 
//TODO: factoriser
String communeM = null;
String departementM = null;
String paysM = null;
String localiteM = null;
String codeLocaliteM = null;
String numNomSelM = null;
String lieuDitM = null;
String stationM = null;
1539,33 → 1518,25
 
String champs = modeleMessageModif;
 
if(communeModifiee && ! commune.getRawValue().equals(VALEURS_MULTIPLES)) {
communeM = commune.getText();
if(localiteModifiee && ! localite.getRawValue().equals(VALEURS_MULTIPLES)) {
localiteM = localite.getText();
// Soit un numéro de département, soit un code de pays à deux lettres
String[] codeCom = localite.getText().split(" ");
if(codeCom.length > 1) {
String codeLoc = codeCom[1].replace('(', ' ');
codeLoc = codeLoc.replace(')', ' ').trim().replace('\\',' ').trim();
 
if(departement.equals("000null") || departement.equals("")) {
String[] depCom = commune.getText().split(" ");
if(depCom.length > 1) {
String dep = depCom[1].replace('(', ' ');
dep =dep.replace(')', ' ');
dep = dep.trim();
dep = dep.replace('\\',' ');
dep = dep.trim();
 
try {
int nDep = Integer.parseInt(dep);
if(nDep > 0 && nDep < 110) {
departement = dep ;
}
}
catch(NumberFormatException e) {
departement = "" ;
}
if(Util.estUnNombre(codeLoc)) {
codeLocaliteM = codeLoc ;
} else {
paysM = codeLoc;
}
}
departementM = departement;
}
else {
champs = champs.replaceAll("commune", "");
champs = champs.replaceAll("localite", "");
}
 
if(lieuDitModifie && ! lieudit.getRawValue().equals(VALEURS_MULTIPLES)) {
1658,7 → 1629,8
if(champs.trim().equals("")) {
Window.alert("Aucun champ n'a été modifié");
} else {
Observation obs = new Observation(especeM,numNomSelM,communeM,departementM,lieuDitM,stationM,milieuM, commM,dateM);
Observation obs = new Observation(especeM,numNomSelM,localiteM,codeLocaliteM,lieuDitM,stationM,milieuM, commM,dateM);
obs.setPays(paysM);
obs.setNumeroOrdre(numeroOrdre);
obs.setLatitude(latM);
obs.setLongitude(longM);
1697,6 → 1669,10
idLoc = idLoc.substring(0,2);
}
}
if(obs.getIdentifiantLocalite().isEmpty() && !obs.getPays().isEmpty()) {
idLoc = obs.getPays();
}
 
if(!obs.getDate().equals("null") && !obs.getDate().equals("000null") && !obs.getDate().equals(VALEURS_MULTIPLES)) {
String[] dateEtHeure = obs.getDate().split(" ", 2);
1728,18 → 1704,18
if(!obs.getLocalite().equals("null") && !obs.getLocalite().equals("000null")) {
if(!idLoc.equals("000null") && !idLoc.equals("")) {
if(!idLoc.equals(VALEURS_MULTIPLES)) {
commune.setValue(obs.getLocalite()+" ("+idLoc+")") ;
localite.setValue(obs.getLocalite()+" ("+idLoc+")") ;
} else {
commune.setValue(VALEURS_MULTIPLES);
localite.setValue(VALEURS_MULTIPLES);
}
}
else
{
commune.setValue(obs.getLocalite());
localite.setValue(obs.getLocalite());
}
}
if(!obs.getIdentifiantLocalite().equals("null") && !obs.getIdentifiantLocalite().equals("000null")) {
departement = idLoc;
codeLocalite = idLoc;
}
if(!obs.getNomSaisi().equals("null") && !obs.getNomSaisi().equals("000null")) {
espece.setValue(obs.getNomSaisi()) ;
1929,9 → 1905,10
comment.reset() ;
break;
 
case COMMUNE:
commune.reset() ;
departement ="";
case LOCALITE:
localite.reset() ;
codeLocalite ="";
pays="";
latitude.reset();
longitude.reset();
break;
1944,12 → 1921,12
 
case LATITUDE:
latitude.reset();
afficherIndicationCommune(null);
afficherIndicationlocalite(null);
break;
 
case LONGITUDE:
longitude.reset();
afficherIndicationCommune(null);
afficherIndicationlocalite(null);
break;
 
case ALTITUDE:
1973,7 → 1950,7
break;
 
case TOUT:
commune.reset();
localite.reset();
date.reset() ;
lieudit.reset() ;
station.reset() ;
1983,7 → 1960,8
latitude.reset();
longitude.reset();
altitude.reset();
departement ="";
pays="";
codeLocalite ="";
espece.reset();
selecteurAbondance.clearValue();
selecteurCertitude.clearValue();
1992,7 → 1970,7
referentielTaxo = "";
numeroNom = "" ;
numeroOrdre = "";
afficherIndicationCommune(null);
afficherIndicationlocalite(null);
break;
 
}
2027,8 → 2005,9
 
private void calculerAfficherDifferences(ListeObservation listeObs) {
 
String departement = null;
String commune = null;
String codeLocalite = null;
String pays = null;
String localite = null;
String lieuDit = null;
String station = null;
String milieu = null;
2047,8 → 2026,9
 
for(Iterator<String> it = listeObs.keySet().iterator();it.hasNext();) {
Observation obsEnCours = listeObs.get(it.next());
departement = comparerDifferencesChamps(departement, obsEnCours.getIdentifiantLocalite());
commune = comparerDifferencesChamps(commune, obsEnCours.getLocalite());
pays = comparerDifferencesChamps(pays, obsEnCours.getPays());
codeLocalite = comparerDifferencesChamps(codeLocalite, obsEnCours.getIdentifiantLocalite());
localite = comparerDifferencesChamps(localite, obsEnCours.getLocalite());
lieuDit = comparerDifferencesChamps(lieuDit, obsEnCours.getLieudit());
station = comparerDifferencesChamps(station, obsEnCours.getStation());
milieu = comparerDifferencesChamps(milieu, obsEnCours.getMilieu());
2066,7 → 2046,8
ordreObs += obsEnCours.getNumeroOrdre()+",";
}
 
Observation obs=new Observation(espece,numeroNom,commune,departement,lieuDit,station,milieu, notes,date);
Observation obs=new Observation(espece,numeroNom,localite,codeLocalite,lieuDit,station,milieu, notes,date);
obs.setPays(pays);
obs.setNumeroOrdre(ordreObs);
obs.setLatitude(lat);
obs.setLongitude(lon);
2095,7 → 2076,7
}
 
private void reinitialiserValeurModifiees() {
communeModifiee = false;
localiteModifiee = false;
lieuDitModifie = false;
stationModifiee = false;
milieuModifie = false;
2113,7 → 2094,7
 
public void saisieTabindex()
{
commune.setTabIndex(1);
localite.setTabIndex(1);
lieudit.setTabIndex(3);
station.setTabIndex(4);
milieu.setTabIndex(5);
2195,17 → 2176,17
}
}
 
private void obtenirInformationCommune() {
private void obtenirInformationLocalite() {
String idLoc = "";
if(departement != null && !departement.isEmpty()) {
idLoc = departement;
if(codeLocalite != null && !codeLocalite.isEmpty()) {
idLoc = codeLocalite;
} else {
idLoc = Util.obtenirIdLocAPartirChaineCommune(commune.getText());
idLoc = Util.obtenirIdLocAPartirChaineLocalite(localite.getText());
if(Util.estUnNombre(idLoc)) {
idLoc = Util.formaterDepartement(idLoc);
}
}
observationMediateur.obtenirInformationCommune(getCommuneSansIdLoc(), idLoc);
observationMediateur.obtenirInformationLocalite(getlocaliteSansIdLoc(), idLoc);
}
 
public double[] coordonneesValides() {
2234,18 → 2215,18
}
}
 
public String getCommune() {
public String getlocalite() {
 
String valeurCommune = "";
String valeurlocalite = "";
 
if(commune.getValue() != null) {
valeurCommune = commune.getValue();
if(localite.getValue() != null) {
valeurlocalite = localite.getValue();
}
return valeurCommune;
return valeurlocalite;
}
 
public String getCommuneSansIdLoc() {
return Util.supprimerChaineIdLocalite(getCommune());
public String getlocaliteSansIdLoc() {
return Util.supprimerChaineIdLocalite(getlocalite());
}
 
private String getValeurChampListeLibre(ComboBox champ) {
2284,8 → 2265,8
return Ontologies.getInfosReferentielNomParCode(codeCourt).getCodeVersionComplet();
}
 
public boolean communeInitialisee() {
return communeModifiee;
public boolean localiteInitialisee() {
return localiteModifiee;
}
 
public void redimensionnerFormulaire() {
/trunk/src/org/tela_botanica/client/vues/observation/PanneauFiltresObservationVues.java
170,7 → 170,7
arbreDateObservationFiltreVue.viderFiltre(nom);
}
if(nom.equals("station") || nom.equals("lieudit") || nom.equals("departement") || nom.equals("commune")) {
if(nom.equals("pays") || nom.equals("station") || nom.equals("lieudit") || nom.equals("departement") || nom.equals("localite")) {
arbreEntiteGeographiqueObservationFiltreVue.viderFiltre(nom);
}
 
/trunk/src/org/tela_botanica/client/vues/observation/CartographieObservationVue.java
43,10 → 43,11
private boolean carteAjoutee = false;
private boolean infoOuverte = false;
 
String valeurCommune = "Bourges"; // j'aurais préféré Bort-les-Orgues
String valeurLocalite = "Bourges"; // j'aurais préféré Bort-les-Orgues
LatLng centreFrance = null;
LatLng pointCommune = null;
LatLng pointLocalite = null;
String codeLoc = "";
String pays = "";
 
int niveauZoom = 6;
 
89,7 → 90,7
if(panneauCarto.isVisible()) {
if(masquer) {
panneauCarto.getEl().mask("Recherche des coordonnées et de la commune, veuillez patienter");
panneauCarto.getEl().mask("Recherche des coordonnées et de la localite, veuillez patienter");
} else {
panneauCarto.getEl().unmask();
}
96,21 → 97,22
}
}
public void obtenirInfosCommunes(LatLng coord) {
public void obtenirInfosLocalites(LatLng coord) {
// Remise à zéro des infos restantes d'une ancienne requete
valeurCommune = "";
valeurLocalite = "";
codeLoc = "";
pays = "";
oMediateur.obtenirInformationCoord(this, coord.lat(), coord.lng());
}
 
public void mettreAJourInfos(final LatLng pointNouvelleCommune, int zoom) {
public void mettreAJourInfos(final LatLng pointNouvelleLocalite, int zoom) {
GoogleMap mapNulle = null;
if(nmk != null) {
nmk.setMap(mapNulle);
}
pointCommune = pointNouvelleCommune;
nmk = fabriquerMarqueur(pointCommune);
pointLocalite = pointNouvelleLocalite;
nmk = fabriquerMarqueur(pointLocalite);
nmk.setMap(map);
afficherInfoMarker(nmk, construireContenuInfoMarker(nmk));
recentrerCarte(nmk.getPosition());
117,12 → 119,12
map.setZoom(zoom);
}
 
private void initialiserCarte(boolean commune) {
private void initialiserCarte(boolean localite) {
 
panneauCarto.clear();
 
centreFrance = LatLng.create(47.0504, 2.2347);
pointCommune = centreFrance;
pointLocalite = centreFrance;
 
MapOptions options = MapOptions.create();
options.setCenter(centreFrance);
145,7 → 147,7
}
});
if(!commune) {
if(!localite) {
fabriquerMarqueurIndication();
}
152,7 → 154,7
map.addClickListener(new ClickHandler() {
@Override
public void handle(MouseEvent event) {
obtenirInfosCommunes(event.getLatLng());
obtenirInfosLocalites(event.getLatLng());
}
});
175,10 → 177,10
if(nmk != null) {
nmk.setMap(mapNulle);
}
nmk = fabriquerMarqueur(pointCommune);
nmk = fabriquerMarqueur(pointLocalite);
nmk.setMap(map);
info.setContent("<div id=\"info_contenu\">"+
"Déplacez ce marqueur pour localiser votre observation (commune et coordonnées)<br />"
"Déplacez ce marqueur pour localiser votre observation (localite et coordonnées)<br />"
+"longitude="
+ Util.tronquerNombrePourAffichage("" + nmk.getPosition().lng(), 5) + "<br />latitude="
+ Util.tronquerNombrePourAffichage("" + nmk.getPosition().lat(), 5) + "</div>");
211,11 → 213,11
bouton.addListener("click", new EventCallback() {
@Override
public void execute(EventObject e) {
EntiteGeographiqueObservation infosCommune = new EntiteGeographiqueObservation(codeLoc,valeurCommune,null,null);
// TODO: ajouter pays à tout Ceci
infosCommune.setLat(pointCommune.lat()+"");
infosCommune.setLon(pointCommune.lng()+"");
oMediateur.rafraichirSaisieCommuneObservation(infosCommune);
EntiteGeographiqueObservation infosLocalite = new EntiteGeographiqueObservation(codeLoc,valeurLocalite,null,null);
infosLocalite.setPays(pays);
infosLocalite.setLat(pointLocalite.lat()+"");
infosLocalite.setLon(pointLocalite.lng()+"");
oMediateur.rafraichirSaisieLocaliteObservation(infosLocalite);
}
});
257,10 → 259,11
niveauZoom = infos.getZoom();
}
 
String nouvelleValeurCommune = infos.getZoneGeo();
valeurCommune = nouvelleValeurCommune;
String nouvelleValeurLocalite = infos.getZoneGeo();
valeurLocalite = nouvelleValeurLocalite;
codeLoc = "";
if(infos.getIdZoneGeo() != null) {
// Quoi stocker pour en dehors de la france ?
if (infos.getPays().equals("FR")) {
codeLoc = Util.convertirChaineZoneGeoVersDepartement(infos.getIdZoneGeo());
} else {
267,7 → 270,8
codeLoc = infos.getPays();
}
}
pointCommune = coord;
pays = infos.getPays();
pointLocalite = coord;
mettreAJourInfos(coord, niveauZoom);
}
287,7 → 291,7
@Override
public void handle(MouseEvent event) {
afficherInfoMarker(marker, construireContenuPartielInfoMarker(marker));
obtenirInfosCommunes(event.getLatLng());
obtenirInfosLocalites(event.getLatLng());
}
});
342,7 → 346,7
 
String contenuMarker = "";
if(valeurCommune == null || valeurCommune.trim().equals("")) {
if(valeurLocalite == null || valeurLocalite.trim().equals("")) {
if(marker.getPosition().lng() == 0 && marker.getPosition().lat() == 0) {
LatLng point = centreFrance;
marker.setPosition(point);
356,10 → 360,10
+"latitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lat(), 5)+
"</div>";
} else {
String chaineCommune = valeurCommune + ((codeLoc.isEmpty()) ? "" : " ("+codeLoc+")");
String chaineLocalite = valeurLocalite + ((codeLoc.isEmpty()) ? "" : " ("+codeLoc+")");
contenuMarker =
"<div id=\"info_contenu\">"+
chaineCommune+"<br />"
chaineLocalite+"<br />"
+"longitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lng(), 5)+"<br />"
+"latitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lat(), 5)+
"</div>";
398,7 → 402,7
info.setContent(contenuInfo);
info.open(map, marker);
pointCommune = marker.getPosition();
pointLocalite = marker.getPosition();
info.addDomReadyListenerOnce(new InfoWindow.DomReadyHandler() {
@Override
411,8 → 415,8
}
public void afficherCarteEnAttenteAvecMarker(double lat, double lon) {
pointCommune = LatLng.create(lat, lon);
nmk.setPosition(pointCommune);
pointLocalite = LatLng.create(lat, lon);
nmk.setPosition(pointLocalite);
afficherInfoMarker(nmk, construireContenuPartielInfoMarker(nmk));
}