如何在 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
我需要为我的应用程序创建拖放功能。
我在 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