Java Eclipse插件:将(外部)文件拖放到编辑器:未调用dropAccept
我正在开发一个eclipse插件,它基本上是一个logviewer 功能之一应该是将外部文件拖放到编辑器组件。收到该文件后,编辑器将用文件中的内容替换其内容 我已经创建了DropTargetAdapter,并使用了Java Eclipse插件:将(外部)文件拖放到编辑器:未调用dropAccept,java,eclipse,plugins,drag-and-drop,Java,Eclipse,Plugins,Drag And Drop,我正在开发一个eclipse插件,它基本上是一个logviewer 功能之一应该是将外部文件拖放到编辑器组件。收到该文件后,编辑器将用文件中的内容替换其内容 我已经创建了DropTargetAdapter,并使用了IDragAndDropService.addMergedDropTarget将其添加到编辑器StyledText。我的编辑器组件来自org.eclipse.ui.editors.text.TextEditor 在拖动过程中,我可以看到dragEnter/dragOver被调用。但我看
IDragAndDropService.addMergedDropTarget
将其添加到编辑器StyledText
。我的编辑器组件来自org.eclipse.ui.editors.text.TextEditor
在拖动过程中,我可以看到dragEnter/dragOver被调用。但我看不到dropAccept或drop的名称
最大的问题是为什么
这是我当前的代码:
StyledText tw = getSourceViewer().getTextWidget();
int ops = DND.DROP_LINK | DND.DROP_MOVE | DND.DROP_COPY;
Transfer[] transfers = { FileTransfer.getInstance() };
DropTargetListener editorListener = new DropTargetAdapter() {
@Override
public void dragEnter(DropTargetEvent event) {
System.out.println("dragEnter detail");
}
@Override
public void dragLeave(DropTargetEvent event) {
System.out.println("dragLeave");
}
@Override
public void dragOperationChanged(DropTargetEvent event) {
System.out.println("dragOperationChanged");
}
@Override
public void dragOver(DropTargetEvent event) {
System.out.println("dragOver");
}
@Override
public void drop(DropTargetEvent event) {
System.out.println("drop");
}
@Override
public void dropAccept(DropTargetEvent event) {
System.out.println("dropAccept");
//TODO import the file
}
};
IDragAndDropService dtSvc = getSite().getService(IDragAndDropService.class);
dtSvc.removeMergedDropTarget(tw);
dtSvc.addMergedDropTarget(tw, ops, transfers, editorListener);