Я хочу перетащить узлы в TreeViewer
, чтобы изменить их порядок. Узлы в моем дереве обертывают IJavaElement
или IFile
.
Моя проблема в том, что ни одна из моих попыток поместить эти значения узлов в событие перетаскивания не доступна после выполнения события удаления (= null
). Очевидно, я что-то не так понял с этим TransferHandles
, который вы должны использовать или создать.
@Override
public void dragSetData(DragSourceEvent event) {
IStructuredSelection selections = treeViewer.getSelections();
IBookmark dragNode = (IBookmark) selections.getFirstElement();
//There is only 1 transfer handle as return
event.dataType = FileTransfer.getInstance().getSupportedTypes()[0];
event.data = dragNode.getValue();//<-- Returns my IFile
Это должно работать таким образом, но ничего не доходит до моего слушателя. Кто-нибудь знает, что я делаю не так?
Edit:
Есть ли способ поместить текущий экземпляр объекта, который перетаскивается в событие перетаскивания? Я только работаю в Eclipse в своем собственном представлении для этой операции. И меня на самом деле больше интересует экземпляр объекта, который отбрасывается, чем просто значение узла.