激活激活器类

时间:2011-05-29 13:10:26

标签: eclipse eclipse-rcp

我正在使用eclipse 3.6。我创建了一个示例插件应用程序。它既不是eclipse rcp也不是workbench。现在,当我运行eclipse时,我希望该插件也可以加载。但我不想使用IStartUp。因为我发现的是 加载工作台后将调用IStartup。我想刷新一些菜单。所以有没有办法在eclipse加载时激活我的插件? 我尝试使用Bundle Activation策略。但这也没有激活我的Activator类。我刚刚放了一个System.out。 println(“Inside start()”)。所以这不是叫。我现在可以让它激活我的激活剂吗?

修改

我的确切要求是,我创建了一个工作台应用程序。它不是eclipse rcp应用程序。现在我想在加载eclipe之前从eclipse中删除以下菜单和菜单项。 1.文件菜单 2.)搜索菜单 3.)运行菜单 4.)帮助 - >搜索,动态帮助,按键辅助,提示和技巧,报告错误,备忘单。

这些菜单是eclipse的内置菜单。所以这就是我必须这样做的原因。

所以我已经通过使用启动扩展点实现了。但早期启动是在eclipse启动后调用的。所以我需要在工作台上做一些更新。然后只有菜单项才会被删除。所以我认为我需要启动扩展点不能满足我的要求,因为它不刷新workbench。我需要激活我的插件并在加载之前刷新工作台。

由于 巴努•

2 个答案:

答案 0 :(得分:1)

您可以使用触摸点指令为插件设置所需的start level

答案 1 :(得分:1)

您只是一个期望在Eclipse IDE中运行的插件吗?

然后答案是,你不能做你想做的事。

如果在工作台完成初始化之前启动,大多数可以使用的服务都不起作用:工作台本身,菜单服务,命令服务等。

对于eclipse中的大多数插件,应使用 plugin.xml 向eclipse添加菜单,视图,编辑器等。必要时,框架将实例化它们。

org.eclipse.ui.IStartup可用,正如您所提到的,它将在工作台初始化之后,但在显示任何窗口之前调用。它不能被轻易使用,也不能被用于UI的插件,因为它允许加载来自该插件的所有扩展。

修改

如果您是 RCP应用,则可以控制主菜单。作为RCP应用,您可以访问ActionBarAdvisorWorkbenchAdvisorWorkbenchWindowAdvisor,它们都具有生命周期方法。

如果你是一个 eclipse插件,你可以添加到主菜单......你不能轻易从主菜单中删除。这是设计的。启动级别和 org.eclipse.ui.startup 不会执行您想要的两种机制。

您仍然需要回答以下问题: 可能还有办法。你的问题的关键是:“我想刷新一些菜单”

  1. 什么样的菜单(弹出菜单,主菜单, 一个菜单项的复合列表 菜单等)?
  2. 菜单贡献来自哪里?
  3. 是哪个特定的菜单项?
  4. 请编辑您的问题(不要发表评论),并提供上述3个问题的信息。