機能

ID: org.eclipse.ui.capabilities

説明: この拡張ポイントは、プロジェクト機能拡張を登録するために使用します。 機能は、CORE のプロジェクト・ネーチャーの同等 UI で、プロジェクト・ネーチャーと 1 対 1 の 関係にあります。 ワークベンチでは、ユーザーは随時、プロパティー・ダイアログを使用して、または 新規プロジェクト・ウィザードで、プロジェクトへ機能を追加したり、プロジェクトから機能を除去したり することができます。

機能は、プロジェクトの特定の機能を表します。 たとえばプロジェクトは、Java コンパイラーを使用してプロジェクトの *.java ファイルを コンパイルできる "Java" 機能を持つことができます。 プロジェクトの役割が変わると、プロジェクトの機能を新しい要件に合わせて変更できます。 たとえば、あるプロジェクトは単純な Java 機能として始まったが、後で一部のレガシー・ライブラリーに JNI を使用するという新しい要件が生じることがあります。 ユーザーはこの新しい要件に見合うように、プロジェクトに "C++" 機能 (存在する場合のみ) を追加する することができます。

機能によっては、他の機能のためにユーザー・インターフェースを扱うことが望まれる場合があります。 一般にこれは、機能にその他の多くの機能が必要な場合に発生します (前提条件情報は org.eclipse.core.resources.natures 拡張ポイントから取り出されることに注意してください)。 たとえば、"Web" 機能はサーブレットをコンパイルするために "Java" 機能を必要としますが、 "Java" 機能を構成するためのページははるかに単純なもので構わない場合があります。 また、"Java" 機能に関するページを提示せず、単に適切なデフォルト値を伴って追加するだけで構わない 場合もあります。

機能のインストール・ウィザードは、その機能のネーチャーと、その機能が UI を扱う機能のネーチャーを 追加するために、ユーザーから必要な情報を収集する役割を持ちます。 インストール・ウィザードは、必要な機能の一部または全部がすでにインストールおよび構成されている状態を 扱う必要があります。

機能のアンインストール・ウィザードは、そのネーチャーを除去するために、ユーザーから必要な情報を 収集する役割を持ちます。 また、ユーザーが除去したい機能と、その機能が UI を扱う機能から、その他のネーチャーを除去する必要が あります。 このような、ユーザーが除去したい他の機能は、init メソッドで提供されます。

機能は、プロジェクトへの追加時にユーザーが切り替えることのできるパースペクティブを指定できます。 これによりユーザーは、新しい機能を利用できる新しいパースペクティブを発見できます。 また、その他の機能のユーザー・インターフェースを扱う機能も、これらの機能のパースペクティブのリストを 制御します。 たとえば "Web" 機能は、必要とする "Java" 機能のユーザー・インターフェースを扱います。 "Web" 機能は、各種の Java パースペクティブを組み込むかどうかを選択することができます。

1 つのプラグインによって定義されるカテゴリーは、category 属性を使用してその他の プラグインが参照できます。

ユーザーに提示される機能名は、org.eclipse.core.resources.natures 拡張ポイントの拡張エレメントに ある属性 "name" から取り出されることに注意してください。

リリース 2.0 以降

構成マークアップ:

   <!ELEMENT category EMPTY>
   <!ATTLIST category
      id             CDATA #REQUIRED
      name           CDATA #REQUIRED
   >

   <!ELEMENT capability (handleUI)* (perspectiveChoice)*>
   <!ATTLIST capability
      id                 CDATA #REQUIRED
      natureId           CDATA #REQUIRED
      category           CDATA #OPTIONAL
      icon               CDATA #OPTIONAL
      installWizard      CDATA #REQUIRED
      installDetails     CDATA #OPTIONAL
      uninstallWizard    CDATA #IMPLIED
      uninstallDetails   CDATA #IMPLIED
      description        CDATA #OPTIONAL
   >    <!ELEMENT handleUI EMPTY>
   <!ATTLIST handleUI
      id  CDATA #REQUIRED
   >    <!ELEMENT perspectiveChoice EMPTY>
   <!ATTLIST perspectiveChoice
      id  CDATA #REQUIRED
   > 例:

以下は機能の構成例です。

   <extension point="org.eclipse.ui.capabilities">
      <category
        id="com.xyz.weather"
        name="Weather Elements">
      </category>
      <capability
          id="com.xyz.snowCapability"
          natureId="com.xyz.snowNature"
          category="com.xyz.weather"
          icon="./icons/snowCapability.gif"
          installWizard="com.xyz.SnowCapabilityWizard">
          installDetails="You will be asked to supply a locale id.">
          description="Turn your project into a winter wonderland!">
          <handleUI
              id="com.xyz.waterCapability"
          </handleUI>
          <perspectiveChoice
              id="com.xyz.skiPerspective"
          </perspectiveChoice>
          <perspectiveChoice
              id="com.xyz.rainPerspective"
          </perspectiveChoice>
      </capability>
      <capability
          id="com.xyz.waterCapability"
          natureId="com.xyz.waterNature"
          category="com.xyz.weather"
          icon="./icons/waterCapability.gif"
          installWizard="com.xyz.WaterCapabilityWizard">
          installDetails="You will be asked to supply a locale id.">
          description="Turn your project into a watery wonderland!">
          <perspectiveChoice
              id="com.xyz.rainPerspective"
          </perspectiveChoice>
          <perspectiveChoice
              id="com.xyz.drinkPerspective"
          </perspectiveChoice>
      </capability>
   </extension>

API 情報: installWizard 属性の値は、 org.eclipse.ui.ICapabilityInstallWizard をインプリメントするクラスを表す必要があります。 init メソッドで渡される IProject が存在することになり、その他のネーチャーの存在について 照会できるようになります。 機能インストール・ウィザードでは、init メソッドで渡されたプロジェクトを閉じたり、削除したりしては なりません。

uninstallWizard 属性の値は、org.eclipse.ui.ICapabilityUninstallWizard インターフェースをインプリメントするクラスを表す必要があります。 init メソッドで渡される IProject が存在することになり、その他のネーチャーの存在について 照会できるようになります。 機能アンインストール・ウィザードでは、init メソッドで渡されたプロジェクトを閉じたり、削除したりしては なりません。

提供されるインプリメンテーション: ワークベンチは機能を提供しません。

Copyright IBM Corp. 2000, 2001.  All Rights Reserved.