sidePanelLayout
sidePanelLayout добавляет боковую панель, которая открывается рядом с основным содержимым или поверх него.
| Боковую панель также можно создать программно с помощью бокового диалога. |
XML-элемент |
|
|---|---|
Java-класс |
|
Основы
SidePanelLayout разделяет содержимое на две области:
-
Основное содержимое — основная область контейнера.
-
Содержимое боковой панели — панель, которая выдвигается с одной из сторон.
Чтобы определить компонент в XML, используйте элемент sidePanelLayout и добавьте ровно два непосредственных дочерних компонента.
<sidePanelLayout id="sidePanelLayout"
width="100%"
height="100%">
<vbox id="contentBox">
<!-- Main content -->
</vbox>
<vbox id="sidePanelBox" width="100%" height="100%">
<hbox id="headerBox" width="100%"> (1)
<h2 text="Customer information"/>
<sidePanelLayoutCloser/>
</hbox>
<!-- Side panel content -->
</vbox>
</sidePanelLayout>
| 1 | Боковая панель обычно содержит кнопку закрытия. Добавьте её с помощью специального компонента sidePanelLayoutCloser. |
Открытие боковой панели
Боковая панель открывается в ответ на действия пользователя, например нажатие кнопки. Вызовите метод toggleSidePanel():
@ViewComponent
private SidePanelLayout sidePanelLayout;
@Subscribe(id = "toggleButton", subject = "clickListener")
public void onToggleButtonClick(final ClickEvent<JmixButton> event) {
sidePanelLayout.toggleSidePanel();
}
Редактор в боковой панели
Используйте SidePanelLayout для шаблона «мастер — детали»: основная область содержит список сущностей, а боковая панель позволяет редактировать выбранный экземпляр.
Стилизация
Внешний вид и размер SidePanelLayout можно настроить с помощью CSS-переменных и селекторов темы.
Размеры с помощью CSS-переменных
Следующие переменные задают размер боковой панели. Установите их глобально или в селекторе конкретного sidePanelLayout.
| Значения, заданные в XML или через Java API, имеют приоритет над CSS-переменными. |
Горизонтальные боковые панели (LEFT, RIGHT, INLINE_START, INLINE_END):
Переменная |
Описание |
По умолчанию |
|---|---|---|
|
Предпочтительная ширина боковой панели. |
|
|
Максимальная ширина. |
|
|
Минимальная ширина. |
|
Вертикальные боковые панели (TOP, BOTTOM):
Переменная |
Описание |
По умолчанию |
|---|---|---|
|
Предпочтительная высота боковой панели. |
|
|
Максимальная высота. |
|
|
Минимальная высота. |
|
Внешний вид
Переменная |
Описание |
По умолчанию |
|---|---|---|
|
Задаёт длительность анимации открытия и закрытия. |
|
Части
SidePanelLayout предоставляет следующие части, доступные для стилизации:
Часть |
Описание |
|---|---|
|
Контейнер для содержимого, боковой панели и модальной подложки. |
|
Основное содержимое контейнера. |
|
Модальная подложка. |
|
Панель, которая выдвигается и скрывается. |
|
Контейнер содержимого боковой панели. |
Состояния
Компонент предоставляет следующие состояния:
Состояние |
Описание |
|---|---|
|
Применяется, когда боковая панель открыта. |
|
Применяется, когда боковая панель модальная. |
|
Соответствует текущему положению боковой панели ( |
|
Применяется, когда панель перекрывает содержимое, а не сдвигает его. |
Атрибуты
Общие атрибуты имеют одинаковое назначение для всех компонентов. Следующие атрибуты относятся только к sidePanelLayout.
| Имя | Описание | По умолчанию |
|---|---|---|
Задаёт сторону, с которой появляется панель. Возможные значения:
|
|
|
Задаёт взаимодействие боковой панели с основным содержимым. Если установлено значение |
|
|
Если установлено значение |
|
|
Если установлено значение Атрибут действует, только если включён modal. |
|
|
Задаёт доступную надпись для элемента перекрытия. |
— |
|
Если установлено значение |
|
|
Задаёт ширину боковой панели, когда её положение — Значением может быть любой допустимый CSS-размер, например |
|
|
Задаёт минимальную ширину горизонтально расположенной боковой панели. |
|
|
Задаёт максимальную ширину горизонтально расположенной боковой панели. |
|
|
Задаёт высоту боковой панели, когда она появляется сверху или снизу. |
|
|
Задаёт минимальную высоту боковой панели. |
|
|
Задаёт максимальную высоту боковой панели. |
|
Обработчики
Общие обработчики настраиваются одинаково для всех компонентов. Следующие обработчики относятся только к sidePanelLayout.
| Имя | Описание |
|---|---|
Срабатывает, когда пользователь нажимает на модальную подложку. |
|
Срабатывает до отображения боковой панели и начала анимации открытия. Используйте его, чтобы обновить содержимое до появления панели. |
|
Срабатывает после полного открытия боковой панели и завершения анимации. |
|
Срабатывает при закрытии боковой панели. |