如何将 MainView 注册到另一个 View 触发的事件?
我已经尝试过ComponentUtil.addListener()但它对我不起作用。另一方面,我什至不确定是否在 MainView 可以注册到事件时创建了触发事件的视图?
申请流程:
打开应用程序 -> MainView
-> 如果用户未通过身份验证,则重新路由 -> LoginView
-> SuccessfulAuthenticationEvent
->MainView
对SuccessfulAuthenticationEvent
触发的响应做出反应LoginView
事件:
public class SuccessfulAuthenticationEvent extends ComponentEvent<LoginForm> {
public SuccessfulAuthenticationEvent(LoginForm source, boolean fromClient) {
super(source, fromClient);
}
}
主视图:
public class MainView extends AppLayout implements ComponentEventListener<SuccessfulAuthenticationEvent> {
...
@Override
public void onComponentEvent(SuccessfulAuthenticationEvent event) {
System.out.println("SuccessfulAuthenticationEvent catched");
}
}
登录视图:
public class LoginView extends Div {
...
@Override
public void executeAfterAuthentication() {
fireEvent(new SuccessfulAuthenticationEvent(loginForm, false));
}
}