4.5.1.1.1. Фрейм

Фреймы представляют собой части экранов, которые применяются для декомпозиции и многократного использования.

Для подключения фрейма в XML экрана используется элемент frame c указанием либо пути к файлу XML фрейма, либо идентификатора фрейма, если он зарегистрирован в screens.xml.

Контроллер фрейма должен быть унаследован от класса AbstractFrame.

Правила взаимодействия экрана и вложенного в него фрейма:

  • Из экрана обращаться к компонентам фрейма можно через точку: frame_id.component_id

  • Из контроллера фрейма получить компонент экрана можно обычным вызовом getComponent(component_id), но только в том случае, если компонент с таким именем не объявлен в самом фрейме. То есть компоненты фрейма маскируют компоненты экрана.

  • Из фрейма получить источник данных экрана можно простым вызовом getDsContext().get(ds_id) или инжекцией, либо в запросе ds$ds_id, но только в том случае, если источник данных с таким именем не объявлен в самом фрейме (аналогично компонентам).

  • Из экрана получить источник данных фрейма можно только через итерацию по getDsContext().getChildren()

При коммите экрана вызывается также коммит измененных источников данных фрейма.