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
Связанные ссылки
- 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..