Какие события могут запускать com.google.gwt.user.client.ui.DeckPanel? - PullRequest
1 голос
/ 18 октября 2011

Возможно, это неубедительный вопрос, но странно, что после 30 минут поиска я не могу найти ответ.

Какие события может запускать com.google.gwt.user.client.ui.DeckPanel? JavaDoc говорит , что он реализует HasHandlers, но он объявлен как void fireEvent(GwtEvent<?> event).

Как узнать, какие типы он ожидает, чтобы я мог перехватывать события, подписываясь на них через DeckPanel.addHandler(H handler, GwtEvent.Type<H> type)?

В частности, я хочу отлавливать события, когда вызывается DeckPanel.showWidget ().

Спасибо!

Ответы [ 2 ]

3 голосов
/ 18 октября 2011

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));
  }
}
0 голосов
/ 18 октября 2011

DeckPanel расширяет ComplexPanel, поэтому он реализует только HasAttachHandlers. Таким образом, по умолчанию вы получите только AttachEvent, поскольку он не поглощает другие события. Но, как и в случае с любым элементом HTML, вы можете заставить его поглотить любое из собственных событий, используя addDomHandler и addBitlessDomHandler.

...