Rational Developer for System z バージョン 7.6

プロジェクト・ネーチャーによるアクションとプロパティー・ページのフィルター

このサンプルは、カスタム・プロジェクト・ネーチャーをサブプロジェクトに追加する方法を示します。プロジェクト・ネーチャーが存在するか存在しないかによって、メニュー項目の可視性を制御できます。

サンプル・シナリオ

以下のトピックの指示に従って、新しい z/OS® プロジェクトと MVS サブプロジェクトを作成します。

サンプル・プロジェクト・ネーチャーをサブプロジェクトに追加するには、サブプロジェクトを右クリックして、「API サンプル・アクション」->「プロジェクト・ネーチャーの追加」アクションを選択します。

projNatureNoNatureMenu のアートワーク

サンプル・コードのウォークスルー

サブプロジェクト・ネーチャーの定義

Rational® Developer for System z® のサブプロジェクト・ネーチャーは、ベース Eclipse の IProjectNature に概念が似ています。これらは、サブプロジェクトごとに使用可能な機能に基づいてそれぞれのリモート・サブプロジェクトを区別する手段を提供します。

リモート・サブプロジェクト用のカスタム・プロジェクト・ネーチャーを定義するには、ILogicalSubProjectNature インターフェースを実装するクラスを作成する必要があります。 したがって、SampleNature クラスの内容は、以下のようになります。

public class SampleNature implements ILogicalSubProjectNature {
   ......
}

ILogicalSubProjectNature インターフェースは、比較的簡単です。SampleNature では、プロジェクト・プロパティーの専用フィールド project を追加するだけです。

完全なソース・コードは、SampleNature.java で参照できます。

プロジェクト・ネーチャーの定義を完了するには、以下のようにプラグイン・マニフェストで SampleNature クラスを宣言します。

   <extension
         id=“samplenature”
         name=“
         point=“com.ibm.ftt.projects.core.natures”>
      <nature class=“com.ibm.ftt.api.samples.natures.SampleNature”/>
   </extension>

このスニペットは、ID が com.ibm.ftt.api.samples.samplenature であるプロジェクト・ネーチャーを定義します。この ID は、拡張 ID samplenature を定義プラグイン com.ibm.ftt.api.samples の ID に付加することで取得されます。

プロジェクト・ネーチャーの追加

プロジェクト・ネーチャーの追加」メニュー項目は、AddSubProjectNatureAction クラスによって実装されます。 その run(IAction) メソッドは、ネーチャーの ID を ILogicalSubProjectaddNatureId(String) メソッドに渡すことによって、SampleNature を追加します。

  try {
			getSubProject().addNatureId("com.ibm.ftt.api.samples.samplenature");
		} catch (CoreException e) {
			// TODO: in production code exception should be handled for real
			e.printStackTrace();
		}

完全なソース・コードは、AddSubProjectNatureAction.java で参照できます。

アクションは、標準の Eclipse の機構を使用して提供されます。

      <objectContribution
            adaptable=“false”
            objectClass=“com.ibm.ftt.projects.core.logical.ILogicalSubProject”
            id=“com.ibm.ftt.api.samples.addnature”>
         <action
               label=“
               class=“com.ibm.ftt.api.samples.natures.AddSubProjectNatureAction”
               id=“com.ibm.ftt.api.samples.addnatureaction”/>
      </objectContribution>

プロジェクト・ネーチャーの削除とプロジェクト・ネーチャーによってフィルターに掛けられたメニュー項目の提供

プロジェクト・ネーチャーの除去」メニュー項目は、RemoveSubProjectNatureAction クラスによって実装されます。 その run(IAction) メソッドは、ネーチャーの ID を ILogicalSubProjectRemoveNatureId(String) メソッドに渡すことによって、SampleNature を削除します。

  try {
			getSubProject().removeNatureId(“com.ibm.ftt.api.samples.samplenature”);
		} catch (CoreException e) {
			// TODO: in production code exception should be handled for real
			e.printStackTrace();
		}

完全なソース・コードは、RemoveSubProjectAction.java で参照できます。

アクションは、標準の Eclipse の機構を使用して提供されます。これは、アクション・フィルターを追加して使用する場合の「プロジェクト・ネーチャーの追加」メニュー項目に似ています。これにより、「プロジェクト・ネーチャーの除去」アクションは、SampleNature が該当プロジェクトに追加された場合にのみ表示されます。

      <objectContribution
            adaptable=“false”
            objectClass=“com.ibm.ftt.projects.core.logical.ILogicalSubProject”
            id=“com.ibm.ftt.api.samples.removenature”>
         <filter
               value=“com.ibm.ftt.api.samples.samplenature”
               name=“projectNature”/>
         <action
               label=“
               class=“com.ibm.ftt.api.samples.natures.RemoveSubProjectNatureAction”
               id=“com.ibm.ftt.api.samples.removenatureaction”/>
      </objectContribution>

ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)