我正在使用带有这样的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 View
或UI
类? UI.getCurrent().getWindows()
为空,我找到的所有示例都使用Application
类。
答案 0 :(得分:3)
插件的版本1使用现有窗口(创建一个并传递它,因为Vaadin默认只有Page和UI,Window只是一个组件)。使用插件的第2版,您只传递UI,其中对话框(子类Window)将显示自己。