3.6.1.2. XML-дескриптор

Это устаревший API. Новый API, доступный начиная с v.7.0, описан в разделе XML-дескриптор экрана.

XML-дескриптор - это файл формата XML, описывающий источники данных и расположение визуальных компонентов экрана.

Схема XML доступна по адресу http://schemas.haulmont.com/cuba/7.2/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 − определяет источники данных данного экрана.

  • dialogMode - определяет параметры геометрии и поведения экрана при открытии его в виде диалогового окна.

    Атрибуты dialogMode:

    • closeable - определяет наличие в диалоговом окне кнопки закрытия. Возможные значения: true, false.

    • closeOnClickOutside - определяет возможность закрыть окно кликом по окружающей области, если диалог открыт в модальном режиме. Возможные значения: true, false.

    • forceDialog - указывает, что экран должен всегда открываться в режиме диалога, независимо от того, какой WindowManager.OpenType был выбран в вызывающем коде. Возможные значения: true, false.

    • height - устанавливает высоту диалогового окна.

    • maximized - если выбрано значение true, диалог будет развёрнут во весь экран. Возможные значения: true, false.

    • modal - устанавливает модальный режим диалогового окна. Возможные значения: true, false.

    • positionX - задаёт положение левого верхнего угла диалога по оси x.

    • positionY - задаёт положение левого верхнего угла диалога по оси y.

    • resizable - определяет возможность пользователя изменять размеры диалога. Возможные значения: true, false.

    • width - устанавливает ширину диалогового окна.

    Пример использования dialogMode:

    <dialogMode height="600"
                width="800"
                positionX="200"
                positionY="200"
                forceDialog="true"
                closeOnClickOutside="false"
                resizable="true"/>
  • actions - определяет список действий данного экрана.

  • timers - определяет список таймеров данного экрана.

  • companions - определяет список классов-компаньонов данного контроллера

    Элементы companions:

    • web - задает компаньон, реализованный в модуле web

    • desktop - задает компаньон, реализованный в модуле desktop

      Каждый из этих элементов содержит атрибут class, задающий класс компаньона.

  • layout − корневой элемент компоновки экрана. Является сам по себе контейнером с вертикальным расположением компонентов.