Vaadin 在UI中获取活动窗口
我正在使用一个带有servlet的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
@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中运行良好。请把它作为一个答案,我会接受它。谢谢