【问题标题】:How to create an Eclipse RCP application re-using some "Eclipse IDE plugins"?如何重新使用一些“Eclipse IDE 插件”创建一个 Eclipse RCP 应用程序?
【发布时间】:2011-04-03 12:00:00
【问题描述】:

如何创建一个 RCP 应用程序,它看起来与 Eclipse IDE 完全一样,具有所有菜单、视图、对话框...?

这里是一个例子:http://richclientplatform.blogspot.com/2007/12/oil-and-gas-industry-using-eclipse.html

我按照 Lars Vogel 的教程创建了一个简单的 RCP 应用程序:http://www.vogella.de/articles/EclipseRCP/article.html

...接下来的步骤是什么?

【问题讨论】:

  • 第一次尝试时,我尝试将 org.eclipse.ui.ide 添加为我的产品配置的依赖项,因为我需要的所有扩展似乎都在这个项目中。
  • 您确定要创建一个新应用程序吗?只开发一个插件并将其部署在 Eclipse 中会更容易。
  • 同意谷物,为什么要重新创建已经存在的 Eclipse IDE?您可以通过更新站点提供您的插件,用户可以将它们安装到他们现有的 Eclipse 实例中。或者您只是想重新命名 Eclipse IDE(例如更改启动画面、启动器图标等)?
  • 我必须同意你们(@cerealk,@Zsolt Török)。但是,让我解释一下整个场景:我有几个我开发的插件,现在我想获取所有这些插件并使用 Eclipse (RAP) Rich Ajax 平台在 Web 浏览器中运行。但是,在“转换”为 RAP 应用程序之前,您需要有一个 RCP 应用程序。所以,我在这里的第一步是获取所有这些插件并生成一个 RCP 应用程序,但我想重用大多数常用功能,例如搜索、另存为、对话框......

标签: java eclipse eclipse-plugin eclipse-rcp


【解决方案1】:

ide 包为您提供了允许您使用工作区隐喻的类和扩展点,但它不包括添加您将在 Eclipse IDE 中看到的所有功能的扩展。

由于 RCP 应用程序应用程序中的每个包都添加了菜单、视图和对话框,因此使您的应用程序看起来像 IDE 的方法是包含 IDE 附带的所有包。

通常你从一个非常简单的应用程序开始,比如 Vogel(我发现他提供了很好的教程)描述的教程。然后,当您找到要添加的内容时,请研究提供它的包并添加该包。当您这样做时,您的应用程序的功能将增加,而不会获得用户不需要的功能。

编辑:让我引导您创建一个简单的 RCP 应用程序。

  • 通过转到文件 -> 新建 -> 项目来创建一个新项目
  • 选择插件项目
  • 将项目名称设置为 com.mydomain.rcp
  • 点击下一步
  • 在富客户端应用程序下选择是
  • 点击下一步
  • 选择 RCP 邮件模板
  • 点击完成

您现在拥有一个具有某些功能的 RCP 应用程序。接下来我们将运行它:

  • 选择运行 -> 运行配置...
  • 选择左侧的 Eclipse 应用程序
  • 右键单击并选择新建
  • 寻找运行/运行产品的程序。选择 com.mydomain.rcp.product
  • 单击插件选项卡
  • 在顶部查找 Launch 并选择仅在下方选择的插件
  • 点击右侧的取消全选
  • 在插件列表中选择 com.mydomain.rcp
  • 在底部取消选择自动将新工作区插件添加到此启动配置
  • 右键单击添加所需插件
  • 点击底部的运行

应用程序应该正在运行示例邮件应用程序。继续关闭它。现在让我们添加一个插件,这样我们就可以像在 Eclipse IDE 中一样显示搜索菜单​​。

  • 在您的 com.mydomain.rcp 项目中打开您的 plugin.xml 文件
  • 单击“依赖项”选项卡
  • 在所需插件下单击添加...
  • 输入 org.eclipse.search
  • 选择org.eclipse.search(不是源的)
  • 点击确定
  • 保存 plugin.xml 文件
  • 从菜单中选择运行 -> 运行配置...
  • 单击插件选项卡
  • 右键单击添加所需插件
  • 点击底部的运行

您现在应该看到带有文件搜索选项的搜索菜单,就像 IDE 一样。您不会看到 Java 搜索或插件搜索,因为我们没有添加包含这些添加的适当 JDT 或 PDE 插件。希望这能让您了解如何添加新插件。

【讨论】:

  • 我完全理解你所说的,这是一个很好的解释。所以,我现在的问题是: 1. 在我的 RCP 应用程序上添加捆绑包(插件)的步骤是什么? 2.如何启动这个添加的bundle(插件)来获取它提供的功能?
  • 查看答案中EDIT下的回复
  • 这是一个非常准确的答案,它工作正常,非常感谢。还有 1 个问题:我在这个论坛 (eclipsezone.com/eclipse/forums/t107481.html) 上读到,如果我包含对 org.eclipse.ui.ide 的依赖项,我将拥有我所期望的行为(所有向导、preferencePages、菜单......)但是,在添加之后这种依赖(正如我和你一起了解到的)它仍然不起作用。
  • @Max:您确实获得了所有功能,但是由于您在 RCP 中运行您自己的 org.eclipse.equinox.app.IApplication 实现,默认的 Eclipse IDE 菜单(文件、编辑、Window、Help 等)未初始化。您必须实现自己的 org.eclipse.ui.application.WorkbenchWindowAdvisor 最重要的是 org.eclipse.ui.application.ActionBarAdvisor 并基本上从 org.eclipse.ui.internal.ide.WorkbenchActionBuilder 复制并粘贴您需要的菜单和操作.我承认这是一个非常丑陋的 hack,但这是我需要做这样的事情时找到的唯一方法。
  • 避免创建对org.eclipse.ide 的依赖(此插件不是RCP-Friendly),请改用org.eclipse.ui.ide.application。这是一个很好的解释:bugs.eclipse.org/bugs/show_bug.cgi?id=167893
猜你喜欢
  • 2010-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-13
相关资源
最近更新 更多