RCP中的每视图命令状态?

时间:2012-09-15 14:52:48

标签: menu eclipse-rcp

我正在定义一个命令,该命令将在视图工具栏和/或上下文菜单中用于多个视图,其中一些视图可以有多个实例。该命令具有切换状态(org.eclipse.ui.commands.toggleState)。文档似乎建议使用org.eclipse.ui.handlers.RegistryToggleState作为状态实现类,但这会存储状态per-command,而不是per-view-per-command,因为我需要它。

我不需要在会话之间保持持久性。是否有一种简单/首选的方法来实现这一目标,还是应该实现自己的状态?

2 个答案:

答案 0 :(得分:1)

我做到了这一点。我在Eclipse中找不到任何标准API,所以我最终为它编写了自己的东西。这相对简单。

答案 1 :(得分:0)

AFAIK没有直接的方法。您可以按照以下步骤解决此问题

  1. 实现您自己的org.eclipse.ui.ISourceProvider并添加扩展名org.eclipse.ui.services
  2. 维护每个视图的状态并在public Map getCurrentState();
  3. 中填充状态信息

    请查看WorkbenchSourceProvider以供参考。