2009-09-12 8 views
6

私は頻繁にこの問題を抱えていましたが、まだ解決策が見つかりませんでした:新しいEclipse RCPベースのアプリケーションを作成し、Eclipseプラットフォームからプラグインを追加するたびに、それらのプラグイン。Eclipse RCPアプリケーションでプラグインの提供を無効にする

これらの寄稿(メニューエントリ、キーボードショートカット、プロパティページ)のほとんどは便利ですが、実際には必要ないため、ユーザーを混乱させる可能性があるため、これらの寄稿を無効にすることもあります。

Eclipse RCPアプリケーションで選択された貢献を無効/禁止する公式または実際の方法を知っている人はいますか?

+0

removeContributionFactory()は*すべての寄与を無効にするためのものではなく、むしろ1つのビュー/メニュー寄与の登録を解除するための "dispose"メカニズムであり、私はそれを明示的に削除するために使用することを提案していました*他の*プラグインからの投稿。 – VonC

+0

それはそうです:a/not *正確に*あなたが探しているもの、b /簡単ではない、それらの貢献を検出して削除する必要があるからです。しかし、これは私が今までに持っているものです。 – VonC

+0

あなたのコメントを読んでください:いいえ、* all *貢献*(他のすべてのプラグインから)を無効にしているわけではありませんが、特定の外部プラグインからのすべての寄稿を無効にすることがあります。 – VonC

答えて

3

それを行うに近づく唯一の方法は次のようになります。

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; 
} 
+0

ありがとう!しかし、私はそれを正しくするのですか?私は*すべての寄付をこの方法で無効にしますか?個別の投稿を無効にする方法はありません。おそらくIDで識別できますか? –

0

春分変換も不要なUIの寄与を取り除くXLST変換を供給するために使用することができます。

関連する問題