什么是命令参数和菜单贡献参数之间的区别

时间:2010-12-21 13:52:08

标签: eclipse eclipse-rcp rcp

我可以看到可以为使用Commands扩展点定义的命令定义参数。我无法为这些命令参数定义值。

我还可以在定义菜单贡献时在菜单扩展点的Command元素下定义参数。我可以在这里为参数定义一个值。

Command中的命令参数是否与菜单贡献中的参数不同?如果它们不同,它们有什么不同?

2 个答案:

答案 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)

这是一个小例子,说明了两者之间的区别。以下声明指定带有单个参数的新命令。该参数同时包含idnameid稍后使用,而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="&amp;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