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



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

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

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

状态应该在首选项页面中反映一个属性,不需要保留任何内容。通过调用插件Activator中的方法手动设置状态是不起作用的,因为我第一次点击命令时就会跳到start方法中,但为时已晚,因为上下文菜单应该已经反映了preference属性的正确状态。

我该如何解决这个问题?

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

我没有试着去做,只是猜测。

最新更新