我可以看到可以为使用Commands扩展点定义的命令定义参数。我无法为这些命令参数定义值。
我还可以在定义菜单贡献时在菜单扩展点的Command元素下定义参数。我可以在这里为参数定义一个值。
Command中的命令参数是否与菜单贡献中的参数不同?如果它们不同,它们有什么不同?
答案 0 :(得分:0)
插件org.eclipse.ui.command,让您声明命令的参数。在命令中添加参数时,必须为实现IParameterValues的参数设置和id,键入和列出可能的值。
之后,您可以将此命令添加到包含参数及其值的菜单项中。
例如,想象一下你有一个id为org.rcp.commands.new的命令。它定义了一个名为“type”的参数和可能的值(文件,项目和文件夹)。您将能够使用commandId =“org.rcp.commands.new”添加三个菜单项 对于每个参数
plugin.xml示例
...
在此链接中查找更多信息: http://blog.eclipse-tips.com/2008/12/commands-part-3-parameters-for-commands.html
答案 1 :(得分:0)
差异基本上与函数参数的声明相同 - func(int a)
和函数调用中命名参数的规范 - 例如func(a=1)
。
这是一个小例子,说明了两者之间的区别。以下声明指定带有单个参数的新命令。该参数同时包含id
和name
。 id
稍后使用,而name
仅在少数视图中使用,可在此处忽略。所以这真的只是showName(String header)
。
<extension
point="org.eclipse.ui.commands">
<command
categoryId="com.rcpcompany.training.demo33.providers.ui.category.demoCommands"
description="Shows the name of the current resource"
id="com.rcpcompany.training.demo33.providers.ui.commands.showName"
name="&Show Name">
<commandParameter
id="header"
name=”Header“ />
</command>
</extension>
这里我们使用相同的命令和header
参数的值。所以这是showName(header="The selected resource is....")
。
<menuContribution locationURI="toolbar:org.eclipse.ui.main.toolbar">
<toolbar id="com.rcpcompany.training.demo33.providers.ui.toolbar1">
<command
commandId="com.rcpcompany.training.demo33.providers.ui.commands.showName">
<parameter
name="header"
value="The selected resource is...." />
</command>
</toolbar>
</menuContribution>
请注意,参数声明的id
属性是参数使用的name
属性...因此它是header
而不是Header
。