Vaadin(7.0.5)窗口直到调用程序结束才打开

时间:2013-05-03 11:03:56

标签: gwt vaadin

我正在尝试在单击处理程序期间打开模式窗口以验证用户操作,但在处理程序完成之前窗口不会出现。窗口代码可以像下面一样简单,它仍然不会显示,因此它与我的抽象类没有关系。

    Window w = new Window();
    w.setModal(true);
    w.setImmediate(true);
    // Add components etc etc

    UI.getCurrent().addWindow(w);

我可以将操作代码添加到Windows OK / Yes处理程序,但这会阻止我创建一个通用的Message类来简化/停止代码重复。

我猜我有些东西我不明白Vaadin / GWT是如何工作的(还是一个新手!),有人能指出我正确的方向吗?

干杯

2 个答案:

答案 0 :(得分:1)

对于UI的东西,你必须停止思考顺序编程, 更好地考虑事件驱动的概念。

对于Vaadin,您可以创建一个对话窗口,询问是/否问题。 在您的应用程序中,您创建此对话框并显示它。 并附加一个事件处理程序,当用户单击是/否时触发该事件处理程序, 然后在此处理程序中,您可以在代码中执行所需的操作。

您还可以查看此附加组件

https://vaadin.com/de/directory#addon/confirmdialog

答案 1 :(得分:1)

正确的方向是架构概述https://vaadin.com/book/vaadin7/-/page/architecture.html#architecture.overview

换句话说,您的代码只从服务器端做出响应,但只有客户端才能显示“模态”窗口。

在您的情况下,您必须为ok按钮单击事件创建处理程序并等待此事件