Получение editMode или Action

Хочу определить в java коде, экземпляр сущности создается или редактируется, для того чтобы в случае создания вычислить значения нескольких её полей программно. Подскажите, пожалуйста, как это можно сделать в JMIX?

Добрый день, Константин.

Для решения вашей задачи лучше всего переопределить InitEntityEventHandler в контроллере экрана редактирования.
Этот Event публикуется только в случае создания новой сущности.

Пример для экрана редактирования экземпляра сущности User:

    @Subscribe
    public void onInitEntity(InitEntityEvent<User> event) {
        //set up your fields here
    }

Этот способ также описан в документации Jmix Framework - ссылка.

Еще один способ - использовать компонент io.jmix.core.EntityStates, чтобы инициализировать поля в произвольном месте в контроллере.

Как пример:

    @Autowired
    private EntityStates entityStates;

    public void someMethod() {
        if (entityStates.isNew(getEditedEntity())) {
            //set up your fields here
        }
    }
1 симпатия