XML-дескриптор экрана

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

Используйте дизайнер экранов Studio чтобы конфигурировать XML-дескрипторы.

Например, рассмотрим XML-дескриптор экрана редактирования:

<window xmlns="http://jmix.io/schema/ui/window"
        focusComponent="demoForm"
        caption="msg://window.caption">
    <data>
        <instance id="orderDc"
                  class="ui.ex1.entity.Order">
            <fetchPlan extends="_base"/>
            <loader/>
        </instance>
    </data>
    <facets>
        <dataLoadCoordinator auto="true"/>
        <screenSettings id="settingsFacet" auto="true"/>
    </facets>
    <actions>
        <action id="windowCommitAndClose" caption="msg:///actions.Ok"
                icon="EDITOR_OK"
                primary="true"
                shortcut="${COMMIT_SHORTCUT}"/>
        <action id="windowClose"
                caption="msg:///actions.Close"
                icon="EDITOR_CANCEL"/>
    </actions>
    <dialogMode height="600"
                width="800"/>
    <layout spacing="true" expand="editActions">
        <form id="demoForm" dataContainer="orderDc">
            <column width="350px">
                <timeField id="deliveryTimeField" property="deliveryTime"/>
                <textField id="ratingField" property="rating"/>
                <dateField id="dateField" property="date"/>
                <textField id="amountField" property="amount"/>
            </column>
        </form>
        <hbox id="editActions" spacing="true">
            <button id="commitAndCloseBtn" action="windowCommitAndClose"/>
            <button id="closeBtn" action="windowClose"/>
        </hbox>
    </layout>
</window>

Корневой элемент window содержит следующие атрибуты:

  • messagesGroup - произвольная группа сообщений, связанная с этим окном. Если атрибут messagesGroup не определен, сообщения загружаются из пакета, связанного с этим классом экрана.

  • class − имя контроллера.

  • caption − заголовок экрана, который может содержать ссылку на сообщение из вышеуказанного пакета.

  • focusComponent − идентификатор компонента, который получит фокус ввода при отображении экрана.

  • icon - значок окна.

  • extend - используется для расширения UI.

Элементы дескриптора:

  • data − описывает компоненты данных экрана.

  • facets - определяет список фасетов для экрана.

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

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

    Атрибуты элемента dialogMode:

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

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

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

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

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

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

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

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

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

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

  • facets – определяет список фасетов данного экрана.

  • layout − корневой элемент компоновки экрана.

  • layout - корневой элемент компоновки экрана.