@Tag("my-component")
public interface MyComponent extends HTMLElement {
@Property
default String getText() {
return getProperty("text");
}
@Property
default void setText(String text) {
setProperty("text", text);
}
@EventMethod("click")
default void handleClick(Event event) {
System.out.println("Clicked!");
}
}
public class MainView extends VerticalLayout {
public MainView() {
MyComponent component = ElementFactory.create(MyComponent.class);
component.setText("Hello World");
component.addEventListener("click", component::handleClick);
add(component);
}
}