Закрытие редактора с несохраненными изменениями

Здравствуйте! В редакторе храним 2 сущности. Question и Answer. Если идет создание сущности, то создается только Question, если редактирование и у юзера есть права, то при открытии экрана создается Answer и добавляется в контекст dataContext.merge(answer). При закрытии экрана проверяем, есть ли изменения в Answer и если нет, то убираем его из из контекста dataContext.evict(answer). Но окно о том, что есть изменения в сущности все равно появляется.
После dataContext.evict(answer), dataContext.getModified() возвращает пустой список. Пробывали сделать как в вопросе, но это нам не подходит, тк при закрытии экрана через ESC или крестик в правом верхнем углу, окон об изменениях все равно появляется. Не подскажите что можно сделать?

Добрый день,
Сейчас в экранах CUBA 7 логика редактора сосредоточена в базовом классе StandardEditor и легко доступна для изучения и переопределения.

Логика “при закрытии экрана через ESC или крестик в правом верхнем углу, окон об изменениях все равно появляется” - это методы
com.haulmont.cuba.gui.screen.StandardEditor#preventUnsavedChanges
и
com.haulmont.cuba.gui.screen.StandardEditor#hasUnsavedChanges

К тому же как видно, разработчики предусмотрели флажок:
com.haulmont.cuba.gui.screen.StandardEditor#modifiedAfterOpen

    // whether user has edited entity after screen opening
    private boolean modifiedAfterOpen = false;

Можно попробовать сбросить его в false при открытии экрана после того, как вы создали Answer.