JavaSWT:拖放
我想在JavaSWT:拖放,java,drag-and-drop,swt,Java,Drag And Drop,Swt,我想在TreeViewer中拖放节点以对其重新排序。我的树中的节点包装一个IJavaElement或一个IFile。 我的问题是,一旦执行drop事件(=null),就无法访问我在drop事件中放置这些节点值的任何尝试。显然,我的TransferHandles有问题,您必须使用或创建它 @Override public void dragSetData(DragSourceEvent event) { IStructuredSelection select
TreeViewer
中拖放节点以对其重新排序。我的树中的节点包装一个IJavaElement
或一个IFile
。
我的问题是,一旦执行drop事件(=null
),就无法访问我在drop事件中放置这些节点值的任何尝试。显然,我的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
@覆盖
公共无效dragSetData(DragSourceEvent事件){
IStructuredSelection=treeViewer.getSelections();
IBookmark dragNode=(IBookmark)selections.getFirstElement();
//只有一个传输句柄作为返回
event.dataType=FileTransfer.getInstance().getSupportedTypes()[0];
event.data=dragNode.getValue();//您的代码不清楚为什么在drop事件中为null(如果传输类型不兼容,则根本无法删除)。但是,在dragSetData()中设置数据类型
无效。应使用的addDragSupport
和addDropSupport
配置传输类型
是否有方法将被拖动的对象的当前实例放置到拖动事件中
如前所述,您可以使用LocalSelectionTransfer