手柄窗口关闭事件
我试图处理该事件被点击Window
的关闭按钮时:手柄窗口关闭事件
// View Code
@Override
public void attachWindowListener(WindowListener listener) {
window.addWindowListener(listener);
}
// Presenter code
view.attachWindowListener(new WindowListener(){
public void windowHide(WindowEvent we) {
GWT.log("Window Event - Processing fields");
processFields();
}
});
然而,windowHide功能似乎没有执行,因为我看不到日志我放在那里。
如何正确处理该事件?
这工作:
window.addListener(Events.Hide, new Listener<ComponentEvent>() {
@Override
public void handleEvent(ComponentEvent be) {
// Do stuff
}
});
如何
Window.addCloseHandler(
new CloseHandler<Window>()
{
public void onClose(CloseEvent<Window> windowCloseEvent)
{
// Do your worst here
}
});
我通常在我的EntryPoint
类把这个onModuleLoad()
。
干杯,
基于提供我猜的信息,要么一)你认为是射击不火的窗口组件(即使它看起来像他们应该)或(b)的事件)的事件正在发射,但顺序与预期不同。
例如,当窗口正在关闭并且窗口对象的WindowEvent
从不触发时,可能有一个BrowserEvent
或某个其他事件首先触发。根据GXT 2.x的API文档,WindowEvent将在隐藏和禁用时触发,但不会指定它在关闭时触发。 GXT 3.0.x API文档在这一点上不太清楚,但我会假设相同的行为。不幸的是,Sencha没有提供关于哪些事件针对给定组件以什么顺序启动的良好文档。
就这样说,我已经有一些运气,通过使用一个调试类来输出与它相关的组件上的所有事件。这可能会揭示事件发生的顺序和执行顺序,并且您可能会发现一个最佳事件,您可以将其附加到您的方法processFields()
。
有关调试器类的一个很好的例子,请参阅相关文章的答案:https://*.com/a/2891746/460638。它还包括如何将调试器附加到组件的示例。
为窗口API文档,GXT 2.X:为窗口http://dev.sencha.com/deploy/gxt-2.2.5/docs/api/com/extjs/gxt/ui/client/widget/Window.html
API文档,GXT 3.0.x的:http://dev.sencha.com/deploy/gxt-3.0.0/javadoc/gxt/com/sencha/gxt/widget/core/client/Window.html
我相信@ xybrek询问GXT的'Window'小部件,而不是'com.google.gwt.user.client.Window'。 –
@ThomasBroyer是的,我在询问关于Ext GWT(GXT)窗口 – xybrek
道歉,这一点我不清楚。 –