Перенос объектов между видами с помощью перетаскивания в Eclipse RCP? - PullRequest
4 голосов
/ 09 декабря 2011

У меня есть 2 просмотра в моем приложении. В одном из представлений я вижу TreeStructure, содержащее определенные пользователем элементы (такие как MDocument, MVersion ...).

Я хотел бы иметь возможность перетаскивать элементы типа MVersion из моего представления в другое, но я не знаю, как объявить типы передачи или проверить, является ли выбранный элемент поддерживаемым типом.

Есть идеи?

1 Ответ

7 голосов
/ 12 декабря 2011

Самый простой способ - использовать LocalSelectionTransfer. Как только вы добавили поддержку перетаскивания для ваших зрителей ...

Вы устанавливаете ISelection, который перетаскивается в DragSourceListener.dragStart() метод:

LocalSelectionTransfer.getTransfer().setSelection(selection);

В DropTargetListener.drop() вы проверяете, поддерживается ли тип, и извлекаете выбор:

if (LocalSelectionTransfer.getTransfer().isSupportedType(event.currentDataType))
    ISelection sel = LocalSelectionTransfer.getTransfer().getSelection();
    ...
...