1

私は eclipse RCP アプリケーションを作成しました。すべて正常に動作していますが、最近、メニューに屈折オプションがあることに気付きました。私はそれを取り除きたいです。私は ActionBarAdvisor.java に以下を持っています:

@Override
    protected void fillMenuBar(IMenuManager menu) {

        menu.add(createFile());
        menu.add(createEdit());
        menu.add(createNavigate());
        menu.add(createProject());
        menu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
        menu.add(createWindow());
        menu.add(createHelp());

    }

上記の関数は、次のようにアクションをメニューに追加します。

edit.add(undoAct);

また、undoAct は次のように定義されます。

private IWorkbenchAction undoAction

makeActions 関数の内容は次のとおりです。

@Override
    protected void makeActions(IWorkbenchWindow window) {
        undoAction = ActionFactory.UNDO.create(window);
        undoAction.setText("Undo Menu");
        register(undoAction);
}

hideActionSets を使用してメニューを非表示にするという提案を見つけました。しかし、メニュー全体を隠すことはできず、そのアクションだけを隠すことができました! Eclipse RCP アプリケーションから「ファイル、編集など」メニュー

を削除する ありがとうございました。

4

1 に答える 1

3

こちら で説明されているように、アクティビティを使用できます。まず、メニューの IDを見つける必要があります。

  1. プラグイン スパイを使用する

最初の方法は、Plug-In Spy を使用することです。alt-shift-F2 を押して、非表示にするメニュー項目またはツールバー ボタンをクリックします。「アクティブなアクション定義識別子」という見出しの下に ID 文字列がある場合は、幸運です。この項目はコマンド拡張機能を使用して追加されており、この ID をアクティビティ拡張機能のパターン引数として使用できます。ただし、コマンド拡張機能を使用して追加されたすべてのアイテムが、プラグイン スパイに ID 文字列を提示するわけではありません。

補足として、ID 文字列はピリオドで区切られています。たとえば、ボタンの ID は「org.eclipse.ui.navigate.backwardHistory」のようになります。正規表現では、ピリオドを使用して任意の文字を表します。幸いなことに、ワイルドカードとして使用されるピリオドは実際のピリオド文字と一致するため、エスケープしたくない場合はエスケープする必要はありません。エスケープしないと読みやすくなり、あいまいな一致が発生する可能性はほとんどありません。

  1. Plug-In Registry と plugin.xml ファイルを使用する

2 番目の方法は、プラグイン レジストリを使用することです。このビューを開くには、次の場所に移動します。

ウィンドウ/ビューを表示.../その他/プラグイン開発/プラグインレジストリ

あなたがしたいことは、いくつかの情報を取得しようとすることです:

a) UI 要素に貢献しているプラ​​グイン b) UI 要素を作成するためにプラグインが使用している拡張機能の種類に関する情報

UI 要素またはそのツール ヒントに関連付けられた非常にユニークな単語がある場合は、プラグイン レジストリのフィルター フィールドでこれを使用して、どのプラグインが UI 要素に貢献しているかを突き止めることができます。フィルター フィールドは非常に強力なツールではないため、使用するのに少しイライラすることがあります。ワイルドカードは使用できず、スペース文字とは一致しません。

どのプラグインが UI 要素に貢献しているかを追跡するときは、プラグイン開発パースペクティブのパッケージ エクスプローラーでグループ化されているプラ​​グイン ビューから問題のプラグインを開きます。次に、[拡張機能] タブに移動し、通常は Command または ActionSet 拡張機能の使用法で見つかる ID 文字列を検索します。ActionSet を使用して UI 要素を追加する場合は、プラグイン ID をアクティビティ拡張に指定されたパターン引数の UI ID にプレフィックスとして付けます。たとえば、org.eclipse.ui.actionsets.foo はパターン org.eclipse.ui/org.eclipse.ui.actionsets.foo になります。

Activity次に、アクティブ化されない新しい を作成し、最後の手順で見つけた に対応activityPatternBindingします。idでは次のようになりますplugin.xml

<extension point="org.eclipse.ui.activities">  
   <activity id="myActivity" name="MenuHidingActivity">  
      <enabledWhen>  
         <with variable="activePartId">    
            <equals value="nonExistentPartId"></equals>      
         </with>
      </enabledWhen>
   </activity>
   <activityPatternBinding activityId="myActivity" pattern="menuItemID">  
   </activityPatternBinding>
</extension>  
于 2013-10-29T12:26:33.713 に答える