Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何侦听GWT事件总线上调度的所有事件?_Gwt_Event Bus - Fatal编程技术网

如何侦听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的建议——它似乎工作得很好。今天下班后我会发布我的解决方案。