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

DragPayload

Неизменяемый контейнер передаваемых данных (payload), переносящий идентификатор, тип, текст предпросмотра и пользовательский объект между источником и целью сброса.

Обзор

DragPayload инкапсулирует данные, передаваемые между инициатором перетаскивания и зонами сброса.

Архитектура данных

  • id: Уникальный строковый идентификатор перетаскиваемого объекта.
  • type: Строковый MIME или семантический тип (например, item/inventory, dock/tab). Поддерживает маски поиска, например item/*.
  • preview: Краткий текст предпросмотра, отображаемый во встроенных ghost-бэйджах и подсказках.
  • data: Необязательный Java-объект в оперативной памяти (Object), доступный через data(Class<T>).
DragPayload payload = DragPayload.of("item-42", "inventory/slot", "Diamond Sword", swordItem);
if (payload.matchesType("inventory/*")) {
    Sword item = payload.data(Sword.class);
}

Создание и проверка payload

DragPayload payload = DragPayload.of("item-42", "item.stack", "Iron Ingot", stackItem);

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

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

API

DragPayload(String, String, String)

Создает объект DragPayload с идентификатором, типом и текстом предпросмотра.

Параметр Тип Описание
id String Уникальный идентификатор данных.
type String MIME-тип или семантический строковый тип.
preview String Короткий текст предпросмотра.

DragPayload::data(Class)

Возвращает прикрепленный объект данных, безопасно приведенный к запрошенному классу.

Параметр Тип Описание
type Class Ожидаемый класс объекта данных.

Возвращает Object: Данные payload, приведенные к целевому типу, или null..

DragPayload::hasData()

Проверяет, содержит ли данный payload непустой объект пользовательских данных.

Возвращает boolean: True, если прикреплен непустой объект данных..

DragPayload::matchesType(String)

Проверяет, совпадает ли тип payload с ожидаемой строкой типа (с поддержкой wildcard '*').

Параметр Тип Описание
expectedType String Ожидаемый строковый тип для сопоставления.

Возвращает boolean: True, если тип совпадает с ожидаемой строкой типа..

DragPayload::of(String, String, String)

Статическая фабрика для создания DragPayload без объекта данных.

Параметр Тип Описание
id String Уникальный идентификатор данных.
type String MIME-тип или семантический строковый тип.
preview String Короткий текст предпросмотра.

Возвращает DragPayload: Вновь созданный неизменяемый экземпляр DragPayload..

DragPayload::of(String, String, String, Object)

Фабричный метод создания объекта payload с произвольными данными текущего процесса.

Параметр Тип Описание
id String Уникальный идентификатор данных.
type String MIME-тип или семантический строковый тип.
preview String Короткий текст предпросмотра.
data Object Пользовательский объект данных.

Возвращает DragPayload: Вновь созданный неизменяемый экземпляр DragPayload..