4.5.1.1.3. Экран выбора

Экран выбора (lookup) отличается от простого экрана тем, что при вызове методом openLookup() отображает внизу панель с кнопками, позволяющими передать вызывающему коду экземпляр выбранной в данный момент в списке сущности. При вызове методом openWindow() или, например, из главного меню, панель с кнопками выбора не отображается.

В метод openLookup() передается объект с интерфейсом Window.Lookup.Handler. Метод handleLookup() этого объекта вызывается экраном, и ему передается коллекция выбранных пользователем экземпляров сущности. Тем самым вызывающий код получает из экрана выбранные экземпляры.

Экраны выбора рекомендуется использовать для отображения списков сущностей. Визуальные компоненты, предназначенные для отображения и редактирования ссылок между сущностями (такие как PickerField, LookupPickerField, SearchPickerField), вызывают экраны выбора для поиска связанных сущностей.

Для корректной работы стандартных действий идентификатор экрана выбора в файле screens.xml должен иметь вид {имя_сущности}.lookup, например, sales$Customer.lookup.

Контроллер экрана выбора должен быть унаследован от класса AbstractLookup. В XML экрана в атрибуте lookupComponent должен быть указан компонент (например, Table), из которого будет взят экземпляр сущности при выборе.