Subversion Repositories eFlore/Applications.cel

Rev

Rev 2558 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2558 Rev 2568
Line 41... Line 41...
41
	Marker nmk = null;
41
	Marker nmk = null;
Line 42... Line 42...
42
 
42
 
43
	private boolean carteAjoutee = false;
43
	private boolean carteAjoutee = false;
Line 44... Line 44...
44
	private boolean infoOuverte = false;
44
	private boolean infoOuverte = false;
45
 
45
 
46
	String valeurCommune = "Bourges"; // j'aurais préféré Bort-les-Orgues
46
	String valeurLocalite = "Bourges"; // j'aurais préféré Bort-les-Orgues
47
	LatLng centreFrance = null;
47
	LatLng centreFrance = null;
-
 
48
	LatLng pointLocalite = null;
Line 48... Line 49...
48
	LatLng pointCommune = null;
49
	String codeLoc = "";
Line 49... Line 50...
49
	String codeLoc = "";
50
	String pays = "";
50
 
51
 
Line 87... Line 88...
87
 
88
 
Line 88... Line 89...
88
	public void masquerChargement(boolean masquer) {
89
	public void masquerChargement(boolean masquer) {
89
		
90
		
90
		if(panneauCarto.isVisible()) {
91
		if(panneauCarto.isVisible()) {
91
			if(masquer) {
92
			if(masquer) {
92
				panneauCarto.getEl().mask("Recherche des coordonnées et de la commune, veuillez patienter");
93
				panneauCarto.getEl().mask("Recherche des coordonnées et de la localite, veuillez patienter");
93
			} else {
94
			} else {
94
				panneauCarto.getEl().unmask();
95
				panneauCarto.getEl().unmask();
95
			}
96
			}
Line 96... Line 97...
96
		}
97
		}
97
	}
98
	}
98
	
99
	
99
	public void obtenirInfosCommunes(LatLng coord) {
100
	public void obtenirInfosLocalites(LatLng coord) {
-
 
101
		// Remise à zéro des infos restantes d'une ancienne requete
Line 100... Line 102...
100
		// Remise à zéro des infos restantes d'une ancienne requete
102
		valeurLocalite = ""; 
101
		valeurCommune = ""; 
103
		codeLoc = "";
Line 102... Line 104...
102
		codeLoc = "";
104
		pays = "";
103
		
105
		
104
		oMediateur.obtenirInformationCoord(this, coord.lat(), coord.lng());
106
		oMediateur.obtenirInformationCoord(this, coord.lat(), coord.lng());
105
	}
107
	}
106
 
108
 
107
	public void mettreAJourInfos(final LatLng pointNouvelleCommune, int zoom) {
109
	public void mettreAJourInfos(final LatLng pointNouvelleLocalite, int zoom) {
108
		GoogleMap mapNulle = null;
110
		GoogleMap mapNulle = null;
109
		if(nmk != null) {
111
		if(nmk != null) {
110
			nmk.setMap(mapNulle);
112
			nmk.setMap(mapNulle);
111
		}
113
		}
112
		pointCommune = pointNouvelleCommune;
114
		pointLocalite = pointNouvelleLocalite;
113
		nmk = fabriquerMarqueur(pointCommune);
115
		nmk = fabriquerMarqueur(pointLocalite);
Line 114... Line 116...
114
		nmk.setMap(map);
116
		nmk.setMap(map);
Line 115... Line 117...
115
		afficherInfoMarker(nmk, construireContenuInfoMarker(nmk));
117
		afficherInfoMarker(nmk, construireContenuInfoMarker(nmk));
Line 116... Line 118...
116
		recentrerCarte(nmk.getPosition());
118
		recentrerCarte(nmk.getPosition());
117
		map.setZoom(zoom);
119
		map.setZoom(zoom);
Line 118... Line 120...
118
	}
120
	}
119
 
121
 
120
	private void initialiserCarte(boolean commune) {
122
	private void initialiserCarte(boolean localite) {
121
 
123
 
Line 143... Line 145...
143
			public void handle() {
145
			public void handle() {
144
				infoOuverte = false;
146
				infoOuverte = false;
145
			}
147
			}
146
		});
148
		});
Line 147... Line 149...
147
		
149
		
148
		if(!commune) {
150
		if(!localite) {
149
			fabriquerMarqueurIndication();
151
			fabriquerMarqueurIndication();
Line 150... Line 152...
150
		}
152
		}
151
				
153
				
152
		map.addClickListener(new ClickHandler() {		
154
		map.addClickListener(new ClickHandler() {		
153
			@Override
155
			@Override
154
			public void handle(MouseEvent event) {
156
			public void handle(MouseEvent event) {
155
				obtenirInfosCommunes(event.getLatLng());
157
				obtenirInfosLocalites(event.getLatLng());
Line 156... Line 158...
156
			}
158
			}
157
		});
159
		});
Line 173... Line 175...
173
	public void fabriquerMarqueurIndication() {
175
	public void fabriquerMarqueurIndication() {
174
		GoogleMap mapNulle = null;
176
		GoogleMap mapNulle = null;
175
		if(nmk != null) {
177
		if(nmk != null) {
176
			nmk.setMap(mapNulle);
178
			nmk.setMap(mapNulle);
177
		}
179
		}
178
		nmk = fabriquerMarqueur(pointCommune);
180
		nmk = fabriquerMarqueur(pointLocalite);
179
		nmk.setMap(map);
181
		nmk.setMap(map);
180
		info.setContent("<div id=\"info_contenu\">"+
182
		info.setContent("<div id=\"info_contenu\">"+
181
				"Déplacez ce marqueur pour localiser votre observation (commune et coordonnées)<br />"
183
				"Déplacez ce marqueur pour localiser votre observation (localite et coordonnées)<br />"
182
				+"longitude="
184
				+"longitude="
183
				+ Util.tronquerNombrePourAffichage("" + nmk.getPosition().lng(), 5) + "<br />latitude="
185
				+ Util.tronquerNombrePourAffichage("" + nmk.getPosition().lng(), 5) + "<br />latitude="
184
				+ Util.tronquerNombrePourAffichage("" + nmk.getPosition().lat(), 5) + "</div>");
186
				+ Util.tronquerNombrePourAffichage("" + nmk.getPosition().lat(), 5) + "</div>");
185
		infoOuverte = true;
187
		infoOuverte = true;
186
		info.open(map,nmk);
188
		info.open(map,nmk);
Line 209... Line 211...
209
			return;
211
			return;
210
		} else {
212
		} else {
211
			bouton.addListener("click", new EventCallback() {
213
			bouton.addListener("click", new EventCallback() {
212
				@Override
214
				@Override
213
				public void execute(EventObject e) {
215
				public void execute(EventObject e) {
214
					EntiteGeographiqueObservation infosCommune = new EntiteGeographiqueObservation(codeLoc,valeurCommune,null,null);
216
					EntiteGeographiqueObservation infosLocalite = new EntiteGeographiqueObservation(codeLoc,valeurLocalite,null,null);
215
					// TODO: ajouter pays à tout Ceci
217
					infosLocalite.setPays(pays);
216
					infosCommune.setLat(pointCommune.lat()+"");
218
					infosLocalite.setLat(pointLocalite.lat()+"");
217
					infosCommune.setLon(pointCommune.lng()+"");
219
					infosLocalite.setLon(pointLocalite.lng()+"");
218
					oMediateur.rafraichirSaisieCommuneObservation(infosCommune);
220
					oMediateur.rafraichirSaisieLocaliteObservation(infosLocalite);
219
				}
221
				}
220
			});	
222
			});	
Line 221... Line 223...
221
			
223
			
222
			bouton.focus();
224
			bouton.focus();
Line 255... Line 257...
255
				zoomerSurRetour = false;
257
				zoomerSurRetour = false;
256
			} else if (infos.getZoom() > 0) {
258
			} else if (infos.getZoom() > 0) {
257
				niveauZoom = infos.getZoom();
259
				niveauZoom = infos.getZoom();
258
			}
260
			}
Line 259... Line 261...
259
 
261
 
260
			String nouvelleValeurCommune = infos.getZoneGeo();
262
			String nouvelleValeurLocalite = infos.getZoneGeo();
261
			valeurCommune = nouvelleValeurCommune;
263
			valeurLocalite = nouvelleValeurLocalite;
262
			codeLoc = "";
264
			codeLoc = "";
-
 
265
			if(infos.getIdZoneGeo() != null) {
263
			if(infos.getIdZoneGeo() != null) {
266
				// Quoi stocker pour en dehors de la france ?
264
				if (infos.getPays().equals("FR")) {
267
				if (infos.getPays().equals("FR")) {
265
					codeLoc = Util.convertirChaineZoneGeoVersDepartement(infos.getIdZoneGeo());
268
					codeLoc = Util.convertirChaineZoneGeoVersDepartement(infos.getIdZoneGeo());
266
				} else {
269
				} else {
267
					codeLoc = infos.getPays();
270
					codeLoc = infos.getPays();
268
				}
271
				}
-
 
272
			}
269
			}
273
			pays = infos.getPays();
Line 270... Line 274...
270
			pointCommune = coord;
274
			pointLocalite = coord;
271
			
275
			
Line 272... Line 276...
272
			mettreAJourInfos(coord, niveauZoom);
276
			mettreAJourInfos(coord, niveauZoom);
Line 285... Line 289...
285
		marker.addDragEndListener(new Marker.DragEndHandler() {
289
		marker.addDragEndListener(new Marker.DragEndHandler() {
Line 286... Line 290...
286
			
290
			
287
			@Override
291
			@Override
288
			public void handle(MouseEvent event) {
292
			public void handle(MouseEvent event) {
289
				afficherInfoMarker(marker, construireContenuPartielInfoMarker(marker));
293
				afficherInfoMarker(marker, construireContenuPartielInfoMarker(marker));
290
				obtenirInfosCommunes(event.getLatLng());
294
				obtenirInfosLocalites(event.getLatLng());
291
			}
295
			}
Line 292... Line 296...
292
		});
296
		});
Line 340... Line 344...
340
	public String construireContenuInfoMarker(Marker marker) {
344
	public String construireContenuInfoMarker(Marker marker) {
341
		final String htmlBoutonOk = "<br /><button id=\"okMap\" class=\"x-btn-text\" type=\"button\">OK</button>";
345
		final String htmlBoutonOk = "<br /><button id=\"okMap\" class=\"x-btn-text\" type=\"button\">OK</button>";
Line 342... Line 346...
342
 
346
 
Line 343... Line 347...
343
		String contenuMarker = "";
347
		String contenuMarker = "";
344
		
348
		
345
		if(valeurCommune == null || valeurCommune.trim().equals("")) {
349
		if(valeurLocalite == null || valeurLocalite.trim().equals("")) {
346
			if(marker.getPosition().lng() == 0 && marker.getPosition().lat() == 0) {
350
			if(marker.getPosition().lng() == 0 && marker.getPosition().lat() == 0) {
347
				LatLng point = centreFrance;
351
				LatLng point = centreFrance;
348
				marker.setPosition(point);
352
				marker.setPosition(point);
Line 354... Line 358...
354
				+"Déplacez ce marqueur pour localiser votre observation (nom de lieu et coordonnées)<br />"
358
				+"Déplacez ce marqueur pour localiser votre observation (nom de lieu et coordonnées)<br />"
355
				+"longitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lng(), 5)+"<br />"
359
				+"longitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lng(), 5)+"<br />"
356
				+"latitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lat(), 5)+
360
				+"latitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lat(), 5)+
357
			"</div>";
361
			"</div>";
358
		} else {
362
		} else {
359
			String chaineCommune = valeurCommune + ((codeLoc.isEmpty()) ? "" : " ("+codeLoc+")");
363
			String chaineLocalite = valeurLocalite + ((codeLoc.isEmpty()) ? "" : " ("+codeLoc+")");
360
			contenuMarker = 
364
			contenuMarker = 
361
			"<div id=\"info_contenu\">"+
365
			"<div id=\"info_contenu\">"+
362
					chaineCommune+"<br />"
366
					chaineLocalite+"<br />"
363
					+"longitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lng(), 5)+"<br />"
367
					+"longitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lng(), 5)+"<br />"
364
					+"latitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lat(), 5)+
368
					+"latitude="+Util.tronquerNombrePourAffichage(""+marker.getPosition().lat(), 5)+
365
			"</div>";
369
			"</div>";
366
		}
370
		}
Line 396... Line 400...
396
	public void afficherInfoMarker(Marker marker, String contenuInfo) {		
400
	public void afficherInfoMarker(Marker marker, String contenuInfo) {		
Line 397... Line 401...
397
 
401
 
398
		info.setContent(contenuInfo);
402
		info.setContent(contenuInfo);
Line 399... Line 403...
399
		info.open(map, marker);
403
		info.open(map, marker);
Line 400... Line 404...
400
		
404
		
401
		pointCommune = marker.getPosition();
405
		pointLocalite = marker.getPosition();
402
		
406
		
403
		info.addDomReadyListenerOnce(new InfoWindow.DomReadyHandler() {	
407
		info.addDomReadyListenerOnce(new InfoWindow.DomReadyHandler() {	
Line 409... Line 413...
409
		
413
		
410
		recentrerCarte(marker.getPosition());
414
		recentrerCarte(marker.getPosition());
Line 411... Line 415...
411
	}
415
	}
412
	
416
	
413
	public void afficherCarteEnAttenteAvecMarker(double lat, double lon) {
417
	public void afficherCarteEnAttenteAvecMarker(double lat, double lon) {
414
		pointCommune = LatLng.create(lat, lon);
418
		pointLocalite = LatLng.create(lat, lon);
415
		nmk.setPosition(pointCommune);
419
		nmk.setPosition(pointLocalite);
Line 416... Line 420...
416
		afficherInfoMarker(nmk, construireContenuPartielInfoMarker(nmk));
420
		afficherInfoMarker(nmk, construireContenuPartielInfoMarker(nmk));
417
	}
421
	}