JAVA VAADIN7 Как предотвратить закрытие окна перед определенным действием, как сделать окно сверху? - PullRequest
0 голосов
/ 03 марта 2020

Проект в java, vaadin 7 Я не могу найти способ предотвратить закрытие моего окна до нажатия кнопки внутри. Я хочу, чтобы окно оставалось поверх другого содержимого экрана. Мой код на данный момент:

private void handleButtonCancelBatches() {
  if (projectBatchTeller > 0) {
    Button btnYes = new Button("Yes");
    Button btnNo = new Button("No");
    // toDo add click listeners to the buttons 
    HorizontalLayout horizontalLayout = new HorizontalLayout();
    horizontalLayout.addComponents(btnYes, btnNo);
    // toDo add extra informative content to the horizontalLayout
    Window window = new Window( //
       "Cancel "+ projectBatchTeller + " selected batches ?", horizontalLayout);
    window.setWidth(50f, Unit.PERCENTAGE);
    window.setHeight(50f, Unit.PERCENTAGE);
    window.setPosition((int) getUI().getWidth() / 2, (int) getUI().getHeight() / 2);
    getUI().getCurrent().addWindow(window);
  } else {
    Notification.show("No batches selected to cancel");
  }
}
// toDo add listeners / handlers for the buttons

Что мне действительно нужно, так это поведение типичного окна сообщений, но я не могу добавлять дополнительные зависимости в pom и не могу перейти на более новую версию Vaadin.

Если это невозможно, я хочу автоматически закрыть окно через 60 секунд, отправив уведомление с указанием пути по умолчанию, которое не обрабатывает пакеты

Есть предложения? Спасибо

1 Ответ

0 голосов
/ 03 марта 2020

Я нашел для него подходящее решение. Проще говоря, проблема в том, что я не знал слова «модальный» (я говорю по-голландски)

Это дает поведение, похожее на msgbox (как в C# ...)

window.setModal(true);
window.setClosable(false);
...