Eclipse plugin 启用/禁用菜单项
我正在用目标平台3.7编写一个RCP应用程序。 我喜欢仅在特定视图处于活动状态时才启用菜单项,否则应将其禁用。 我通过下面plugin.xml中所示的表达式进行尝试,但菜单项始终处于活动状态Eclipse plugin 启用/禁用菜单项,eclipse-plugin,eclipse-rcp,Eclipse Plugin,Eclipse Rcp,我正在用目标平台3.7编写一个RCP应用程序。 我喜欢仅在特定视图处于活动状态时才启用菜单项,否则应将其禁用。 我通过下面plugin.xml中所示的表达式进行尝试,但菜单项始终处于活动状态 首先,从命令中删除defaultHandler 接下来,将处理程序类添加到处理程序扩展点 基本上,该机制允许您为同一个命令定义多个处理程序,使用不同的activeWhen表达式在不同的情况下由不同的处理程序类处理该命令 如果为命令定义的所有处理程序上的所有activeWhen表达式的计算结果为false,并
首先,从命令中删除defaultHandler 接下来,将处理程序类添加到处理程序扩展点 基本上,该机制允许您为同一个命令定义多个处理程序,使用不同的activeWhen表达式在不同的情况下由不同的处理程序类处理该命令 如果为命令定义的所有处理程序上的所有activeWhen表达式的计算结果为false,并且为命令本身定义了一个defaultHandler,则该默认处理程序将用于该命令。从本质上讲,该命令将始终处于活动状态,因为始终有一个默认的处理程序来处理它 例如,如果您既有现有的LogView,又有另一个视图充满了unicorns,并且您希望使用相同的pgui.rcp.command.save命令来处理从任一视图保存项目:
<extension point="org.eclipse.ui.commands">
<command
id="pgui.rcp.command.save"
name="Save">
</command>
</extension>
:
<extension point="org.eclipse.ui.handlers">
<handler
class="pgui.handler.SaveLogHandler"
commandId="pgui.rcp.command.save">
<activeWhen>
<with variable="activePart">
<instanceof value="pgui.view.LogView">
</instanceof>
</with>
</activeWhen>
</handler>
</extension>
:
<extension point="org.eclipse.ui.handlers">
<handler
class="pgui.handler.SaveUnicornHandler"
commandId="pgui.rcp.command.save">
<activeWhen>
<with variable="activePart">
<instanceof value="pgui.view.UnicornView">
</instanceof>
</with>
</activeWhen>
</handler>
</extension>
:
:
谢谢。事实上,defaultHandler是个错误。我删除了它,并将其作为类标记添加到处理程序扩展中。