[英]Java SWT: Drag / Drop
我想在TreeViewer
拖放節點以對其重新排序。 我的樹中的節點包裝了IJavaElement
或IFile
。 我的問題是,一旦執行drop事件(= 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
它應該以這種方式工作,但沒有任何內容到達我的drop監聽器。 有人知道我在做什么錯嗎?
編輯:
是否有辦法放置被拖動到拖動事件中的對象的當前實例? 我僅以自己的觀點在Eclipse中進行此操作。 實際上,我對刪除的對象實例更感興趣,而不僅僅是節點的值。
從代碼中尚不清楚為什么在drop事件中會得到null (如果傳輸類型不兼容,則根本不會丟棄)。 但是,在dragSetData()
設置dataType無效。 傳輸類型應該用配置addDragSupport
和addDropSupport
的StructuredViewer
。
是否有辦法放置被拖動到拖動事件中的對象的當前實例?
您可以按照此處的說明使用LocalSelectionTransfer
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.