Vaadin 在UI中获取活动窗口

Vaadin 在UI中获取活动窗口,vaadin,vaadin7,Vaadin,Vaadin7,我正在使用一个带有servlet的Vaadin UI,如下所示: @WebServlet(value = "/*", asyncSupported = true) @VaadinServletConfiguration(productionMode = false, ui = MyUI.class, widgetset = "widgetsets.MyWidgetSet") public class MyServlet extends VaadinServlet { } @Theme("my

我正在使用一个带有servlet的Vaadin UI,如下所示:

@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = MyUI.class, widgetset = "widgetsets.MyWidgetSet")
public class MyServlet extends VaadinServlet {

}

@Theme("mytheme")
@PreserveOnRefresh
@Push
public class MyUI extends UI {
    @Override
    protected void init(VaadinRequest request) {
        Navigator navigator = new Navigator(this, this);
        navigator.addView("myView", MyView.class);
        // add some other views
        navigator.navigateTo("myView");
        setNavigator(navigator);
    }
}

public class MyView extends VerticalLayout implements View {
    @Override
    public void enter(ViewChangeListener.ViewChangeEvent event) {
         // init UI stuff
    }
}

到目前为止,它运行良好,但我现在想做的是从我的视图内部使用。我的问题是所有的
ConfirmDialog.show()
方法都需要一个
窗口作为参数。如何获取活动的
窗口
对象isnide
视图
UI
UI.getCurrent().getWindows()
为空,我找到的所有示例都使用
应用程序
类。

插件的版本1使用现有窗口(创建一个并传递它,因为默认情况下Vaadin只有页面和UI,窗口只是一个组件)。对于插件的版本2,您只传递UI,对话框(哪个子类窗口)将显示在其中。

ConfirmDialog 2.0.5为show param和no Window获取UI?您使用的是哪个版本?
http://maven.vaadin.com/vaadin-addons
Maven repository.好吧,我的2.0.5就是通过这个url得到的,ymmv。我假设v1需要一个窗口来渲染。默认情况下,Vaadin不会创建窗口,因此除非您已经创建了自己的窗口,否则您是否可以传递一个新窗口?@cfrick这似乎是一个丑陋的解决方法。我将尝试使用最新版本。我是否正确地假设了
Window
及其概念在vaadin7中被弃用了?@cfrick在2.0.5中运行良好。请把它作为一个答案,我会接受它。谢谢