package com.example.mylibrary;
public class MyLibrary {
public static void doSomething() {
}
}
package com.example.myapp.mixins;
import com.vaadin.flow.component.*;
import com.vaadin.flow.component.dependency.JavaScript;
@Tag("vaadin-my-component")
@JavaScript("frontend://my-library.js")
public interface MyComponentMixin extends Component {
@DomEvent("my-event")
default void handleMyEvent() {
MyLibrary.doSomething();
}
}
package com.example.myapp.components;
import com.vaadin.flow.component.Component;
import com.vaadin.flow.component.Tag;
import com.example.myapp.mixins.MyComponentMixin;
@Tag("vaadin-my-component")
public class MyComponent extends Component implements MyComponentMixin {
public void triggerMyEvent() {
getElement().callFunction("triggerEvent");
}
}
import com.example.myapp.components.MyComponent;
MyComponent myComponent = new MyComponent();
myComponent.handleMyEvent();