eclipse - 在自定义 RCP 应用程序中使用 org.eclipse 剪切/复制/粘贴

标签 eclipse editor copy rcp cut

我正在开发一个 RCP 应用程序,我需要在此应用程序中剪切/复制/粘贴。由于已经有 eclipse 提供的命令(org.eclipse.ui.edit.copy,...),我想在编辑器中使用它们(例如,我已经将它们添加到工具栏)。 我玩了一下,但我不明白如何对复制/粘贴命令使用react。例如。如果复制或粘贴了某些内容,我如何在编辑器中得到通知?

是否有一种简单的方法来使用“保存命令”等命令。在那里,我只需要实现 ISaveablePart,然后调用 doSave() 或 doSaveAs() 方法...我真的很喜欢这个,但我没有找到 ICopyablePart,...接口(interface);)

最佳答案

如果您需要在编辑器或 View 中复制特定行为(或任何命令),您可以为其激活一个处理程序。通常在您的 createPartControl(Composite) 方法中:

IHandlerService serv = (IHandlerService) getSite().getService(IHandlerService.class);
MyCopyHandler cp = new MyCopyHandler(this);
serv.activateHandler(org.eclipse.ui.IWorkbenchCommandConstants.EDIT_COPY, cp);

另一种常见的方法是通过你的plugin.xml提供一个处理程序:

<handler commandId="org.eclipse.ui.edit.copy"
         handler="com.example.app.MyCopyHandler">
   <activeWhen>
      <with variable="activePartId">
         <equals value="com.example.app.MyEditorId"/>
      </with>
   </activeWhen>
</handler>

然后在您的处理程序中,您将获取事件部分并在其上调用您的复制实现。例如:

IWorkbenchPart part = HandlerUtil.getActivePart(event);
if (part instanceof MyEditor) {
    ((MyEditor)part).copy();
}

关于eclipse - 在自定义 RCP 应用程序中使用 org.eclipse 剪切/复制/粘贴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6081958/

相关文章:

file - 如何将同一行写入 VHDL 中的多个文件

eclipse - 为什么eclipse无法为hbase导入软件包?

java - 使用 Stanford CoreNLP - Java 堆空间

colors - 更改notepad++编辑器的背景颜色

C++ 对象构造函数通过 const 引用复制传递

php - 将文件从远程 URL 复制到我的服务器

java - 从插件调用代码时出错 : "org.eclipse.jface"

eclipse - ECLIPSE RCP项目无法成功导出

python - 搜索 Python 轻量级 IDE(或文本编辑器)

eclipse - 如何控制编辑器选项卡的宽度或文件名字符串的长度?