我經常有這個問題,並沒有找到一個解決方案尚未:每當我寫一個新的基於Eclipse RCP應用程序,包括從Eclipse平臺的插件,我「繼承」從一些UI貢獻這些插件。禁用插件貢獻
大部分貢獻(菜單條目,鍵盤快捷鍵,屬性頁)都很有用,但有時候我寧願禁用這些貢獻中的一部分,因爲我真的不需要它們,它們可能會混淆用戶。
有誰知道官方或禁用在Eclipse RCP應用程序/禁止選擇貢獻一條可行之路的?
我經常有這個問題,並沒有找到一個解決方案尚未:每當我寫一個新的基於Eclipse RCP應用程序,包括從Eclipse平臺的插件,我「繼承」從一些UI貢獻這些插件。禁用插件貢獻
大部分貢獻(菜單條目,鍵盤快捷鍵,屬性頁)都很有用,但有時候我寧願禁用這些貢獻中的一部分,因爲我真的不需要它們,它們可能會混淆用戶。
有誰知道官方或禁用在Eclipse RCP應用程序/禁止選擇貢獻一條可行之路的?
看看Eclipse的「Activities」API。它允許你隱藏基於ID的貢獻。
幾個環節:
其接近做的唯一方法是:
IMenuService::removeContributionFactory()
保羅·韋伯斯特已經呼籲IMenuService::addOverride()
改變菜單的可見性,防止任何貢獻,但這一想法還沒有尚未整合。
你可以看到去除這一org.eclipse.ui.tests.menus.MenuBuilder
類貢獻的一個例子。
public static void removeMenuContribution() {
if (!PlatformUI.isWorkbenchRunning()) {
return;
}
IMenuService menuService = (IMenuService) PlatformUI.getWorkbench()
.getService(IMenuService.class);
if (menuService==null) {
return;
}
menuService.removeContributionFactory(viewMenuAddition);
viewMenuAddition = null;
menuService.removeContributionFactory(viewToolbarAddition);
viewMenuAddition = null;
}
謝謝!但是,我是否正確 - 我通過這種方式禁用了所有*貢獻?沒有辦法禁用個人捐款,也許由他們的ID識別? – 2009-09-13 07:51:16
春分變換也可用於提供XLST變換是刪除不需要的UI貢獻。
我不認爲removeContributionFactory()是禁用*所有*的貢獻,相反卻是使用非註冊一個視圖/菜單貢獻「'dispose'」機制,我提議使用顯式刪除來自其他*插件的貢獻。 – VonC 2009-09-13 08:37:36
所以它是:a /不*完全*你在找什麼,b /不容易,因爲你必須檢測這些貢獻並將其刪除。但這是迄今爲止我所擁有的。 – VonC 2009-09-13 08:39:32
重新閱讀你的評論:不,你沒有禁用*所有*貢獻(來自*所有*其他插件),但你可能會結束從一個給定的外部插件禁用所有貢獻。 – VonC 2009-09-13 08:41:08