Компонент Kanban
Компонент пользовательского интерфейса kanban представляет собой доску Kanban. Доска отображает рабочий процесс на разных этапах проекта, используя карточки для задач и столбцы для каждого этапа.
Основы
Чтобы создать компонент, используйте XML-элемент kanban и свяжите его с контейнером данных. Для этого можно использовать Jmix Studio.
 
Новый элемент kanban будет добавлен как в панель структуры Jmix UI, так и в XML. Вы можете настроить атрибуты, такие как id, height, width и так далее, так же, как это делается для других компонентов UI.
<kanban:kanban id="kanban"
               height="100%"
               width="100%"/>Если вы не используете дизайнер экранов, объявите пространство имен kanban в XML-дескрипторе вашего экрана вручную:
<view xmlns="http://jmix.io/schema/flowui/view"
      xmlns:kanban="http://jmix.io/schema/kanban/ui"
      title="msg://kanbanView.title">Затем укажите, какие данные и столбцы вы хотите отобразить:
- 
Чтобы отобразить столбцы, добавьте элемент columns с атрибутом columnsEnum.
- 
Чтобы настроить сопоставление полей сущности, используйте элемент propertiesMapping. 
В следующем примере показано, как создать базовую доску Kanban:
<data>
    <collection id="kanbanTasksDc"
                class="com.company.onboarding.entity.KanbanTask">
        <loader id="kanbanTasksDl" readOnly="true">
            <query>
                <![CDATA[select e from KanbanTask e]]>
            </query>
        </loader>
        <fetchPlan extends="_base"/>
    </collection>
</data>
<layout>
    <kanban:kanban id="kanban" dataContainer="kanbanTasksDc"
                   width="100%" height="100%">
        <kanban:columns>
            <kanban:column dataField="todo"
                           label="msg://kanban.column.todo.label"/>
            <kanban:column dataField="in-progress"
                           label="msg://kanban.column.in_progress.label"/>
            <kanban:column dataField="verification"
                           label="msg://kanban.column.verification.label"/>
            <kanban:column dataField="done"
                           label="msg://kanban.column.done.label"/>
        </kanban:columns>
    </kanban:kanban>
</layout> 
Привязка данных
Привязка данных - это связь визуального компонента с контейнером данных. Kanban может отображать данные, загруженные в контейнер коллекции или контейнер KeyValue.
Контейнер коллекции
Обычно вы связываете kanban с данными декларативно в XML-дескрипторе с помощью атрибута dataContainer. Этот атрибут должен ссылаться на контейнер коллекции, который содержит данные, которые вы хотите отобразить. Смотрите соответствующий пример в предыдущем разделе.
Контейнер KeyValue
Также возможно связать kanban с контейнером KeyValue. Например:
<data>
    <keyValueCollection id="keyValueKanbanTasksDc">
        <properties idProperty="id">
            <property name="id" datatype="uuid"/>
            <property name="status" datatype="string"/>
            <property name="text" datatype="string"/>
        </properties>
        <loader>
            <query>
                <![CDATA[select t.id, t.status, t.text from KanbanTask t]]>
            </query>
        </loader>
    </keyValueCollection>
</data>
<layout>
    <kanban:kanban id="kanbanKeyValue"
                   dataContainer="keyValueKanbanTasksDc"
                   width="100%" height="100%">
        <kanban:columns>
            <kanban:column dataField="todo"
                           label="msg://kanban.column.todo.label"/>
            <kanban:column dataField="in-progress"
                           label="msg://kanban.column.in_progress.label"/>
            <kanban:column dataField="verification"
                           label="msg://kanban.column.verification.label"/>
            <kanban:column dataField="done"
                           label="msg://kanban.column.done.label"/>
        </kanban:columns>
    </kanban:kanban>
</layout>Программное связывание
Если вам нужно определить контейнер данных программно, необходимо удалить атрибут dataContainer:
<kanban:kanban id="programmaticallyKanban"
               width="100%" height="100%">
    <kanban:columns>
        <kanban:column dataField="todo"
                       label="msg://kanban.column.todo.label"/>
        <kanban:column dataField="in-progress"
                       label="msg://kanban.column.in_progress.label"/>
        <kanban:column dataField="verification"
                       label="msg://kanban.column.verification.label"/>
        <kanban:column dataField="done"
                       label="msg://kanban.column.done.label"/>
    </kanban:columns>
</kanban:kanban>После этого в контроллере экрана используйте класс ContainerKanbanItems, чтобы связать Kanban с контейнером данных:
@ViewComponent
private Kanban<KanbanTask> programmaticallyKanban;
@ViewComponent
private CollectionContainer<KanbanTask> kanbanTasksDc;
@Autowired
private DataManager dataManager;
@Subscribe
public void onInit(InitEvent event) {
    programmaticallyKanban.setItems(new ContainerKanbanItems<>(kanbanTasksDc, UUID.class));
}Сопоставление свойств
Сопоставление свойств позволяет вам определить, как данные из ваших сущностей отображаются на доске Kanban.
- 
Сущность Jmix: У вас есть сущность Jmix (например, KanbanTask), которая представляет задачу в вашем приложении. Эта сущность имеет различные атрибуты, такие какtitle,status,dueDateи так далее.
- 
Карточка Kanban: Вы хотите визуально отобразить эти атрибуты задачи на карточке Kanban в вашем приложении Jmix. 
- 
Сопоставление: Компонент Kanban в Jmix предоставляет механизм для связывания атрибутов сущности с соответствующими полями на карточке Kanban. 
Элемент propertiesMapping определяет сопоставление свойств сущности с набором полей карточки задачи. Карточка задачи, отображаемая на доске Kanban, имеет предопределенный набор полей:
| id | Уникальный идентификатор задачи. Обязателен для отображения. | 
|---|---|
| status | Статус задачи. Должен соответствовать dataField столбца или подстолбца. Обязателен для отображения. | 
| text | Текст задачи. Обязателен для отображения. | 
| color | Цвет, используемый для визуального выделения карточки задачи. | 
| dueDate | Срок задачи. | 
| priority | Приоритет задачи. | 
| progress | Прогресс задачи в процентах, число от 0 до 100. | 
| swimlane | Определяет полосу задачи, к которой относится задача. Оно должно соответствовать атрибуту dataField полосы задач, если полосы задач настроены. | 
| tags | Список тегов, разделенных запятыми. | 
| userAvatar | Аватар пользователя, назначенного задаче. | 
| username | Имя пользователя, назначенного задаче. | 
Декларативное сопоставление
Обычно вы сопоставляете kanban со свойствами сущности в XML-дескрипторе с помощью элемента propertiesMapping.
Обратите внимание, как задаются значения атрибутов. Значение может быть атрибутом корневой сущности (например, text = "text") или атрибутом ее дочерней сущности (например, username = "assignee.username") -  используйте точечную нотацию для обхода графа объектов.
В следующем примере показан kanban, который сопоставлен с некоторыми полями его сущности задачи:
 
<kanban:kanban id="declarativePropertiesMappingKanban" dataContainer="kanbanTasksDc"
               width="100%" height="100%"
               taskUserAvatarVisible="true">
    <kanban:columns>
        <kanban:column dataField="todo"
                       label="msg://kanban.column.todo.label"/>
        <kanban:column dataField="in-progress"
                       label="msg://kanban.column.in_progress.label"/>
        <kanban:column dataField="verification"
                       label="msg://kanban.column.verification.label"/>
        <kanban:column dataField="done"
                       label="msg://kanban.column.done.label"/>
    </kanban:columns>
    <kanban:propertiesMapping id="id" status="status" text="text"
                              username="assignee.username"
                              userAvatar="assignee.picture"/>
</kanban:kanban>Программное сопоставление
Вы можете определить propertiesMapping программно. Для этого не указывайте его в XML-разметке kanban. После этого в контроллере экрана установите его с помощью метода setPropertiesMapping(JmixKanban.PropertiesMapping).
<kanban:kanban id="programmaticPropertiesMappingKanban" dataContainer="kanbanTasksDc"
               width="100%" height="100%"
               taskUserAvatarVisible="true">
    <kanban:columns>
        <kanban:column dataField="todo"
                       label="msg://kanban.column.todo.label"/>
        <kanban:column dataField="in-progress"
                       label="msg://kanban.column.in_progress.label"/>
        <kanban:column dataField="verification"
                       label="msg://kanban.column.verification.label"/>
        <kanban:column dataField="done"
                       label="msg://kanban.column.done.label"/>
    </kanban:columns>
</kanban:kanban>@ViewComponent
private Kanban<KanbanTask> programmaticPropertiesMappingKanban;
@Subscribe
public void onInit(InitEvent event) {
    JmixKanban.PropertiesMapping propertiesMapping = new JmixKanban.PropertiesMapping("id", "status", "text");
    propertiesMapping.setUserAvatar("assignee.picture");
    propertiesMapping.setUsername("assignee.username");
    programmaticPropertiesMappingKanban.setPropertiesMapping(propertiesMapping);
}Save Delegate
Существует три способа изменения данных с помощью компонента kanban:
- 
Изменение атрибута, сопоставленного с status, путем перетаскивания карточки задачи Kanban из одного столбца в другой. 
- 
Изменение атрибута, сопоставленного с swimlane, путем перетаскивания карточки задачи Kanban из одной полосы задач в другую. 
- 
Изменение атрибута, сопоставленного с priority, путем выбора другого приоритета с помощью соответствующей иконки. 
Визуальные компоненты, включая kanban, хранят временные изменения в контейнере данных до тех пор, пока не будет запущено действие подтверждения для их фиксации в базе данных.
Чтобы автоматически зафиксировать изменения, когда пользователь редактирует задачи, создайте обработчик для saveDelegate и сохраните изменения с помощью DataManager:
<data>
    <collection id="kanbanTasksDc"
                class="com.company.onboarding.entity.KanbanTask">
        <loader id="kanbanTasksDl" readOnly="true">
            <query>
                <![CDATA[select e from KanbanTask e]]>
            </query>
        </loader>
        <fetchPlan extends="_base"/>
    </collection>
</data>
<layout>
    <kanban:kanban id="saveDelegateKanban" dataContainer="kanbanTasksDc"
                   width="100%" height="100%">
        <kanban:columns>
            <kanban:column dataField="todo"
                           label="msg://kanban.column.todo.label"/>
            <kanban:column dataField="in-progress"
                           label="msg://kanban.column.in_progress.label"/>
            <kanban:column dataField="verification"
                           label="msg://kanban.column.verification.label"/>
            <kanban:column dataField="done"
                           label="msg://kanban.column.done.label"/>
        </kanban:columns>
    </kanban:kanban>
</layout>@Install(to = "saveDelegateKanban", subject = "saveDelegate")
private void kanbanSaveDelegate(final KanbanTask kanbanTask) {
    dataManager.save(kanbanTask);
}| Чтобы автоматически сохранять изменения  | 
Действия
Компонент kanban реализует интерфейс HasActions и может содержать как стандартные действия списка, так и пользовательские действия. Действия вызываются щелчком по назначенной кнопке.
В следующем примере показано добавление действий к компоненту:
<hbox id="buttonsPanel" classNames="buttons-panel"> (1)
    <button id="createBtn" action="kanbanActions.create"/>
    <button id="editBtn" action="kanbanActions.edit"/>
    <button id="removeBtn" action="kanbanActions.remove"/>
    <button id="infoBtn" action="kanbanActions.getInfo"/>
</hbox>
<kanban:kanban id="kanbanActions" dataContainer="kanbanTasksDc"
               width="100%" height="100%">
    <kanban:columns>
        <kanban:column dataField="todo"
                       label="msg://kanban.column.todo.label"/>
        <kanban:column dataField="in-progress"
                       label="msg://kanban.column.in_progress.label"/>
        <kanban:column dataField="verification"
                       label="msg://kanban.column.verification.label"/>
        <kanban:column dataField="done"
                       label="msg://kanban.column.done.label"/>
    </kanban:columns>
    <kanban:actions>
        <kanban:action id="create" type="list_create"/> (2)
        <kanban:action id="edit" type="list_edit"/>
        <kanban:action id="remove" type="list_remove"/>
        <kanban:action id="getInfo" text="Get Info" icon="INFO_CIRCLE"/> (3)
    </kanban:actions>
</kanban:kanban>| 1 | Определите контейнер hboxдля отображения кнопок действий над компонентом. | 
| 2 | Определите стандартное действие list_create. Это стандартное действие для создания нового элемента. | 
| 3 | Определите пользовательское действие getInfo. Значение его атрибута text будет использоваться в качестве текста кнопки. | 
 
| Чтобы добавить  | 
Иерархические столбцы
Компонент kanban поддерживает иерархические столбцы. Подстолбцы имеют те же свойства, что и столбцы верхнего уровня.
| Невозможно использовать подстолбцы и полосы задач или columnsEnum одновременно. | 
В следующем примере показан kanban с подстолбцами:
 
Показать код
<kanban:kanban id="hierarchicalKanban" dataContainer="kanbanTasksDc"
               width="100%" height="100%">
    <kanban:columns>
        <kanban:column dataField="todo"
                       label="msg://kanban.column.todo.label"/>
        <kanban:column dataField="in-progress"
                       label="msg://kanban.column.in_progress.label">
            <kanban:columns>
                <kanban:column dataField="started"
                               label="msg://kanban.column.started.label"/>
                <kanban:column dataField="almost-finished"
                               label="msg://kanban.column.almost_finished.label"/>
            </kanban:columns>
        </kanban:column>
        <kanban:column dataField="verification"
                       label="msg://kanban.column.verification.label"/>
        <kanban:column dataField="done"
                       label="msg://kanban.column.done.label"/>
    </kanban:columns>
</kanban:kanban>Режим иерархии
Отображение иерархических столбцов возможно в двух режимах:
- 
COLUMNS- подстолбцы представлены как вложенные столбцы.
- 
TABS- подстолбцы представлены как текстовые вкладки. В этом случае имеет смысл указать атрибут selected.
Например:
 
Показать код
<kanban:kanban id="hierarchyModeKanban" dataContainer="kanbanTasksDc"
               width="100%" height="100%"
               hierarchyMode="TABS">
    <kanban:columns>
        <kanban:column dataField="todo"
                       label="msg://kanban.column.todo.label"/>
        <kanban:column dataField="in-progress"
                       label="msg://kanban.column.in_progress.label">
            <kanban:columns>
                <kanban:column dataField="started" selected="true"
                               label="msg://kanban.column.started.label"/>
                <kanban:column dataField="almost-finished"
                               label="msg://kanban.column.almost_finished.label"/>
            </kanban:columns>
        </kanban:column>
        <kanban:column dataField="verification"
                       label="msg://kanban.column.verification.label"/>
        <kanban:column dataField="done"
                       label="msg://kanban.column.done.label"/>
    </kanban:columns>
</kanban:kanban>Положение задачи
Иерархические столбцы могут быть отображены также на конечных уровнях. Существует два варианта для положения задач:
- 
ALL- задачи могут отображаться на всех уровнях иерархии столбцов.
- 
LEAF- задачи могут отображаться только на конечном уровне.
Например:
 
Показать код
<kanban:kanban id="taskPositionKanban" dataContainer="kanbanTasksDc"
               width="100%" height="100%"
               taskPosition="LEAF">
    <kanban:columns>
        <kanban:column dataField="todo"
                       label="msg://kanban.column.todo.label"/>
        <kanban:column dataField="in-progress"
                       label="msg://kanban.column.in_progress.label">
            <kanban:columns>
                <kanban:column dataField="started" selected="true"
                               label="msg://kanban.column.started.label"/>
                <kanban:column dataField="almost-finished"
                               label="msg://kanban.column.almost_finished.label"/>
            </kanban:columns>
        </kanban:column>
        <kanban:column dataField="verification"
                       label="msg://kanban.column.verification.label"/>
        <kanban:column dataField="done"
                       label="msg://kanban.column.done.label"/>
    </kanban:columns>
</kanban:kanban>Рендереры
Компонент kanban поддерживает настройку отображения карточек. Рендеры можно использовать для настройки отображения заголовка столбца, нижнего колонтитула и текста карточки задачи Kanban.
Рендерер задачи
Рендерер задачи определяется функцией обратного вызова, которую можно использовать для настройки рендеринга задачи. Kanban вызывает ее с двумя аргументами: HTML-элемент задачи и данные задачи.
Например:
 
Показать код
<kanban:kanban id="taskRendererKanban" dataContainer="kanbanTasksDc"
               width="100%" height="100%">
    <kanban:columns>
        <kanban:column dataField="todo"
                       label="msg://kanban.column.todo.label"/>
        <kanban:column dataField="in-progress"
                       label="msg://kanban.column.in_progress.label"/>
        <kanban:column dataField="verification"
                       label="msg://kanban.column.verification.label"/>
        <kanban:column dataField="done"
                       label="msg://kanban.column.done.label"/>
    </kanban:columns>
    <kanban:taskRendererFunction>
        <![CDATA[
            (task, data) => {
                task.style.color = data.text.includes("Create") ? '#0B88DF' : '#182739'
            }
        ]]>
    </kanban:taskRendererFunction>
</kanban:kanban>Рендерер заголовка
Рендерер заголовка определяется функцией обратного вызова, которую можно использовать для настройки рендеринга заголовка столбца. Kanban вызывает ее с тремя аргументами: HTML-элемент заголовка столбца, данные столбца и поле данных столбца.
Например:
 
Показать код
<kanban:kanban id="headerRendererKanban" dataContainer="kanbanTasksDc"
               width="100%" height="100%">
    <kanban:columns>
        <kanban:column dataField="todo"
                       label="msg://kanban.column.todo.label"/>
        <kanban:column dataField="in-progress"
                       label="msg://kanban.column.in_progress.label"/>
        <kanban:column dataField="verification"
                       label="msg://kanban.column.verification.label"/>
        <kanban:column dataField="done"
                       label="msg://kanban.column.done.label"/>
    </kanban:columns>
    <kanban:columnHeaderRendererFunction>
        <![CDATA[
            (header, data, dataField) => {
                let color = '';
                switch (data.label) {
                    case 'Todo': {
                        color = '#0B88DA';
                        break;
                    }
                    case 'In progress': {
                        color = '#30C1E3'
                        break;
                    }
                    case 'Verification': {
                        color = '#3634C8'
                        break;
                    }
                    case 'Done': {
                        color = '#34C8BA';
                        break;
                    }
                }
                header.style.background = color;
                header.style.color = '#FFF';
            }
        ]]>
    </kanban:columnHeaderRendererFunction>
</kanban:kanban>Рендерер нижнего колонтитула
Рендерер нижнего колонтитула определяется функцией обратного вызова, которую можно использовать для настройки рендеринга нижнего колонтитула столбца. Kanban вызывает ее с тремя аргументами: HTML-элемент нижнего колонтитула столбца, данные столбца и поле данных столбца.
Например:
 
Показать код
<kanban:kanban id="footerRendererKanban" dataContainer="kanbanTasksDc"
               width="100%" height="100%"
               columnSummaryEnabled="true"
               columnFooterVisible="true">
    <kanban:columns>
        <kanban:column dataField="todo"
                       label="msg://kanban.column.todo.label"/>
        <kanban:column dataField="in-progress"
                       label="msg://kanban.column.in_progress.label"/>
        <kanban:column dataField="verification"
                       label="msg://kanban.column.verification.label"/>
        <kanban:column dataField="done"
                       label="msg://kanban.column.done.label"/>
    </kanban:columns>
    <kanban:columnFooterRendererFunction>
        <![CDATA[
            (footer, data, dataField) => {
                footer.style.color = data.label === 'In progress' ? '#0B88DA' : '#3634C8';
            }
        ]]>
    </kanban:columnFooterRendererFunction>
</kanban:kanban>Атрибуты
В Jmix  существует множество общих атрибутов, которые выполняют одинаковую функцию для всех компонентов. Ниже приведены атрибуты, специфичные для kanban:
| Вы можете просматривать и редактировать атрибуты, применимые к компоненту, в Jmix Studio с помощью панели инспектора Jmix UI. | 
| Название | Описание | Значение по умолчанию | 
|---|---|---|
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | |
| Устанавливает ширину всех столбцов в пикселях. | 
 | |
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | |
| Указывает режим иерархии для вложенных столбцов со следующими возможными значениями:  | 
 | |
| Устанавливает индекс столбца, с которого начинаются полосы задач. Смотрите раздел Полосы задач. | 
 | |
| Устанавливает индекс столбца, на котором заканчиваются полосы задач. | – | |
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | |
| Указывает положение задачи для столбцов со следующими возможными значениями:  | 
 | |
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | 
Обработчики
В Jmix существует множество общих обработчиков, которые конфигурируются одинаково для всех компонентов.
Ниже приведены обработчики, специфичные для kanban.
| Чтобы сгенерировать заглушку обработчика в Jmix Studio, используйте вкладку Handlers панели инспектора Jmix UI, или команду Generate Handler, доступную на верхней панели контроллера экрана и через меню Code → Generate (Alt+Insert / Cmd+N). | 
| Name | Description | 
|---|---|
| Событие  | |
| Событие  | |
| Событие  | |
| Событие  | |
| Событие  | |
| Событие  | |
| Событие  | |
| Событие  | |
| Событие  | |
| Событие  | |
| Событие  | |
| Добавляет функцию делегата сохранения, которая будет использоваться для сохранения данных, которые были обновлены с помощью Kanban. Вызывается, когда карточка задачи перетаскивается по доске и когда приоритет задачи изменяется с помощью соответствующей иконки. Смотрите раздел Save Delegate. | 
Элементы Kanban
Элементы внутри kanban предоставляют широкий набор опций для управления внешним видом, поведением и функциональностью столбцов.
| Чтобы добавить элемент к выбранному компоненту, нажмите кнопку Add на панели инспектора Jmix UI. | 
Columns
Элемент columns может определить набор столбцов для отображения, либо явно, либо с помощью перечисления.
| XML-элемент | 
 | 
|---|---|
| Атрибуты | |
| Элементы | 
| Название | Описание | Значение по умолчанию | 
|---|---|---|
| Указывает FQN перечисления, которое будет использоваться в качестве значений столбцов. Значения перечисления будут использоваться в качестве dataField столбца, а его локализованное значение будет использоваться в качестве метки столбца. Вложенные столбцы недоступны в этом варианте определения. См. онлайн-пример. | – | 
Column
Элемент column определяет отдельный столбец.
| XML-элемент | 
 | 
|---|---|
| Java-класс | 
 | 
| Атрибуты | dataField - collapsed - collapsible - color - label - orientation - reorder - selected - visible - width | 
| Элементы | 
| Название | Описание | Значение по умолчанию | 
|---|---|---|
| Устанавливает пользовательский идентификатор для сопоставления этого столбца.  
 | – | |
| Если установлено значение  | 
 | |
| Если установлено значение  | 
 | |
| Устанавливает свойство цвета столбца в виде строки CSS. Цвет применяется к заголовку и может также быть применен к карточкам, расположенным в столбце. | – | |
| Устанавливает текст заголовка столбца. Значение атрибута может быть либо текстом, либо ключом в пакете сообщений. В случае ключа значение должно начинаться с префикса  | – | |
| Указывает ориентацию карточек задач внутри столбца со следующими возможными значениями:  | 
 | |
| Если установлено значение  | 
 | |
| Если установлено значение  | – | |
| Если установлено значение  | 
 | |
| Устанавливает ширину столбца в пикселях. | – | 
Swimlanes
| Это функция в стадии разработки. Ее внешний вид, а также детали реализации могут значительно измениться в будущих релизах. | 
Элемент swimlanes может определить набор полос задач для отображения, либо явно, либо с помощью перечисления. Полосы задач - это горизонтальные полосы, которые делят карточки задач на области ответственности. Вложенные столбцы недоступны при использовании полос задач.
| XML-элемент | 
 | 
|---|---|
| Атрибуты | |
| Элементы | 
| Название | Описание | Значение по умолчанию | 
|---|---|---|
| Указывает FQN перечисления, которое будет использоваться в качестве значений полос задач. Значения перечисления будут использоваться в качестве dataField полосы задач, а его локализованное значение будет использоваться в качестве метки полосы задач. | – | 
Swimlane
Элемент swimlane определяет отдельную полосу задач.
| XML-элемент | 
 | 
|---|---|
| Java-класс | 
 | 
| Атрибуты | 
| Название | Описание | Значение по умолчанию | 
|---|---|---|
| Устанавливает пользовательский идентификатор для сопоставления этой полосы задач.  
 | – | |
| Устанавливает свойство цвета полосы задач в виде строки CSS. Цвет применяется к горизонтальным полосам полосы задач. | – | |
| Устанавливает текст заголовка полосы задач. Значение атрибута может быть либо текстом, либо ключом в пакете сообщений. В случае ключа значение должно начинаться с префикса  | – | 
PropertiesMapping
Карточки задач Kanban могут отображать определенные поля сущности задачи Kanban. Элемент propertiesMapping используется для установки сопоставления свойств сущности с полями карточки. Смотрите пример.
| XML-элемент | 
 | 
|---|---|
| Java-класс | 
 | 
| Атрибуты | id - status - test - color - dueDate - priority - progress - swimlane - tags - userAvatar - username - | 
| Название | Описание | Значение по умолчанию | 
|---|---|---|
| Указывает имя атрибута сущности, которое будет сопоставлено со свойством  | 
 | |
| Указывает имя атрибута сущности, которое будет сопоставлено со свойством  | 
 | |
| Указывает имя атрибута сущности, которое будет сопоставлено со свойством  | 
 | |
| Указывает имя атрибута сущности, которое будет сопоставлено со свойством  | – | |
| Указывает имя атрибута сущности, которое будет сопоставлено со свойством  | – | |
| Указывает имя атрибута сущности, которое будет сопоставлено со свойством  | – | |
| Указывает имя атрибута сущности, которое будет сопоставлено со свойством  | – | |
| Указывает имя атрибута сущности, которое будет сопоставлено со свойством  | – | |
| Указывает имя атрибута сущности, которое будет сопоставлено со свойством  | – | |
| Указывает имя атрибута сущности, которое будет сопоставлено со свойством  | – | |
| Указывает имя атрибута сущности, которое будет сопоставлено со свойством  | – | 
Смотрите также
Смотрите документацию Kanban для получения дополнительной информации.