2011-10-17 4 views
1

Peut-être que c'est question boiteuse mais étrangement après 30 minutes de googling je ne trouve pas la réponse.Quels événements peuvent se produire sur com.google.gwt.user.client.ui.DeckPanel?

Quels événements peuvent survenir com.google.gwt.user.client.ui.DeckPanel? JavaDoc says il implémente HasHandlers mais il est déclaré comme void fireEvent(GwtEvent<?> event).

Comment puis-je connaître les types attendus afin que je puisse attraper des événements en m'abonnant à eux via DeckPanel.addHandler(H handler, GwtEvent.Type<H> type)?

Spécifiquement je veux attraper des événements quand DeckPanel.showWidget() est appelé.

Merci!

Répondre

3

DeckPanel ne déclenche aucun événement lui-même. Le type Widget implémente addHandler, principalement pour la prise en charge des événements DOM génériques - il n'y a pas d'événement intégré qui sera déclenché lorsque DeckPanel#showWidget() est appelée. Vous pouvez implémenter votre propre si:

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

DeckPanel étend ComplexPanel, de sorte qu'il implémente uniquement HasAttachHandlers. Ainsi, par défaut, vous ne recevrez que le AttachEvent car il ne coule aucun autre événement. Mais comme avec n'importe quel élément HTML, vous pouvez le faire couler l'un des événements natifs en utilisant addDomHandler et addBitlessDomHandler.

Questions connexes