From fa3e46a3144336ef1f6d9f9f36116ff2d989b21e Mon Sep 17 00:00:00 2001 From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com> Date: Wed, 29 Oct 2025 10:30:52 -0300 Subject: [PATCH] feat: add getEventData helper --- .../vaadin/jsonmigration/JsonMigration.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigration.java b/src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigration.java index 947b436..1f66778 100644 --- a/src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigration.java +++ b/src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigration.java @@ -19,10 +19,12 @@ */ package com.flowingcode.vaadin.jsonmigration; -import java.lang.reflect.Method; +import com.vaadin.flow.dom.DomEvent; import com.vaadin.flow.dom.Element; import com.vaadin.flow.server.Version; +import elemental.json.JsonObject; import elemental.json.JsonValue; +import java.lang.reflect.Method; import lombok.SneakyThrows; /** @@ -89,6 +91,13 @@ private static Method lookup_setPropertyJson() { } } + private static Method DomEvent_getEventData = lookup_getEventData(); + + @SneakyThrows + private static Method lookup_getEventData() { + return DomEvent.class.getMethod("getEventData"); + } + /** * Sets a JSON-valued property on a given {@code Element}, transparently handling * version-specific method signatures. @@ -105,4 +114,15 @@ public static void setPropertyJson(Element element, String name, JsonValue json) invoke(Element_setPropertyJson, element, name, json); } + /** + * Gets additional data related to the event. + * + * @param event the {@code DomEvent} from which to retrieve the data + * @return a JSON object containing event data, never null + * @see DomEvent#getEventData() + */ + public static JsonObject getEventData(DomEvent event) { + return (JsonObject) convertToJsonValue(invoke(DomEvent_getEventData, event)); + } + }