3

私はEclipse RCPプラグイン開発の新人です。

私は独自のパースペクティブで 1 つのプラグインを作成し、その中にパースペクティブ固有のメニューを追加しました。

私の質問は、編集、ナビゲート、検索、プロジェクトなど、Eclipse 内で提供されるデフォルトのメニューを非表示にする方法です。

「< extension point="org.eclipse.core.expressions.definitions" >」を使用して、ビュー固有の条件を設定し、メニューの投稿を試してみました。

どんな助けでも大歓迎です。

よろしくお願いします、

マンダー・パタク。

4

2 に答える 2

4

アクティビティが必要です。私の現在のプロジェクトの例:

<extension
     point="org.eclipse.ui.activities">
  <activity
        id="arm.activity.disabled"
        name="%arm.activity.disabled.name">
     <enabledWhen>
        <with
              variable="selection">
           <count
                 value="-1">
           </count>
        </with>
     </enabledWhen>
  </activity>
  <activityPatternBinding
        activityId="arm.activity.disabled"
        pattern="org\.eclipse\.m2e\..*">
  </activityPatternBinding>
  <activityPatternBinding
        activityId="arm.activity.disabled"
        pattern="org\.eclipse\.search\..*">
  </activityPatternBinding>
  <activityPatternBinding
        activityId="arm.activity.disabled"
        pattern="org\.eclipse\.team\..*">
  </activityPatternBinding>
  <activityPatternBinding
        activityId="arm.activity.disabled"
        pattern="org\.eclipse\.compare.*">
  </activityPatternBinding>
  <activityPatternBinding
        activityId="arm.activity.disabled"
        pattern="org\.eclipse\.help\.ui\.PrefPageHelp.*">
  </activityPatternBinding>
  <activityPatternBinding
        activityId="arm.activity.disabled"
        isEqualityPattern="true"
        pattern="org.eclipse.ui.ide/org.eclipse.ui.preferencePages.Workspace">
  </activityPatternBinding>
  <activityPatternBinding
        activityId="arm.activity.disabled"
        isEqualityPattern="true"
        pattern="org.eclipse.ui.ide/org.eclipse.ui.preferencePages.Perspectives">
  </activityPatternBinding>
</extension>
于 2012-12-12T05:56:10.083 に答える
2

1つのアプローチは、rcpアプリケーションにActionBarAdvisorを拡張するクラスがあり、クラスのコンストラクターで、たとえば編集メニューを削除するために、このようなことを行うことができます

configurer.getMenuManager().remove(IWorkbenchActionConstants.M_EDIT);

edit などのすべての一般的な Eclipse メニューには、上記のクラスで定義された定数があります。アプリケーションから削除するメニューに対してこれを行います。

これは 1 つのアプローチにすぎません。他にもあると思いますが、必要なものが得られることを願っています。

于 2012-12-11T17:37:21.137 に答える