Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2552 → Rev 2553

/trunk/widget/modules/saisie/squelettes/defaut/js/defaut.js
235,7 → 235,7
}
 
function initialiserGoogleMap(){
// Carte
// Carte @TODO mettre ça dans la config
if(NOM_SCI_REFERENTIEL == 'bdtxa') {
var latLng = new google.maps.LatLng(14.6, -61.08334);// Fort-De-France
var zoomDefaut = 8;
/trunk/src/org/tela_botanica/client/modeles/objets/EntiteGeographiqueObservation.java
8,8 → 8,6
 
public class EntiteGeographiqueObservation {
 
 
private String idZoneGeo=null;
private String zoneGeo=null;
private String lieuDit=null;
16,36 → 14,40
private String station=null;
private String lat=null;
private String lon=null;
private int zoom = 0; // si zoom <= 0, on l'ignore lors du rafraîchissement
 
public EntiteGeographiqueObservation() {
}
 
/**
* @param zoneGeo
* @param departement
*/
 
public EntiteGeographiqueObservation(String idZoneGeo, String zoneGeo, String lieuDit, String station, int zoom) {
this(idZoneGeo, zoneGeo, lieuDit, station);
this.zoom = zoom;
}
 
public EntiteGeographiqueObservation(String idZoneGeo, String zoneGeo, String lieuDit, String station) {
this.idZoneGeo = idZoneGeo;
this.zoneGeo = zoneGeo;
this.lieuDit = lieuDit;
this.station = station;
}
 
public void setLat(String la) {
lat = la;
}
 
public void setLon(String lo) {
lon = lo;
}
 
public void setZoom(int zoom) {
this.zoom = zoom;
}
 
public String getLat() {
return lat;
}
71,4 → 73,8
public String getStation() {
return station;
}
 
public int getZoom() {
return zoom;
}
}
/trunk/src/org/tela_botanica/client/observation/ObservationMediateur.java
3,7 → 3,10
 
 
// TODO : systematiser les onQuelquechose, appelle depuis les vues
import java.util.Map;
 
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.objets.Configuration;
import org.tela_botanica.client.modeles.objets.EntiteGeographiqueObservation;
12,6 → 15,7
import org.tela_botanica.client.modeles.objets.Observation;
import org.tela_botanica.client.modeles.objets.Utilisateur;
import org.tela_botanica.client.modeles.objets.ListeReferentielPerso.TypesReferentiels;
import org.tela_botanica.client.util.Util;
import org.tela_botanica.client.vues.observation.CartographieObservationVue;
import org.tela_botanica.client.vues.observation.FormulaireImportObservationVue;
import org.tela_botanica.client.vues.observation.FormulaireSaisieObservationVue;
26,6 → 30,7
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Window;
import com.google.maps.gwt.client.LatLng;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.Ext;
import com.gwtext.client.core.ExtElement;
45,6 → 50,7
import com.gwtext.client.widgets.layout.FitLayout;
import com.gwtext.client.widgets.layout.RowLayout;
import com.gwtext.client.widgets.layout.RowLayoutData;
import com.gwtext.client.widgets.map.LatLonPoint;
import com.gwtext.client.widgets.tree.TreeNode;
 
 
1134,6 → 1140,8
 
public void obtenirInformationCoord(double lat, double lng, boolean zoomer) {
cartoObservationVue.setDoitZoomerSurRetour(true);
// @TODO faire patienter l'utilisateur le temps de trouver la zone (long si hors France)
Util.curseurAttente();
observationModele.obtenirInformationCoord(cartoObservationVue, lat, lng);
}
 
1142,6 → 1150,15
observationModele.obtenirInformationCommune(cartoObservationVue,nomCommune, codePostal);
}
 
/**
* Ouvre la fenêtre carto, place un marqueur sur le point demandé et centre l'affichage,
* mais ne recherche pas d'infos sur le point
* @param infos doit contenir des coordonnées (lon, lat)
*/
public void rafraichirFenetreCartoSurPoint(EntiteGeographiqueObservation infos) {
cartoObservationVue.rafraichir(infos, false);
}
 
public void rafraichirSaisieCommuneObservation(EntiteGeographiqueObservation infosCommune) {
formulaireSaisieObservationVue.rafraichir(infosCommune, false);
cacherFenetreCarto();
1180,38 → 1197,7
public void setImporterObservationsAnonymes(boolean importerObservations) {
this.importerObservations = importerObservations;
}
 
private void localiserSurCommuneSelectionnee() {
cartoObservationVue.masquerChargement(true);
double[] coordsTab = formulaireSaisieObservationVue.coordonneesValides();
if(formulaireSaisieObservationVue.coordonneesValides() != null && !formulaireSaisieObservationVue.getCommune().equals("")) {
String nomCommune = formulaireSaisieObservationVue.getCommuneSansDepartement();
String dptCommune = formulaireSaisieObservationVue.getDepartement();
EntiteGeographiqueObservation egeo = new EntiteGeographiqueObservation(dptCommune, nomCommune, "","");
egeo.setLat(coordsTab[0]+"");
egeo.setLon(coordsTab[1]+"");
cartoObservationVue.rafraichir(egeo, false);
} else {
if(formulaireSaisieObservationVue.coordonneesValides() != null) {
obtenirInformationCoord(coordsTab[0],coordsTab[1]);
} else if (formulaireSaisieObservationVue.communeInitialisee()) {
String nomCommune = formulaireSaisieObservationVue.getCommune();
String dptCommune = formulaireSaisieObservationVue.getDepartement();
obtenirInformationCommune(nomCommune, dptCommune);
} else {
double[] coordsCentreFrance = cartoObservationVue.getCoordsCentreFrance();
obtenirInformationCoord(coordsCentreFrance[0], coordsCentreFrance[1]);
}
}
}
 
public void afficherFenetreCarto() {
int hauteur = (int)Math.round(Window.getClientHeight()*0.75);
int largeur = (int)Math.round(Window.getClientWidth()*0.75);
1221,8 → 1207,6
}
cartoObservationVue.setTailleCarte(hauteur - 20, largeur - 20);
}
 
private void cacherFenetreCarto() {
if(fenetreCarto.isVisible()) {
1233,11 → 1217,11
public InfosReferentielNom getRefTaxSelectionne() {
return refTaxSelectionne;
}
 
public void setRefTaxSelectionne(int index) {
refTaxSelectionne = Configuration.getReferentielsDispos().get(index);
}
 
public void setRefTaxSelectionne(InfosReferentielNom refTax) {
refTaxSelectionne = refTax;
}
/trunk/src/org/tela_botanica/client/util/Util.java
11,9 → 11,12
import org.tela_botanica.client.modeles.objets.ChampEtendu;
import org.tela_botanica.client.modeles.objets.Observation;
 
import com.google.gwt.dom.client.Element;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.RootPanel;
 
public class Util {
 
420,4 → 423,13
return s.substring(0, 1).toUpperCase() +
s.substring(1).toLowerCase();
}
 
public static void curseurAttente() {
RootPanel.getBodyElement().getStyle().setProperty("cursor", "wait");
}
 
public static void curseurParDefaut() {
RootPanel.getBodyElement().getStyle().setProperty("cursor", "default");
}
 
}
/trunk/src/org/tela_botanica/client/vues/observation/FormulaireSaisieObservationVue.java
9,6 → 9,7
import java.util.Map;
 
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.ListeReferentielChampsEtendusDAO;
import org.tela_botanica.client.modeles.objets.ChampEtendu;
34,6 → 35,7
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;
332,7 → 334,7
commune.setLoadingText("Recherche...");
commune.setHideTrigger(true);
 
//création du lien "Accès carto" dans le formulaire
//création du lien "Accès carto" dans le formulaire
basculerverscarto = new HTML(" <a id=\"lien_carto\" href=\"#\" tabindex=\"2\">Localiser la commune</a>");
basculerverscarto.addStyleName("lien_actif");
 
2135,7 → 2137,45
if(coordonneesValides() != null) {
observationMediateur.obtenirInformationCoord(coordonneesValides()[0],coordonneesValides()[1]);
} else {
observationMediateur.afficherFenetreCarto();
// Centrage de la carte sur une zone correspondant plus ou moins au référentiel.
// En dur car la config est tellement mal foutue que j'ai envie de me pendre.
String referentiel = this.getReferentielTaxo();
String referentielRacine = referentiel.substring(0, referentiel.indexOf(':'));
Double lat = null, lon = null;
int zoom = 6;
switch(referentielRacine) {
case "isfan" :
lat = 29.28358;
lon = 10.21884;
zoom = 5;
break;
case "apd" :
lat = 8.75624;
lon = 1.80176;
zoom = 5;
break;
case "bdtxa" :
lat = 14.6;
lon = -61.08334;
zoom = 7;
break;
case "bdtfx" :
default:
lat = 47.0504;
lon = 2.2347;
zoom = 6;
}
if (lat != null && lon != null) {
// centrage sur la zone
EntiteGeographiqueObservation infos = new EntiteGeographiqueObservation();
infos.setLon("" + lon);
infos.setLat("" + lat);
infos.setZoom(zoom);
observationMediateur.rafraichirFenetreCartoSurPoint(infos);
} else {
// affichage par défaut au cas où on n'aurait pas trouvé de coordonnées pour centrer
observationMediateur.afficherFenetreCarto();
}
}
}
 
/trunk/src/org/tela_botanica/client/vues/observation/CartographieObservationVue.java
1,5 → 1,6
package org.tela_botanica.client.vues.observation;
 
import org.tela_botanica.client.cel2;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.objets.EntiteGeographiqueObservation;
import org.tela_botanica.client.observation.ObservationMediateur;
38,15 → 39,15
Panel panneauCarto = null;
GoogleMap map = null;
Marker nmk = null;
 
private boolean carteAjoutee = false;
private boolean infoOuverte = false;
 
String valeurCommune = "Bourges"; // j'aurais préféré Bort-les-Orgues
LatLng centreFrance = null;
LatLng pointCommune = null;
String codeCommune = "";
 
int niveauZoom = 6;
 
Label panneauExplication = new Label(
58,7 → 59,7
public CartographieObservationVue(ObservationMediateur om) {
 
oMediateur = om;
 
setHeader(false);
setAutoWidth(true);
setPaddings(10);
67,13 → 68,12
panneauCarto.setLayout(new FitLayout());
 
setLayout(new RowLayout());
 
panneauCarto.setAutoHeight(true);
add(panneauExplication, new RowLayoutData(12));
add(panneauCarto, new RowLayoutData());
 
addListener(new ContainerListenerAdapter() {
@Override
public void onAfterLayout(Container c) {
initialiserCarte(false);
80,11 → 80,11
}
});
}
 
public void setTailleCarte(int hauteur, int largeur) {
setSize(largeur, hauteur);
}
 
public void masquerChargement(boolean masquer) {
if(panneauCarto.isVisible()) {
220,6 → 220,8
 
@Override
public void rafraichir(Object nouvelleDonnees, boolean repandreRaffraichissement) {
// rétablissement du curseur, parfois mis sur "attente" par le processus chargeant la carte
Util.curseurParDefaut();
 
if (nouvelleDonnees instanceof String) {
246,11 → 248,17
if (zoomerSurRetour) {
niveauZoom = 16;
zoomerSurRetour = false;
} else if (infos.getZoom() > 0) {
niveauZoom = infos.getZoom();
}
 
String nouvelleValeurCommune = infos.getZoneGeo();
valeurCommune = nouvelleValeurCommune;
codeCommune = Util.convertirChaineZoneGeoVersDepartement(infos.getIdZoneGeo());
if (infos.getIdZoneGeo() != null) {
codeCommune = Util.convertirChaineZoneGeoVersDepartement(infos.getIdZoneGeo());
} else {
codeCommune = "";
}
pointCommune = coord;
mettreAJourInfos(coord, "", niveauZoom);