Skip to content

Commit c3bedf5

Browse files
paodbjavier-godoy
authored andcommitted
feat: add click event listener to markers
Close #60
1 parent 5a1190d commit c3bedf5

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

src/main/java/com/flowingcode/vaadin/addons/googlemaps/GoogleMapMarker.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
*/
2020
package com.flowingcode.vaadin.addons.googlemaps;
2121

22+
import com.vaadin.flow.component.ClickEvent;
2223
import com.vaadin.flow.component.Component;
2324
import com.vaadin.flow.component.ComponentEvent;
2425
import com.vaadin.flow.component.ComponentEventListener;
@@ -251,4 +252,41 @@ public Registration addDragEndEventListener(ComponentEventListener<DragEndEvent>
251252
this.getElement().setProperty("dragEvents", true);
252253
return addListener(DragEndEvent.class, listener);
253254
}
255+
256+
/**
257+
* Event called on marker's click.
258+
*/
259+
@DomEvent("google-map-marker-click")
260+
public static class GoogleMapMarkerClickEvent extends ClickEvent<GoogleMapMarker> {
261+
262+
private final double lat;
263+
private final double lon;
264+
265+
public GoogleMapMarkerClickEvent(GoogleMapMarker source, boolean fromClient,
266+
@EventData(value = "event.detail.latLng") JsonValue latLng) {
267+
super(source);
268+
this.lat = ((JsonObject) latLng).getNumber("lat");
269+
this.lon = ((JsonObject) latLng).getNumber("lng");
270+
}
271+
272+
public double getLatitude() {
273+
return this.lat;
274+
}
275+
276+
public double getLongitude() {
277+
return this.lon;
278+
}
279+
}
280+
281+
/**
282+
* Adds a click event listener to a marker.
283+
*
284+
* @param listener
285+
* @return
286+
*/
287+
public Registration addClickListener(ComponentEventListener<GoogleMapMarkerClickEvent> listener) {
288+
this.getElement().setProperty("clickable", true);
289+
this.getElement().setProperty("clickEvents", true);
290+
return addListener(GoogleMapMarkerClickEvent.class, listener);
291+
}
254292
}

0 commit comments

Comments
 (0)