2424import com .vaadin .flow .component .ClickEvent ;
2525import com .vaadin .flow .component .Component ;
2626import com .vaadin .flow .component .ComponentEventListener ;
27- import com .vaadin .flow .component .DomEvent ;
2827import com .vaadin .flow .component .EventData ;
2928import com .vaadin .flow .component .HasSize ;
3029import com .vaadin .flow .component .Synchronize ;
3130import com .vaadin .flow .component .Tag ;
3231import com .vaadin .flow .component .dependency .JsModule ;
3332import com .vaadin .flow .component .dependency .NpmPackage ;
33+ import com .vaadin .flow .dom .DomListenerRegistration ;
3434import com .vaadin .flow .shared .Registration ;
3535import elemental .json .JsonObject ;
3636import elemental .json .JsonValue ;
@@ -242,7 +242,6 @@ public int getMinZoom() {
242242 return this .getElement ().getProperty ("minZoom" , 1 );
243243 }
244244
245- @ DomEvent ("google-map-click" )
246245 public static class GoogleMapClickEvent extends ClickEvent <GoogleMap > {
247246 private final double lat ;
248247 private final double lon ;
@@ -264,32 +263,26 @@ public Registration addClickListener(
264263 ComponentEventListener <GoogleMapClickEvent > listener ) {
265264 this .getElement ().setProperty ("clickable" , true );
266265 this .getElement ().setProperty ("clickEvents" , true );
267- return addListener (GoogleMapClickEvent .class , listener );
268- }
269-
270- @ DomEvent ("google-map-rightclick" )
271- public static class GoogleMapRightClickEvent extends ClickEvent <GoogleMap > {
272- private final double lat ;
273- private final double lon ;
274- public double getLatitude () {
275- return this .lat ;
276- }
277- public double getLongitude () {
278- return this .lon ;
279- }
280- public GoogleMapRightClickEvent (GoogleMap source , boolean fromClient ,
281- @ EventData (value = "event.detail.latLng" ) JsonValue latLng ) {
282- super (source );
283- this .lat = ((JsonObject )latLng ).getNumber ("lat" );
284- this .lon = ((JsonObject )latLng ).getNumber ("lng" );
285- }
266+ DomListenerRegistration registration = this .getElement ()
267+ .addEventListener ("google-map-click" , ev -> {
268+ JsonObject latLng = ev .getEventData ().get ("event.detail.latLng" );
269+ listener .onComponentEvent (
270+ new GoogleMapClickEvent (this , true , latLng ));
271+ }).addEventData ("event.detail.latLng" );
272+ return registration ::remove ;
286273 }
287274
288275 public Registration addRightClickListener (
289- ComponentEventListener <GoogleMapRightClickEvent > listener ) {
276+ ComponentEventListener <GoogleMapClickEvent > listener ) {
290277 this .getElement ().setProperty ("clickable" , true );
291278 this .getElement ().setProperty ("clickEvents" , true );
292- return addListener (GoogleMapRightClickEvent .class , listener );
279+ DomListenerRegistration registration = this .getElement ()
280+ .addEventListener ("google-map-rightclick" , ev -> {
281+ JsonObject latLng = ev .getEventData ().get ("event.detail.latLng" );
282+ listener .onComponentEvent (
283+ new GoogleMapClickEvent (this , true , latLng ));
284+ }).addEventData ("event.detail.latLng" );
285+ return registration ::remove ;
293286 }
294287
295288}
0 commit comments