A.10. screens.xml
Файлы данного типа используются в блоках Web Client и Desktop Client, реализующих универсальный пользовательский интерфейс, для регистрации XML-дескрипторов экранов.
Схема XML доступна по адресу http://schemas.haulmont.com/cuba/6.10/screens.xsd.
Расположение файла задается в свойстве приложения cuba.windowConfig. При создании нового проекта в Studio, она создает файл web-screens.xml
в корневом пакете модуля web, например modules/web/src/com/company/sample/web-screens.xml
.
Рассмотрим структуру файла.
screen-config
- корневой элемент. Он содержит следующие элементы:
-
screen
- описатель экранаАтрибуты
screen
:-
id
- идентификатор экрана, по которому он доступен в программном коде (например, в методахFrame.openWindow()
и т.п.) и в menu.xml. -
template
- путь к файлу XML-дескриптора экрана. Загрузка производится по правилам интерфейса Resources. -
class
- если атрибутtemplate
не указан, в данном атрибуте нужно указать имя класса, реализующего либоCallable
, либоRunnable
.В случае
Callable
методcall()
должен возвращать экземпляр созданногоWindow
, который будет возвращен вызывающему коду как результатWindowManager.openWindow()
. Класс может содержать конструктор с параметрами для передачи ему строковых значений, заданных вложенным элементомparam
(см. ниже). -
agent
- если для одногоid
зарегистрировано несколько шаблонов, данный атрибут используется для определения, какой шаблон выбрать. Существует три стандартных типа агентов:DESKTOP
,TABLET
,PHONE
. Они позволяют выбрать экран в зависимости от текущего устройства и параметров дисплея пользователя. Подробнее см. Screen Agent. -
multipleOpen
- опциональный атрибут, задающий возможность многократного открытия экрана. Если равенfalse
или не задан, и в главном окне уже открыт экран с данным идентификатором, то вместо открытия нового экземпляра экрана отобразится имеющийся. Значениеtrue
позволяет открывать произвольное количество одинаковых экранов.
Элементы
screen
:-
param
- задает параметр экрана, передаваемый в мэп методаinit()
контроллера. Параметры, передаваемые из вызывающего кода в методыopenWindow()
, переопределяют одноименные параметры, заданные вscreens.xml
.Атрибуты
param
:-
name
- имя параметра -
value
- значение параметра. Строкиtrue
иfalse
автоматически преобразуются в значения типаBoolean
.
-
-
-
include
- включение другого файла типаscreens.xml
Атрибуты
include
:-
file
- путь к файлу по правилам интерфейса Resources
-
Пример файла screens.xml
:
<screen-config xmlns="http://schemas.haulmont.com/cuba/screens.xsd">
<screen id="sales$Customer.lookup" template="/com/sample/sales/gui/customer/customer-browse.xml"/>
<screen id="sales$Customer.edit" template="/com/sample/sales/gui/customer/customer-edit.xml"/>
<screen id="sales$Order.lookup" template="/com/sample/sales/gui/order/order-browse.xml"/>
<screen id="sales$Order.edit" template="/com/sample/sales/gui/order/order-edit.xml"/>
</screen-config>