treeDataGrid
treeDataGrid отображает иерархические данные в таблице с расширяемыми строками.
XML-элемент |
|
|---|---|
Java-класс |
|
Основы
treeDataGrid в первую очередь повторяет функциональность компонента dataGrid.
Пример объявления treeDataGrid в XML-дескрипторе экрана:
<data>
<collection id="tasksDc"
class="io.jmix.uisamples.entity.Task">
<fetchPlan extends="_local">
<property name="parentTask" fetchPlan="_local"/>
<property name="assignee" fetchPlan="_local"/>
</fetchPlan>
<loader id="tasksDl">
<query>
<![CDATA[select e from Task e]]>
</query>
</loader>
</collection>
</data>
<facets>
<dataLoadCoordinator auto="true"/>
</facets>
<treeDataGrid id="taskDataGrid"
dataContainer="tasksDc"
hierarchyProperty="parentTask"
width="100%"
minHeight="20em">
<columns>
<column property="name"/>
<column property="dueDate"/>
<column property="assignee"/>
</columns>
</treeDataGrid>
Контейнер коллекции tasksDc хранит сущности Task. treeDataGrid связывается с контейнером атрибутом dataContainer, а элемент columns задаёт отображаемые атрибуты сущности.
Действия
Компонент treeDataGrid реализует интерфейс HasActions и может содержать как стандартные действия списка, так и пользовательские действия. Действия вызываются через кнопки или контекстное меню (по правому клику).
|
Для добавления действия в Jmix Studio:
|
<hbox id="buttonsPanel" classNames="buttons-panel"> (1)
<button id="createBtn" action="departmentsTable.create"/>
<button id="editBtn" action="departmentsTable.edit"/>
<button id="removeBtn" action="departmentsTable.remove"/>
<button id="infoBtn" action="departmentsTable.getInfo" icon="INFO_CIRCLE"/>
</hbox>
<treeDataGrid id="departmentsTable"
hierarchyProperty="parentDepartment"
width="100%"
minHeight="20em"
dataContainer="departmentsDc">
<columns>
<column property="name"/>
<column property="hrManager"/>
</columns>
<actions>
<action id="create" type="list_create"/> (2)
<action id="edit" type="list_edit"/>
<action id="remove" type="list_remove"/>
<action id="getInfo" text="Get Info"/> (3)
</actions>
</treeDataGrid>
| 1 | Определяет hbox для размещения кнопок действий. |
| 2 | Определяет стандартное действие list_create. |
| 3 | Определяет пользовательское действие getInfo. Значение его атрибута text задаёт текст действия в контекстном меню и используется как текст кнопки. |
Контекстное меню
Контекстное меню предоставляет альтернативный способ доступа к действиям через правую кнопку мыши. Каждое действие представлено отдельным пунктом меню.
Используйте элемент contextMenu для настройки списка пунктов меню, организуя их с помощью разделителей и иерархической структуры.
<treeDataGrid id="treeDataGrid"
hierarchyProperty="parentDepartment"
width="100%"
minHeight="20em"
dataContainer="departmentsDc">
<columns>
<column property="name"/>
<column property="hrManager"/>
</columns>
<actions showInContextMenuEnabled="false"> (1)
<action id="create" type="list_create"/>
<action id="edit" type="list_edit"/>
<action id="remove" type="list_remove"/>
<action id="getInfo" text="Get Info"/>
<action id="viewCalendar" text="Calendar"/>
</actions>
<contextMenu>
<item action="treeDataGrid.create"/> (2)
<item action="treeDataGrid.edit"/>
<item action="treeDataGrid.remove"/>
<separator/>
<item text="More"> (3)
<item action="treeDataGrid.getInfo" icon="INFO_CIRCLE"/>
<item action="treeDataGrid.viewCalendar" icon="CALENDAR"/>
</item>
</contextMenu>
</treeDataGrid>
| 1 | Скрыть все действия из меню. Или скрыть конкретное действие с помощью атрибута visible. |
| 2 | Явно добавить пункты меню для нужных действий. |
| 3 | Вложенные пункты создают иерархическую структуру. |
Варианты темы
Используйте атрибут themeNames, чтобы применить один или несколько вариантов темы.
| Вариант | Описание | Поддерживается в |
|---|---|---|
|
Удаляет внешнюю границу вокруг сетки. |
Aura, Lumo |
|
Удаляет горизонтальные границы между строками. |
Aura, Lumo |
|
Добавляет вертикальные границы между колонками. |
Aura, Lumo |
|
Чередует цвета фона строк для улучшения читаемости. |
Aura, Lumo |
|
Уменьшает высоту строк и интервалы. |
Aura, Lumo |
|
Позволяет содержимому ячеек переноситься на несколько строк вместо обрезки. |
Aura, Lumo |
Атрибуты
treeDataGrid имеет следующие уникальные атрибуты:
| Имя | Описание | По умолчанию |
|---|---|---|
Если |
|
|
Если |
|
|
Если |
|
|
Определяет, где можно оставить перетаскиваемую строку. Возможные значения: |
— |
|
Если |
|
|
Устанавливает пустой текст состояния. |
— |
|
Определяет имя атрибута сущности, которое относится к той же сущности. |
— |
|
Задаёт метакласс. |
— |
|
Если |
|
|
Если |
|
|
Определяет, будет ли выбранный колонка добавлен в конец или начало списка отсортированных колонок. Возможные значения: |
|
|
Задаёт поведение при обработке вложенных атрибутов, цепочка которых может содержать значения |
|
|
Определяет размер страницы или количество элементов, которые будут получены от поставщика данных за раз. |
|
|
Если |
|
|
Устанавливает режим выбора. Возможные значения: |
|
|
Если указано |
|
treeDataGrid имеет следующие общие атрибуты:
Обработчики
treeDataGrid имеет следующие уникальные обработчики:
| Имя | Описание |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Добавляет генератор данных для таблицы. Если генератор уже добавлен, ничего не делает. См. интерфейс |
|
Определяет, какие строки можно перетаскивать, вместо включения этой возможности для всех строк с помощью rowDraggable. |
|
Определяет, на какие строки можно поместить перетаскиваемый элемент. |
|
Обрабатывает событие, когда пользователь нажимает клавишу Enter. |
|
Генерирует части имён CSS-классов для ячеек на основе заданных условий. Позволяет настраивать внешний вид ячеек в зависимости от отображаемых данных. |
|
Создаёт всплывающую подсказку для ячейки колонки на основе заданных условий. См. интерактивный пример. |
treeDataGrid имеет следующие общие обработчики:
Элементы
Элементы dataGrid предоставляют множество параметров для управления внешним видом, поведением и функциями всех колонок или каждого колонки отдельно.
|
Чтобы добавить элемент к выбранному компоненту, нажмите кнопку Add в панели инспектора Jmix UI. |
columns
Элемент columns позволяет задавать набор отображаемых атрибутов и поведение для всех колонок.
XML-элемент |
|
|---|---|
Атрибуты |
exclude - includeAll - resizable - sortable |
Элементы |
Название |
Описание |
Значение по умолчанию |
|---|---|---|
Исключает из отображения определённые атрибуты. Некоторые атрибуты необходимо разделять запятой. Например: |
— |
|
Если указано |
— |
|
Если |
|
|
Если |
|
column
Элемент column определяет отдельный колонка. Атрибуты, заданные для отдельного колонки, имеют приоритет над атрибутами, заданными для всех колонок.
XML-элемент |
|
|---|---|
Атрибуты |
autowidth - editable - filterable - flexGrow - footer - frozen - header - key - property - resizable - sortable - textAlign - visible - width |
Обработчики |
AttachEvent - DataGridColumnVisibilityChangedEvent - DetachEvent - partNameGenerator - renderer - tooltipGenerator |
Элементы |
Название |
Описание |
Значение по умолчанию |
|---|---|---|
Если |
|
|
Если |
|
|
Если |
|
|
Задаёт коэффициент растяжения колонки. При значении |
|
|
Устанавливает текст в подвале колонки. Значением может быть как сам текст, так и ключ в пакете сообщений. Для ключа используйте префикс |
– |
|
Если |
|
|
Устанавливает заголовок колонки. Значением может быть как сам текст, так и ключ в пакете сообщений. Для ключа используйте префикс |
– |
|
Задаёт пользовательский идентификатор для связи с этим колонкой. Ключ можно использовать для получения колонки методом Ключ должен быть уникальным в пределах |
— |
|
Указывает имя атрибута сущности, отображаемого в колонке. Это может быть атрибут корневой сущности, например |
— |
|
Если |
|
|
Если |
|
|
Задаёт выравнивание текста. Возможные значения: |
|
|
Если |
|
|
Устанавливает ширину колонки как строку CSS. |
— |
Название |
Описание |
|---|---|
Возникает при изменении видимости колонки через компонент gridColumnVisibility. |
|
Генерирует части CSS-классов для этого колонки на основе условий. Позволяет настраивать внешний вид ячеек. Смотрите демонстрацию. |
|
Отрисовывает содержимое колонки с использованием текста или компонентов. Смотрите текстовый рендерер и рендерер компонентов. |
|
Генерирует всплывающие подсказки для ячеек колонки. Смотрите демонстрацию. |
contextMenu
Элемент contextMenu позволяет организовать пункты контекстного меню (по правому клику) в порядке, отличном от стандартного. Смотрите пример.
XML-элемент |
|
|---|---|
Атрибуты |
id - classNames - css - enabled - visible |
Обработчки |
AttachEvent - DetachEvent - GridContextMenuOpenedEvent - openedChangeEvent - dynamicContentHandler |
Элементы |
элемент - разделитель |
Название |
Описание |
|---|---|
Возникает при изменении состояния видимости контекстного меню. Может возвращать целевой элемент или идентификатор колонки, позволяя отображать пункты меню в зависимости от выбранного элемента. |
|
Возникает при изменении состояния видимости контекстного меню. |
|
Обрабатывает динамическое обновление содержимого меню при открытии, например добавление пунктов меню или их содержимого. Смотрите соответствующий пример для |