Обновление данных на экране с помощью автоматически созданного экрана editor

Добрый день. Нахожусь в процессе изучения работы с jmix.

  1. Создал свой экран и вывел значения сущности Department в таблицу через dataLoader
  2. Создал готовый экран editor по модели Department
  3. Вызываю экран editor из своего экрана по нажатию кнопки Добавить
  4. Вношу изменения и нажимаю ок
  5. Данные обновляются в модели, но в таблице на моем экране без изменений

Каким образом обновить данные в таблице? Как я понимаю нужно запустить метод departmentDl.load(). Но как его вызвать из экрана editor? Как правильно получать доступ к контроллеру другого экрана и вызывать его методы?

А как вы сделали кнопку Добавить на экране Department.browse?
Просто если вызывать стандартный экран создания/редактирования через Стандартное действиe create, то вы получите нужное поведение вообще без кода.

По ссылке выше есть пример дескриптора экрана для GroupTable со стандартными действиями. Действие create/ edit и кнопку добавит на экран над таблицей и автоматом нужным образом вызовет стандартный экран редактирования для той сущности, которую отображает таблица.
И после сохранения нового экземпляра он автоматом вернется и отобразится на экране Department.browse.

Если стандартные действия не использовали, а добавили на экран свою кнопку “Добавить”, то вернет экран редактирования новую сущность на вызывающий экран или нет - зависит от того, как вы вызвали экран редактирования в обработчике нажатия кнопки.

В разделе Открытие экранов редактирования есть два примера вызова экрана редактирования: с возвратом результата на вызывающий экран и без него.

2 симпатии

Экран для вывода данных я набрасывал свой с нуля. Помог последний вариант с передачей таблицы в аргументы метода editor класса ScreenBuilders.
image
Спасибо за помощь!