Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2557 → Rev 2558

/trunk/src/org/tela_botanica/client/vues/observation/FormulaireSaisieObservationVue.java
97,11 → 97,13
private ComboBox milieu = null;
private TextField comment = null;
private ComboBox commune = null;
private String departement = null;
private ComboBox espece = null;
private String numeroNom = null;
private String numeroOrdre = null;
private String codeInseeCommune = null;
private String codeLoc = null;
private String referentielTaxo = null;
private String referentielGeo = null;
 
335,7 → 337,9
commune.setHideTrigger(true);
 
//création du lien "Accès carto" dans le formulaire
basculerverscarto = new HTML(" <a id=\"lien_carto\" href=\"#\" tabindex=\"2\">Localiser la commune</a>");
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 ";
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"
772,10 → 776,9
@Override
public void execute(EventObject e) {
 
if(commune.getValue() != null && !commune.getValue().equals("") && !getDepartement().equals("")) {
if(commune.getValue() != null && !commune.getValue().equals("")) {
obtenirInformationCommune();
longlatAjoutee = true;
 
} else {
Window.alert("Veuillez renseigner une commune et un numéro de département sous la forme : Commune (departement)");
}
898,7 → 901,7
public void onSelect(ComboBox comboBox, Record record, int index) {
commune.setValue(record.getAsString("commune"));
departement=record.getAsString("departement");
codeInseeCommune=record.getAsString("codeInsee");
codeLoc=record.getAsString("codeInsee");
selectionCommune=true;
commune.collapse();
}
1284,10 → 1287,15
final EntiteGeographiqueObservation infosCom) {
 
String nCommune = "";
if(infosCom != null && !infosCom.getZoneGeo().trim().equals("")){
if(infosCom != null && infosCom.getZoneGeo() != null && !infosCom.getZoneGeo().trim().isEmpty()){
nCommune += infosCom.getZoneGeo();
if(!infosCom.getIdZoneGeo().trim().equals(""))
nCommune += " ("+Util.convertirChaineZoneGeoVersDepartement(infosCom.getIdZoneGeo())+")";
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()+")";
}
}
 
lienSelectionCommune.setHtml("<a id=\"lien_selection_commune\" tabindex=\"9\">"+nCommune+"</a>");
lienSelectionCommune.setStyleName("img-curseur-depl");
1340,12 → 1348,15
if(infosCom.getZoneGeo() != null && !infosCom.getZoneGeo().equals("")) {
nCommune += infosCom.getZoneGeo();
}
 
if(infosCom.getIdZoneGeo() != null && !infosCom.getIdZoneGeo().equals("")) {
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()+")";
}
if (! nCommune.equals("")) {
commune.setValue(nCommune);
communeModifiee = true;
1354,7 → 1365,7
 
// Se déclenche au retour de la "localisation sur la carte"
private void rafraichirCommuneEtCoord(EntiteGeographiqueObservation infosCom) {
 
rafraichirCommune(infosCom);
if(infosCom.getLat() != null && !infosCom.getLat().equals("")) {
latitude.setValue(Util.tronquerNombrePourAffichage("" + infosCom.getLat(), 5));
2159,6 → 2170,11
lon = -61.08334;
zoom = 7;
break;
case "lbf" :
lat = 33.53;
lon = 35.30;
zoom = 7;
break;
case "bdtfx" :
default:
lat = 47.0504;
2180,11 → 2196,19
}
 
private void obtenirInformationCommune() {
observationMediateur.obtenirInformationCommune(getCommuneSansDepartement(), Util.obtenirDepartementAPartirChaineCommune(departement, commune.getText()));
String idLoc = "";
if(departement != null && !departement.isEmpty()) {
idLoc = departement;
} else {
idLoc = Util.obtenirIdLocAPartirChaineCommune(commune.getText());
if(Util.estUnNombre(idLoc)) {
idLoc = Util.formaterDepartement(idLoc);
}
}
observationMediateur.obtenirInformationCommune(getCommuneSansIdLoc(), idLoc);
}
 
public double[] coordonneesValides() {
 
try {
 
double lat = Double.parseDouble(latitude.getValueAsString().replaceAll(",", "."));
2220,14 → 2244,10
return valeurCommune;
}
 
public String getDepartement() {
return Util.obtenirDepartementAPartirChaineCommune(departement, commune.getText());
public String getCommuneSansIdLoc() {
return Util.supprimerChaineIdLocalite(getCommune());
}
 
public String getCommuneSansDepartement() {
return Util.supprimerNumDepartementChaineLocalite(getCommune());
}
 
private String getValeurChampListeLibre(ComboBox champ) {
String valeurChamp = champ.getValue();
String valeurChampBrute = champ.getRawValue();
/trunk/src/org/tela_botanica/client/vues/observation/CartographieObservationVue.java
46,7 → 46,7
String valeurCommune = "Bourges"; // j'aurais préféré Bort-les-Orgues
LatLng centreFrance = null;
LatLng pointCommune = null;
String codeCommune = "";
String codeLoc = "";
 
int niveauZoom = 6;
 
97,18 → 97,22
}
public void obtenirInfosCommunes(LatLng coord) {
// Remise à zéro des infos restantes d'une ancienne requete
valeurCommune = "";
codeLoc = "";
oMediateur.obtenirInformationCoord(this, coord.lat(), coord.lng());
}
 
public void mettreAJourInfos(final LatLng pointNouvelleCommune, String infosComplementaires, int zoom) {
public void mettreAJourInfos(final LatLng pointNouvelleCommune, int zoom) {
GoogleMap mapNulle = null;
if(nmk != null) {
nmk.setMap(mapNulle);
}
pointCommune = pointNouvelleCommune;
nmk = fabriquerMarqueur(pointCommune, infosComplementaires);
nmk = fabriquerMarqueur(pointCommune);
nmk.setMap(map);
afficherInfoMarker(nmk);
afficherInfoMarker(nmk, construireContenuInfoMarker(nmk));
recentrerCarte(nmk.getPosition());
map.setZoom(zoom);
}
171,7 → 175,7
if(nmk != null) {
nmk.setMap(mapNulle);
}
nmk = fabriquerMarqueur(pointCommune,"");
nmk = fabriquerMarqueur(pointCommune);
nmk.setMap(map);
info.setContent("<div id=\"info_contenu\">"+
"Déplacez ce marqueur pour localiser votre observation (commune et coordonnées)<br />"
183,7 → 187,7
}
 
public void AfficherMessageAucuneInfos() {
mettreAJourInfos(centreFrance,"", niveauZoom);
mettreAJourInfos(centreFrance, niveauZoom);
Window.alert("Aucune information pour le nom donné");
}
 
207,7 → 211,8
bouton.addListener("click", new EventCallback() {
@Override
public void execute(EventObject e) {
EntiteGeographiqueObservation infosCommune = new EntiteGeographiqueObservation(codeCommune,valeurCommune,null,null);
EntiteGeographiqueObservation infosCommune = new EntiteGeographiqueObservation(codeLoc,valeurCommune,null,null);
// TODO: ajouter pays à tout Ceci
infosCommune.setLat(pointCommune.lat()+"");
infosCommune.setLon(pointCommune.lng()+"");
oMediateur.rafraichirSaisieCommuneObservation(infosCommune);
254,20 → 259,23
 
String nouvelleValeurCommune = infos.getZoneGeo();
valeurCommune = nouvelleValeurCommune;
if (infos.getIdZoneGeo() != null) {
codeCommune = Util.convertirChaineZoneGeoVersDepartement(infos.getIdZoneGeo());
} else {
codeCommune = "";
codeLoc = "";
if(infos.getIdZoneGeo() != null) {
if (infos.getPays().equals("FR")) {
codeLoc = Util.convertirChaineZoneGeoVersDepartement(infos.getIdZoneGeo());
} else {
codeLoc = infos.getPays();
}
}
pointCommune = coord;
mettreAJourInfos(coord, "", niveauZoom);
mettreAJourInfos(coord, niveauZoom);
}
masquerChargement(false);
}
public Marker fabriquerMarqueur(LatLng pointMarqueur, final String texte) {
public Marker fabriquerMarqueur(LatLng pointMarqueur) {
// ajout de marqueurs déplacables, qui affichent une bulle d'information
MarkerOptions options = MarkerOptions.create();
options.setDraggable(true);
278,6 → 286,7
@Override
public void handle(MouseEvent event) {
afficherInfoMarker(marker, construireContenuPartielInfoMarker(marker));
obtenirInfosCommunes(event.getLatLng());
}
});
298,7 → 307,7
info.close();
infoOuverte = false;
} else {
afficherInfoMarker(marker);
afficherInfoMarker(marker, construireContenuPartielInfoMarker(marker));
infoOuverte = true;
}
}
328,7 → 337,7
return carteAjoutee;
}
public void afficherInfoMarker(Marker marker) {
public String construireContenuInfoMarker(Marker marker) {
final String htmlBoutonOk = "<br /><button id=\"okMap\" class=\"x-btn-text\" type=\"button\">OK</button>";
 
String contenuMarker = "";
339,23 → 348,58
marker.setPosition(point);
niveauZoom = 6;
}
contenuMarker = "<div id=\"info_contenu\">"+
"Aucun nom de lieu trouvé à cet emplacement <br />"
+"Déplacez ce marqueur pour localiser votre observation (nom de lieu et coordonnées)<br />"
+"longitude="
+ Util.tronquerNombrePourAffichage("" + marker.getPosition().lng(), 5) + "<br />latitude="
+ Util.tronquerNombrePourAffichage("" + marker.getPosition().lat(), 5) + "</div>";
contenuMarker =
"<div id=\"info_contenu\">"+
"Aucun nom de lieu trouvé à cet emplacement <br />"
+"Déplacez ce marqueur pour localiser votre observation (nom de lieu et coordonnées)<br />"
+"longitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lng(), 5)+"<br />"
+"latitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lat(), 5)+
"</div>";
} else {
contenuMarker = ""
+valeurCommune+" ("+codeCommune+")<br />"
+"longitude="
+ Util.tronquerNombrePourAffichage("" + marker.getPosition().lng(), 5) + "<br />latitude="
+ Util.tronquerNombrePourAffichage("" + marker.getPosition().lat(), 5) ;
String chaineCommune = valeurCommune + ((codeLoc.isEmpty()) ? "" : " ("+codeLoc+")");
contenuMarker =
"<div id=\"info_contenu\">"+
chaineCommune+"<br />"
+"longitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lng(), 5)+"<br />"
+"latitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lat(), 5)+
"</div>";
}
info.setContent(contenuMarker+ htmlBoutonOk);
info.open(map, marker);
return contenuMarker+ htmlBoutonOk;
}
public String construireContenuPartielInfoMarker(Marker marker) {
final String htmlBoutonOk = "<br /><button id=\"okMap\" class=\"x-btn-text\" type=\"button\">OK</button>";
 
String contenuMarker = "";
contenuMarker =
"<div id=\"info_contenu\">"+
"<div class=\"recherche_infos_zone_geo\">"+
"<div class=\"recherche_infos_zone_geo_en_cours\">"+
"<img src=\"chargement_carte.gif\" />"+
"<div>"+
"Recherche du nom de lieu en cours... <br />"+
"Cela peut prendre un moment"+
"</div>"+
"<hr class=\"nettoyage\" />"+
"</div>"+
"Si vous ne désirez que les coordonnées, vous pouvez cliquer dès maintenant sur OK"+
"</div>"+
"longitude="+Util.tronquerNombrePourAffichage("" + marker.getPosition().lng(), 5)+"<br />"+
"latitude="+Util.tronquerNombrePourAffichage("" + marker.getPosition().lat(), 5)+
"</div>";
return contenuMarker+ htmlBoutonOk;
}
public void afficherInfoMarker(Marker marker, String contenuInfo) {
 
info.setContent(contenuInfo);
info.open(map, marker);
pointCommune = marker.getPosition();
info.addDomReadyListenerOnce(new InfoWindow.DomReadyHandler() {
@Override
public void handle() {
365,6 → 409,12
recentrerCarte(marker.getPosition());
}
public void afficherCarteEnAttenteAvecMarker(double lat, double lon) {
pointCommune = LatLng.create(lat, lon);
nmk.setPosition(pointCommune);
afficherInfoMarker(nmk, construireContenuPartielInfoMarker(nmk));
}
 
public double[] getCoordsCentreFrance() {
double[] coords = {47.0504, 2.2347};