エディターのメニュー、ツールバー、およびアクション

ID: org.eclipse.ui.editorActions

説明: この拡張ポイントは、他のプラグインにより登録されたエディターの メニューおよびツールバーにアクションを追加するために使用します。

エディターの初期 contribution セットは、他の拡張ポイント (org.eclipse.ui.editors) によって定義されます。 アクションのセットが 1 つ作成されて、同じエディター・タイプのすべてのインスタンスにより 共用されます。 これらのアクションは、起動時にアクティブなエディターに対し動作を行います。 この拡張ポイントは、同じパターンをとります。 それぞれのアクションの拡張機能が作成され、同じエディター・タイプのすべてのインスタンスにより 共用されます。 アクション・クラスは、org.eclipse.ui.IEditorActionDelegate をインプリメントする必要が あります。 IEditorActionDelegate#setActiveEditor が起動され、アクティブ・エディターが代行者に 渡されます。

構成マークアップ:

   <!ELEMENT editorContribution (menu | action)*>
   <!ATTLIST editorContribution
      id         CDATA #REQUIRED
      targetID   CDATA #REQUIRED
   >

  • id - この contribution の参照に使用可能な固有 ID。
  • editorID - 以前に登録され、この contribution のターゲットとなるエディターの固有 ID
  •    <!ELEMENT menu (separator)+>
       <!ATTLIST menu
          id         CDATA #REQUIRED
          label      CDATA #REQUIRED
          path       CDATA #IMPLIED
       >    <!ELEMENT separator EMPTY>
       <!ATTLIST separator
          name       CDATA #REQUIRED
       >
  • name - 後でアクション・パスの最後のトークンとして参照が可能な区切り文字の名前。 区切り文字は、アクションの追加先とすることのできる名前付きグループとして使用することができます。
  •    <!ELEMENT action (selection)* (enablement)?>
       <!ATTLIST action
          id                NMTOKEN #REQUIRED
          label             CDATA #REQUIRED
          accelerator       CDATA #IMPLIED
          menubarPath       CDATA #IMPLIED
          toolbarPath       CDATA #IMPLIED
          icon              CDATA #IMPLIED
          disabledIcon      CDATA #OPTIONAL
          hoverIcon         CDATA #OPTIONAL
          tooltip           CDATA #IMPLIED
          helpContextId     CDATA #IMPLIED
          state             (true | false) #IMPLIED
          class             CDATA #REQUIRED
          enablesFor        CDATA #IMPLIED
       >    <!ELEMENT selection EMPTY>
       <!ATTLIST selection
          class             CDATA #REQUIRED
          name              CDATA #IMPLIED
       >    <!ELEMENT enablement (and | or | not | objectClass | objectState | systemProperty
            | pluginState)>
       <!ATTLIST enablement EMPTY>
    Eclipse のバージョン 2.0 では、enablement エレメントはアクションの使用可能性を 定義するために使用されます。 enablement エレメントの詳細については、 actionExpressions.html を参照してください。
    アクション拡張の使用可能性の基準は、最初は enablesFor, selection および enablement によって定義されています。  ただし、アクション代行がインスタンス化されると、その selectionChanged メソッド内の アクション使用可能状態のを直接制御できます。

    アクションおよびメニュー・ラベルには、次の規則に従い、簡略記号とアクセラレーターをエンコードする 特殊文字を含むことができます。

    1. 略号は、変換されたテキスト中の選択文字の前のアンパーサンド ('&') 文字で指定されます。 XML ストリングではアンパーサンドは使用できないため、&amp; 文字エンティティーを 使用してください。
    2. オプションのアクセラレーターは、名前ストリングの最後で指定します。 これには、@ に続けて一連の修飾子と最終的なアクセラレーター文字を続けます (例、&amp;Save@Ctrl+S)。 修飾子は、'+' 符号を区切り文字としてつなげることができます (@Ctrl+Shift+S など)。
    複数のアクションがメニューまたはツールバーに 1 つの拡張によって与えられる場合、 アクションは plugin.xml ファイルとは逆の順序でリストされます。 この振る舞いは、通常は一目ではわかりません。 ただし、これは Eclipse Platform API がフリーズした後で発見されます。 振る舞いを変更すると、既存の振る舞いに依存する各プラグインが中断する可能性があります。

    例:

    エディター・アクション拡張ポイントの例を次に示します。

       <extension point="org.eclipse.ui.editorActions">
          <editorContribution
             id="com.xyz.xyzContribution"
             targetID="com.ibm.XMLEditor">
             <menu id="XYZ" label="&amp;XYZ Menu">
                <separator name="group1"/>
             </menu>
             <action
                  id="com.xyz.runXYZ"
                  label="&amp;Run XYZ Tool"
                  menubarPath="XYZ/group1"
                  toolbarPath="Normal/additions"
                  state="true"
                  icon="icons/runXYZ.gif"
                  tooltip="Run XYZ Tool"
                  helpContextId="com.xyz.run_action_context"
                  class="com.xyz.actions.RunXYZ">
             </action>
          </editorContribution>
       </extension>

    上の例で、指定されたアクションは "XYZ Menu" という名前の新しいトップレベル・メニュー内のチェック・ボックス項目として、 またツールバーのトグル・ボタンとして表示されます。

    エディター・アクション拡張ポイントの例を次に示します。

       <extension point="org.eclipse.ui.editorActions">
          <editorContribution
             id="com.xyz.xyz2Contribution"
             targetID="com.ibm.XMLEditor">
             <menu
                id="XYZ2"
                label="&amp;XYZ2 Menu"
                path="edit/additions">
                <separator name="group1"/>
             </menu>
             <action
                  id="com.xyz.runXYZ2"
                  label="&amp;Run XYZ2 Tool"
                  menubarPath="edit/XYZ2/group1"
                  state="true"
                  icon="icons/runXYZ2.gif"
                  tooltip="Run XYZ2 Tool"
                  helpContextId="com.xyz.run_action_context2"
                  class="com.xyz.actions.RunXYZ2">
             </action>
          </editorContribution>
       </extension>

    上の例で、指定されたアクションは トップレベルの「編集」メニューの "XYZ2 Menu" というサブメニューにチェック・ボックス項目として表示されます。

    API 情報: class 属性の値は、 org.eclipse.ui.IEditorActionDelegate をインプリメントする Java クラスの完全修飾名である 必要があります。 このインターフェースは、プラグイン全体が必要となる前に全体がロードされることのないよう、 できる限り後からロードされます。 メソッド setActiveEditor は、指定タイプのエディターが活動化されるごとに呼び出されます。 現在ワークベンチで開かれているエディターのインスタンスの数に関係なく、指定された エディター・タイプのすべてのインスタンスについて 1 セットのアクションとメニューが作成されます。

    この拡張ポイントを使用して、以前にターゲット・エディターにより作成されたメニューに、アクションを 追加します。 また、メニューとアクションはワークベンチ・ウィンドウに対しても提供することができます。 ワークベンチ・ウィンドウ内のアクションおよび主要グループの ID は、 org.eclipse.ui.IWorkbenchActionConstants に定義されます。 これらは、新規アクションを追加するための参照ポイントとして使用されます。 トップレベルのメニューは、path 属性の次の値を使用して作成されます。

    これらのパスに追加されたアクションおよびメニューは、関連するエディターが活動化されている場合にのみ 表示されます。 エディターを閉じると、メニューとアクションは除去されます。

    提供されるインプリメンテーション: ワークベンチには、 「デフォルト・テキスト・エディター」が組み込まれています。 このデフォルトのエディター、または他のプラグインの提供するエディターに対しプラグインを提供する ことができます。

    Copyright IBM Corporation and others 2000, 2002.