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