繁体   English   中英

如果我在GWT中扩展Widget,如何使用祖先的EventBus?

[英]How to use ancestor's EventBus if I am extending Widget in GWT?

我正在扩展ScrollPanel并希望使用这个新小部件处理我自己的自定义事件。

我用两个方法fireEvent(MyEvent event)HandlerRegistration addMyHandler(MyHandler handler)了我自己的HasMyHandlers接口。

首先,我创建了一个私有成员SimpleEventBus eventBus ,但接下来认为祖先类应该已经拥有它自己的副本。

是否可以使用祖先的事件总线,即在其内部注册处理程序并根据其触发它们?

对的,这是可能的。 执行此操作的标准方法是在HandlerRegistration addMyHandler(MyHandler handler)中:

public class MyWidget extends Widget implements HasMyHandlers {

  @Override
  public HandlerRegistration addMyHandler(MyHandler handler) { 
    return addHandler(handler, MyEvent.getType());
  }

  // Other methods
}

Widget.addHandler(...)方法提供了将自定义事件处理程序连接到Widget的HandlerManager的机制。

要将事件Widget.fireEvent(...)到所有已注册的处理程序,请使用Widget.fireEvent(...)方法。 因此,您可以执行以下操作:

fireEvent(new MyEvent(yourEventData));

值得注意的是,您的事件还应该扩展GwtEvent类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM