如何在 Eclipse RCP 3 中使用 dnd 打开一个新的编辑器

How to open a new editor using dnd in Eclipse RCP 3

我需要为我的应用程序创建拖放功能。

我在 window 的左侧有一个树,在 window 的右侧有一个空的编辑器区域。我想从树中拖出一个元素并放到右边的部分。 之后应打开编辑器选项卡。

我已经做过的事情: 我创建了按钮来打开所选树项目的编辑器并且它有效。当我将项目拖放到现有编辑器时,会打开一个新编辑器。 但是当我没有任何编辑器(只有空的编辑器区域)时我不能做同样的事情

请告诉我我应该做什么或者我应该指定什么,比如放置操作的目标。提前致谢!

在您的 RCP 工作台 window 顾问中 class 您需要在 preWindowOpen 方法中设置编辑器区域 drag/drop 传输类型和丢弃适配器。

例如 Eclipse 本身使用:

public void preWindowOpen() {
    IWorkbenchWindowConfigurer configurer = getWindowConfigurer();

    configurer.addEditorAreaTransfer(EditorInputTransfer.getInstance());
    configurer.addEditorAreaTransfer(ResourceTransfer.getInstance());
    configurer.addEditorAreaTransfer(FileTransfer.getInstance());
    configurer.addEditorAreaTransfer(MarkerTransfer.getInstance());

    configurer.configureEditorAreaDropListener(new EditorAreaDropAdapter(
            configurer.getWindow()));

请注意,EditorAreaDropAdapter 是一个 内部 class,因此您不能使用它,您必须编写自己的丢弃适配器。这很可能最终调用 IWorbenchPage.openEditor