Перейти к содержанию

ReorderController

Контроллер переупорядочивания при перетаскивании, подключаемый к контейнерам (VBox, HBox, PanelWidget) с поддержкой линий вставки и автоматического изменения порядка элементов.

Обзор

ReorderController реализует переупорядочивание элементов перетаскиванием внутри линейных контейнеров (VBox, HBox, PanelWidget).

Возможности

  • Индикатор вставки: Отображает визуальную линию вставки в позиции будущего размещения элемента.
  • Автоматическое применение: Автоматически меняет порядок детей в контейнере при autoApply(true).
  • Внутреннее и внешнее перетаскивание: Поддерживает перемещение только собственных элементов или прием внешних элементов.
ReorderController.attach(vbox)
        .orientation(Orientation.VERTICAL)
        .accepts("task/*")
        .autoApply(true)
        .indicator(3.0f, 4.0f, ColorView.ofHex("#007ACC"))
        .onReorder((from, to) -> syncDatabaseOrder(from, to));

Переупорядочивание дочерних элементов в контейнере

ReorderController.attach(vbox)
        .orientation(Orientation.VERTICAL)
        .accepts("card")
        .onReorder((from, to) -> dataList.add(to, dataList.remove((int) from)));

Связанные ссылки

  • DragController: Контроллер жеста перетаскивания, подключаемый к любому виджету через композицию для инициации drag-and-drop с ghost-предпросмотром, порогом смещения и автопрокруткой.
  • DragSession: Состояние и контроллер активного жеста перетаскивания, управляющий координатами указателя, активной целью сброса, позиционированием ghost, индикаторами вставки и автопрокруткой.
  • DropController: Контроллер цели сброса, подключаемый к любому виджету через композицию для фильтрации payload и обработки событий drag enter, over, leave и drop.

API

ReorderController::accepts(Predicate)

Задает предикат-валидатор допустимых payload для переупорядочивания.

Параметр Тип Описание
validator Predicate Пользовательский валидатор данных.

Возвращает ReorderController: Данный ReorderController для цепочки вызовов..

ReorderController::accepts(String)

Настраивает типы payload, разрешенные для вызова переупорядочивания.

Параметр Тип Описание
types String Принимаемые типы данных для переупорядочивания.

Возвращает ReorderController: Данный ReorderController для цепочки вызовов..

ReorderController::attach(Widget)

Подключает ReorderController к указанному контейнеру дочерних элементов.

Параметр Тип Описание
container Widget Виджет-контейнер, чьи дочерние элементы переупорядочиваются.

Возвращает ReorderController: Вновь подключенный экземпляр ReorderController..

ReorderController::autoApply(boolean)

Включает или отключает автоматическое перемещение дочерних элементов в списке контейнера.

Параметр Тип Описание
autoApply boolean Применять ли изменения порядка дочерних элементов автоматически.

Возвращает ReorderController: Данный ReorderController для цепочки вызовов..

ReorderController::container()

Возвращает целевой виджет-контейнер, к которому подключен данный контроллер.

Возвращает Widget: Виджет-контейнер, элементы которого переупорядочиваются..

ReorderController::detach()

Отключает ReorderController от контейнера и удаляет слушатели.

ReorderController::enabled(boolean)

Включает или отключает данный контроллер переупорядочивания.

Параметр Тип Описание
enabled boolean Включен ли контроллер переупорядочивания.

Возвращает ReorderController: Данный ReorderController для цепочки вызовов..

ReorderController::indicator(ColorView, float, float)

Настраивает толщину, отступ и цвет линии индикатора вставки при переупорядочивании.

Параметр Тип Описание
color ColorView Цвет линии вставки при переупорядочивании.
thickness float Толщина линии вставки при переупорядочивании.
inset float Боковой отступ линии вставки.

Возвращает ReorderController: Данный ReorderController для цепочки вызовов..

ReorderController::internalOnly(boolean)

Ограничивает переупорядочивание элементами, принадлежащими исключительно данному контейнеру.

Параметр Тип Описание
internalOnly boolean Принимать ли элементы только из данного контейнера.

Возвращает ReorderController: Данный ReorderController для цепочки вызовов..

ReorderController::itemFilter(Predicate)

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

Параметр Тип Описание
itemFilter Predicate Предикат, определяющий возможность перетаскивания дочернего виджета.

Возвращает ReorderController: Данный ReorderController для цепочки вызовов..

ReorderController::onReorder(BiConsumer)

Регистрирует упрощенный коллбэк с исходным и целевым индексами перемещения.

Параметр Тип Описание
listener BiConsumer Коллбэк, получающий fromIndex и toIndex.

Возвращает ReorderController: Данный ReorderController для цепочки вызовов..

ReorderController::onReorder(Consumer)

Регистрирует коллбэк, принимающий объект события ReorderEvent.

Параметр Тип Описание
listener Consumer Коллбэк, вызываемый при переупорядочивании элементов.

Возвращает ReorderController: Данный ReorderController для цепочки вызовов..

ReorderController::orientation(Orientation)

Настраивает ориентацию компоновки (HORIZONTAL или VERTICAL) для переупорядочивания.

Параметр Тип Описание
orientation Orientation Ориентация компоновки дочерних элементов контейнера.

Возвращает ReorderController: Данный ReorderController для цепочки вызовов..