GWT事件处理程序的触发顺序

克里斯·J:

GWT EventHandlers的触发顺序是否已知?

即。如果我有一个扩展ListBox并从构造函数中添加EventHandler的类,是否可以确定此Handler将在另一个Handler之前被调用,该Handler随后由周围的类添加?

同样,如果子类采用构造函数:

Subclass() {
    super();
    addChangeHandler(new ChangeHandler() {
        // ...
    });
}

但是超类具有相同的构造函数,该构造函数添加了ChangeHandler:

Superclass(){
    addChangeHandler(new ChangeHandler() {
        // ...
    });
}

我们能否假定在调用超类的构造函数并在子类之前添加Handler时将触发它们的顺序?

非常感谢,这一直困扰着我。

克里斯。

卡内尔:

触发确实按照添加处理程序的顺序进行。据我所知,这没有在Javadoc中记录,但是我深入研究了GWT代码和com.google.gwt.event.shared.HandlerManager.HandlerRegistry.fireEvent(GwtEvent,boolean)方法最终在事件发生时被调用被解雇。

在某些情况下,所有事件均以相反的顺序触发,但这似乎与主要小部件无关。如果您在com.google.gwt.event.shared.HandlerManager.HandlerManager(Object,boolean)上进行调用层次结构,则将看到谁调用了启用了反向触发的HandlerManager。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章