【发布时间】:2016-08-04 20:17:30
【问题描述】:
我想要一个上下文菜单(右键单击),允许切换被单击对象的不同状态。
在 plugin.xml 中,我已经有一个弹出菜单,其中包含以下命令条目:
<command
commandId="...switchDistanceCommand"
label="30s"
style="toggle">
<parameter
name="...switchDistanceMillis"
value="30000">
</parameter>
</command>
还有一个命令:
<extension
point="org.eclipse.ui.commands">
<command
id="....switchDistanceCommand"
name="Switch Distance">
<commandParameter
id="....switchDistanceMillis"
name="Seconds"
optional="false">
</commandParameter>
</command>
</extension>
处理程序:
<handler
class="....SwitchDistanceHandler"
commandId="....switchDistanceCommand">
</handler>
处理程序类SwitchDistanceHandler 检查选择了哪些对象并调用它们的方法来切换它们的状态(向列表添加或删除参数化值)。
到目前为止一切都很好......
但是,我想让我的菜单条目像复选框(如style="toggle")所指示的那样工作。关于这个问题的每个教程(例如this one)都解释了如何通过将以下代码添加到plugin.xml来为命令添加状态:
<state
class="org.eclipse.ui.handlers.RegistryToggleState:true"
id="org.eclipse.ui.commands.toggleState">
</state>
但这只会给我这个命令的一个全局状态,我想从点击的对象中读取状态吗?我怎样才能做到这一点?
编辑 1: 复制了从教程中截取的错误代码。我还尝试实现一个自己的类来扩展State 类(就像RegistryToggleState 所做的那样)。但是我不知道如何从这个类中返回一个状态。
编辑 2: 我找到了解决方法。它不能解决建议的问题,但对我有用。
【问题讨论】:
标签: java eclipse eclipse-plugin eclipse-rcp