如何以编程方式为 Eclipse UI 命令设置初始状态?

How to programmatically set an initial state for an Eclipse UI command?

我正在扩展 org.eclipse.ui.commands 以向我的 menuContribution 提供一个具有 toggle 样式的新命令。

现在我想设置一个初始状态,但它不应该是硬编码状态。因此,提供以下状态不是一种选择:

  <state
         class="org.eclipse.ui.handlers.RegistryToggleState:true"
         id="org.eclipse.ui.commands.toggleState">
   </state>

状态应该反映在首选项页面中的 属性,没有必要坚持任何东西。通过调用插件Activator中的方法手动设置状态是行不通的,因为我第一次点击命令就会跳入start方法,但是已经来不及了上下文菜单应该已经反映了首选项的正确状态 属性。

我该如何解决这个问题?

我认为您应该实现自己的 State class,它将扩展 org.eclipse.jface.commands.ToggleState 并覆盖 setState 方法。它可以取任何值,但忽略它并做你想做的(阅读偏好等)

我没试过,只是猜测。