Есть такая необходимость, наследоваться от StandardDetailView. А уже потом от него пойдут контроллеры @ViewController.
public class CustomDetailView <T extends Document> extends StandardDetailView<T> {
@Internal
public CustomDetailView () {
super();
addBeforeSaveListener(this::onBeforeSave);
addBeforeShowListener(this::onBeforeShow);
}
private void onBeforeSave(BeforeSaveEvent event) {
}
private void onBeforeShow(final BeforeShowEvent event) {
log.warn("onBeforeShow...");
this.setupEntityToEdit();
boolean entityStatesIsNew = getEntityStates().isNew(getEditedEntity());
}
}
Затем от этого класса уже буду наследоваться реальные контроллеры. Хотелось в событии onBeforeShow сделать необходимые действия. Но на строке
boolean entityStatesIsNew = getEntityStates().isNew(getEditedEntity());
вылетает ошибка “IllegalStateException: Edited entity isn’t initialized yet”.
Мне то понятно что за ошибка и что означает, не понимаю почему. Если тоже самое делать в реальном контроллере, то всё нормально, т.е. контроллер напрямую наследующий StandardDetailView. А если через CustomDetailView, то ошибка как раз на уровне CustomDetailView.
В чём может быть проблема?