GWT事件处理:为侦听器类的选择性实例触发事件

GWT事件处理:为侦听器类的选择性实例触发事件,gwt,Gwt,背景: 我们有一个使用GWT的应用程序和提供MVP体系结构的GWTP框架。我们使用GWT的EventBus在演示者之间广播事件 要求: 我们有一个叫做RefreshEvent的事件。触发事件的类/演示者是ParentP,而侦听此事件的演示者是ChildC。我们在应用程序中遇到了这样一种情况:C侦听器的多个实例在应用程序中同时处于活动状态。假设演示者C的实例A和实例B处于活动状态,并且都在侦听刷新事件。但在应用程序中的给定上下文中,我希望有选择地触发事件。也就是说,P触发的RefreshEvent

背景:

我们有一个使用GWT的应用程序和提供MVP体系结构的GWTP框架。我们使用GWT的EventBus在演示者之间广播事件

要求:

我们有一个叫做RefreshEvent的事件。触发事件的类/演示者是ParentP,而侦听此事件的演示者是ChildC。我们在应用程序中遇到了这样一种情况:C侦听器的多个实例在应用程序中同时处于活动状态。假设演示者C的实例A和实例B处于活动状态,并且都在侦听刷新事件。但在应用程序中的给定上下文中,我希望有选择地触发事件。也就是说,P触发的RefreshEvent应该只由子C的实例a接收,而不是由子C的实例B接收

GWT是否提供了实现这一点的机制?如果没有,我如何才能做到这一点。
我们的应用程序大量使用事件进行演示者之间的交流

通常,EventBus用于将事件广播给在您的示例中侦听它的每一方,即您的子C的所有实例

如果您想要单一关系,您的父母只需呼叫必要的孩子:

private Child a;
private Child b;
...
public void on onRefresh() {
    /*
     *  If you need to call child a, call a.doSomething();
     *  If you need to call child b, call b.doSomething();
     */
}

谢谢你,安德烈。这里的问题是父类没有对侦听器子类实例的引用。请给它一个引用。这就像注册一个活动。