Файлы данного типа используются в блоках Web Client и Desktop Client, реализующих универсальный пользовательский интерфейс, для регистрации XML-дескрипторов экранов.
Схема XML доступна по адресу http://schemas.haulmont.com/cuba/5.6/screens.xsd
Набор файлов screens.xml
, включая определенные в базовых проектах, задается в свойстве приложения
cuba.windowConfig
.
Рассмотрим структуру файла.
screen-config
- корневой элемент
Элементы screen-config
:
-
screen
- описатель экранаАтрибуты
screen
:-
id
- идентификатор экрана, по которому он доступен в программном коде (например, в методахIFrame.openWindow()
и т.п.) и вmenu.xml
. -
template
- путь к файлу XML-дескриптора экрана. Загрузка производится по правилам интерфейсаResources
. -
class
- если атрибутtemplate
не указан, в данном атрибуте нужно указать имя класса, реализующего либоCallable
, либоRunnable
.В случае
Callable
методcall()
должен возвращать экземпляр созданногоWindow
, который будет возвращен вызывающему коду как результатWindowManager.openWindow()
. Класс может содержать конструктор с параметрами для передачи ему строковых значений, заданных вложенным элементомparam
(см. ниже). -
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>