I'm trying to interact between Vaadin and amcharts. Basically I need to draw a map using amcharts libraries, and when I click on the map I need to send back information about the click to Java. My problem is that I can't figure out how to properly interact between the two, with the documentation showing very simple examples.
In the vaadin docs it shows an example like:
getElement().executeJS("jsMethodName($0)", getElement());
and then to send back data to Java:
element.$server.javaMethodName(args);
My problem is that I can send from Java to JS correctly, and the element is loaded correctly. But when I do element.$server.javaMethodName(), element.$server is always undefined. I don't understand if I'm missing something or if I dind't understand the correct way to use this.
This is my Java method:
@ClientCallable
private void clickBullet(String area) {
log.error("Clicked area: " + area);
}
and this is the call from JS:
function clickBullet(name, element) {
if(element !== null){
element.$server.clickBullet(name);
}
else {
console.log("element is null");
}
}
Note that element is not null, it is correct. What am I doing wrong?