GWT事件处理:用于侦听器类的选择性实例的Fire事件

时间:2014-05-26 16:46:29

标签: gwt

背景:

我们有一个使用GWT的应用程序和提供GWTP架构的MVP框架。我们使用GWT的{​​{1}}在演示者之间广播事件。

要求:

我们有一个名为EventBus的活动。触发事件的类/演示者是RefreshEvent,并且听取此事件的演示者是Parent(P)。我们遇到了应用程序中的情况,其中Child(C)(侦听器)的多个实例在应用程序中同时处于活动状态。假设演示者C的实例A和实例B处于活动状态,并且两者都在监听C。但是在应用程序的给定上下文中,我想有选择地触发事件。这是由RefreshEvent触发的RefreshEvent只能由P的实例A接收,而不是Child C的实例B

Child C是否提供了执行此操作的机制?如果没有,我怎么能实现这一目标。 我们的应用程序大量使用事件进行演示者之间的通信。

1 个答案:

答案 0 :(得分:0)

通常,EventBus用于向收听它的每一方“广播”一个事件(在您的示例中,您的Child 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();
     */
}