Как запросить подтверждение пользователя при сохранении записи после редактирования?

Есть стандартно сгенерённые дизайнером Browse и Edit screens. Если в окне Edit нажать кнопку “Сохранить”, то запись сохраняется, а окно сразу закрывается. Как сделать запрос у пользователя подтверждения действия: “Вы действительно хотите сохранить…?”. Ещё бы неплохо бы понимать создаётся новая запись в базе или редактируется существующая.

А вот при удалении записи платформа сама запрашивает подтверждение автоматически: “Вы действительно хотите удалить выбранные элементы?”.

Самый простой вариант - не использовать стандартное действие для кнопки, ОК, а сделать свой обработчик. Подписывайтесь на экране на событие нажатия кнопки, вызывайте там close(WINDOW_COMMIT_AND_CLOSE_ACTION). Диалог с запросом подтверждения “Сохранить сделанные изменения?” будет вызван автоматически.
Если вас устраивает, что по вашей кнопке сохранения после диалога окно редактирования в любом случае закроется, но с сохранением или без сохранения.
Тогда достаточно такого обработчика кнопки:

@Subscribe("okButton")
private void onOkButtonClick(Button.ClickEvent event) {
     close(WINDOW_COMMIT_AND_CLOSE_ACTION);
 }

Если это экран платформы 7, а не legacy.

Проверку можно сделать с помощью PersistenceHelper.isNew(entity).
У PersistenceHelper есть еще много полезных методов.

1 симпатия

Андрей, большое спасибо!