在UI中获取活动窗口

时间:2014-05-19 09:54:31

标签: vaadin vaadin7

我正在使用带有这样的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 Add-on。我的问题是所有ConfirmDialog.show()方法都需要Window作为参数。如何获取活动Window对象isnide ViewUI类? UI.getCurrent().getWindows()为空,我找到的所有示例都使用Application类。

1 个答案:

答案 0 :(得分:3)

插件的版本1使用现有窗口(创建一个并传递它,因为Vaadin默认只有Page和UI,Window只是一个组件)。使用插件的第2版,您只传递UI,其中对话框(子类Window)将显示自己。