如何侦听GWT事件总线上调度的所有事件?
我希望能够监听如何侦听GWT事件总线上调度的所有事件?,gwt,event-bus,Gwt,Event Bus,我希望能够监听事件总线上调度的所有事件,无论类型如何。我如何才能做到这一点?SimpleEventBus不允许您这样做,但您可以轻松地包装或扩展它,并覆盖fireEvent等以捕获所有已调度事件 根据Thomas的建议,以下是一个示例解决方案: public class MyEventBus extends SimpleEventBus { @Override public void fireEvent( GwtEvent<?> event ) {
事件总线上调度的所有事件,无论类型如何。我如何才能做到这一点?SimpleEventBus不允许您这样做,但您可以轻松地包装或扩展它,并覆盖fireEvent等以捕获所有已调度事件 根据Thomas的建议,以下是一个示例解决方案:
public class MyEventBus extends SimpleEventBus {
@Override
public void fireEvent( GwtEvent<?> event ) {
trackEvent( "Event Fired", event.getClass().toString() );
super.fireEvent( event );
}
public native void trackEvent( String category, String action ) /*-{
$wnd._gaq.push([ '_trackEvent', category, action ]);
}-*/;
}
公共类MyEventBus扩展了SimpleEventBus{
@凌驾
公共无效火灾事件(GwtEvent事件){
trackEvent(“触发事件”,Event.getClass().toString());
超级消防事件(事件);
}
公共本机void trackEvent(字符串类别、字符串操作)/*-{
$wnd._gaq.push(['u trackEvent',category,action]);
}-*/;
}
Travis,这是一个相当有趣的问题。如果你按照下面@Thomas Broyer的建议继续进行,那么如果你发布了一些解决方案的详细信息,以方便那些希望这样做的人,那就太好了,例如,了解你是否最终向扩展事件总线引入了其他方法,这将是一件很有趣的事情,等等。我确实同意Broyer的建议——它似乎工作得很好。今天下班后我会发布我的解决方案。