2017-03-29 90 views
0

我有以下menuContribution,將一個命令添加到Tree的上下文菜單中。有兩個技術參數expanduseSelection命令菜單貢獻將參數名稱添加到標籤

<menuContribution 
    locationURI="popup:com.softmodeler.ui.editors.StructureCompareEditor?after=additions"> 
<command 
     commandId="softmodeler.cmd.refreshViewer" 
     id="softmodeler.cmd.refreshViewer" 
     style="push"> 
    <parameter 
      name="expand" 
      value="1"> 
    </parameter> 
    <parameter 
      name="useSelection" 
      value="true"> 
    </parameter> 
</command> 
</menuContribution> 

這顯示了在Tree如下:
context menu with parameter appended

任何想法如何擺脫在標籤中的參數名?

我可以在command上設置label屬性,但我會有冗餘標籤(支持四種UI語言,試圖防止冗餘)。

回答

1

您需要提供標籤屬性,否則將使用此默認標籤。對於本地化,請在屬性值中使用%label,併爲每種語言提供plugin.properties文件(但我想你已經知道了)。從我所知道的情況來看,它是一樣的好。

或者,您可以編程方式創建菜單貢獻,提供ExtensionContributionFactory。在createContributionItems()方法中,您應該能夠從所需的命令創建貢獻項目,同時重新使用命令名稱作爲標籤。這當然會在菜單顯示後立即激活您的插件。

+0

不是我希望的答案,是的,我知道本地化。我只希望只在命令中定義標籤,特別是我想在不同菜單中使用的命令,這將意味着維護x標籤。我會將問題留在公開場合,以防萬一有人知道黑客/解決方法。 –

+0

當然,我也遇到過這種冗餘。我能夠想到的最好的方法是對引用相同命令的所有菜單使用相同的「%label」。 –

+0

剛剛遇到同樣的解決方案,想發表一個答案,並看到您的評論。幸運的是,命令和菜單聲明都在同一個plugin.xml中。這現在做這項工作。 –