簡體   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