XML-дескриптор - это файл формата XML, описывающий источники данных и расположение визуальных компонентов экрана.
Схема XML доступна по адресу http://schemas.haulmont.com/cuba/5.6/window.xsd
Рассмотрим структуру дескриптора.
window
− корневой элемент.
Атрибуты window
:
-
class
− имя класса контроллера -
messagesPack
− пакет сообщений данного экрана, который будет использован при получении локализованных строк без указания пакета из XML-дескриптора и из контроллера методомgetMessage()
-
caption
− заголовок экрана, может содержать ссылку на сообщение из вышеуказанного пакета, например,caption="msg://caption"
-
focusComponent
− идентификатор компонента, который получит фокус ввода при отображении экрана -
lookupComponent
- обязательный для экрана выбора атрибут, задающий идентификатор визуального компонента, из которого будет выбран экземпляр сущности. Поддерживаются компоненты следующих типов (и их наследников):-
Table
-
Tree
-
LookupField
-
PickerField
-
OptionsGroup
-
-
datasource
- обязательный для экрана редактирования атрибут, задающий идентификатор источника данных, в который будет проставлен экземпляр редактируемой сущности.
Элементы window
:
-
metadataContext
− элемент для инициализации представлений (views), необходимых данному экрану. Предпочтительным является определение всех представлений в одном общем файлеviews.xml
, так как все описатели представлений разворачиваются в один общий репозиторий, и при рассредоточении описателей по разным файлам трудно обеспечить уникальность имен. -
dsContext
− определяет источники данных данного экрана. -
actions
- определяет список действий данного экрана. -
timers
- определяет список таймеров данного экрана. -
companions
- определяет список классов-компаньонов данного контроллераЭлементы
companions
:-
web
- задает компаньон, реализованный в модуле web -
desktop
- задает компаньон, реализованный в модуле desktop
Каждый из этих элементов содержит атрибут
class
, задающий класс компаньона. -
-
layout
− корневой элемент компоновки экрана. Является сам по себе контейнером с вертикальным расположением компонентов, аналогичнымvbox
.Атрибуты
layout
: