也许这是一个me脚的问题,但是奇怪的是,在谷歌搜索30分钟后,我找不到答案。
com.google.gwt.user.client.ui.DeckPanel可以触发哪些事件? JavaDoc says它实现了HasHandlers,但被声明为void fireEvent(GwtEvent<?> event)
。
我怎么知道它期望什么类型,以便可以通过DeckPanel.addHandler(H handler, GwtEvent.Type<H> type)
订阅事件来捕获事件?
具体来说,我想在调用DeckPanel.showWidget()时捕获事件。
谢谢!
最佳答案
DeckPanel
本身不会触发任何事件。 Widget
类型实现addHandler
,主要用于通用DOM事件支持-调用DeckPanel#showWidget()
时不会触发任何内置事件。但是,您可以实现自己的:
public class MyDeckPanel extends DeckPanel {
public HandlerRegistration addShowWidgetHandler(
ShowWidgetEventHandler handler) {
return addHandler(handler, ShowWidgetEvent.getType());
}
@Override
public void showWidget(int index) {
super.showWidget(index);
fireEvent(new ShowWidgetEvent(index));
}
}