Версия платформы
JMix 2.7.1
Аддоны
Tabbed Application Mode
Архив проекта
exampleOne.zip (121.8 КБ)
Постановка
Из меню приложения должно открыватся диалоговое окно (через метод бина) в котором пользователь заполняет некоторые параметры создаваемой сущности (визард). По окончании и нажатии кнопки “Save/Сохранить” должно открыться стандартное окно редактирования сущности. До момента сохранения редактора сущность на должна сохрянаться в БД.
Реализация
Пример приложения сделан минимальным для демонстрации проблемы (сущность с одним полем). Используется вкладочный режим.
В реальном приложении визард имеет несколько вкладок, свою логику вынесенных в отдельную вью. Вид которой разительным образом отличается от редактора сущности. Часть полей заполненных через визард не доступны для дальнейшего изменения. Так же при закрытии визарда
запускается логика наполнения связанных сущностей. Визард основан на StandartView так как логика DetailView в нём не нужна. Пример визарда есть в сэмплах (https://demo.jmix.ru/ui-samples/sample/wizard).
Проблемы
1. Окно редактора не открывается в новой вкладке.
При закрытии диалога с визардом не смотря на указание ViewOpenMode.NEW_TAB окно редактора открывается так же в виде диалога.
@Subscribe
public void onAfterClose(final AfterCloseEvent event) {
if (event.closedWith(StandardOutcome.SAVE)) {
openEditor(someEntityDc.getItem());
}
}
private void openEditor(SomeEntity item) {
viewBuilders.detail(view, SomeEntity.class)
.editEntity(item)
.withOpenMode(ViewOpenMode.NEW_TAB)
.open();
}
В метод viewBuilders.detail(view, SomeEntity.class) передаётся view = mainView приложения.
2. Интерфейс зависает после закрытия редактора.
При закрытии открывшегося диалога с редактором интерфейс приложения зависает и не реагирует на клики.
Ссылка на видео
Видео с описанными выше проблемами в облаке