/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); |