[英]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.