是否有触发 GWT EventHandlers 的已知顺序?
IE。如果我有一个扩展 ListBox 的类并从构造函数添加一个 EventHandler ,我是否可以确定这个 Handler 将在另一个 Handler 之前被调用,后者稍后由周围的类添加?
同样,如果子类采用构造函数:
Subclass() {
super();
addChangeHandler(new ChangeHandler() {
// ...
});
}
Run Code Online (Sandbox Code Playgroud)
但是超类具有相同的构造函数,它添加了一个 ChangeHandler:
Superclass(){
addChangeHandler(new ChangeHandler() {
// ...
});
}
Run Code Online (Sandbox Code Playgroud)
当超类的构造函数被调用并在子类之前添加处理程序时,我们可以假设它们将被触发的顺序吗?
非常感谢,这让我很困惑。
克里斯。
触发确实按照添加处理程序的顺序发生。据我所知,这在 javadoc 中没有记录,但我深入研究了 GWT 代码和 com.google.gwt.event.shared.HandlerManager.HandlerRegistry.fireEvent(GwtEvent, boolean) 方法最终在事件时被调用被解雇。
在某些情况下,所有事件都以相反的顺序触发,但这似乎与主要小部件无关。如果您在 com.google.gwt.event.shared.HandlerManager.HandlerManager(Object, boolean) 上执行调用层次结构,您将看到谁在启用反向触发的情况下调用 HandlerManager。
| 归档时间: |
|
| 查看次数: |
2122 次 |
| 最近记录: |