我在弹出菜单中创建了一个新命令,但它被禁用(不可点击)。 我应该在代码中添加哪些标记才能在特定文件(例如xml文件)上启用它?
这是我的代码:
<plugin>
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?after=additions">
<command
commandId= "test.popup.actions.NewAction"
label="Run mycommand"
mnemonic="newAction1"
tooltip="Do something with this project">
</command>
</menuContribution>
</extension
&GT;
P.S, 我收到此警告:&#34;引用标识符&#39; test.popup.actions.NewAction&#39;在属性&#39; commandId&#39;无法找到&#34;
答案 0 :(得分:1)
您必须使用<extension
point="org.eclipse.ui.commands">
<command
id="test.popup.actions.NewAction"
description="Command description"
name="Command name">
</command>
扩展点定义命令ID。类似的东西:
org.eclipse.ui.handlers
然后,您必须使用<extension
point="org.eclipse.ui.handlers">
<handler
class="my.package.NewActionHandler"
commandId="test.popup.actions.NewAction">
</handler>
扩展点为该命令定义至少一个处理程序:
<visibleWhen>
仅在使用菜单贡献命令的<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?after=additions">
<command
commandId= "test.popup.actions.NewAction"
label="Run mycommand"
mnemonic="newAction1"
tooltip="Do something with this project">
<visibleWhen
checkEnabled="false">
<iterate
ifEmpty="false"
operator="or">
<test
property="org.eclipse.core.resources.name"
value="*.xml">
</test>
</iterate>
</visibleWhen>
</command>
元素选择XML时才使菜单项可见。类似的东西:
def user():
return dict(form=auth())
Eclipse帮助(以及许多其他地方)提供了更多信息。