例: XYZ プラグインの「ドイツ語」フラグメントの作成

プラグインおよびフラグメントを操作する PDE ウィザードおよびエディターは、ほとんど同じものです。  ただし、その違いは重要なため、それを認識する必要があります。

最初に新規のフラグメント・プロジェクトを作成します。  

「新規フラグメント・プロジェクト」ウィザードの先頭ページで、 プロジェクト名「com.example.german」を入力します。デフォルト値を受け入れて、 「次へ」を押します。

フラグメント・コンテンツ」ページには、 プラグイン作成ウィザードからの 3 つのフィールドがあります。つまり、ホストのプラグイン ID、 親のプラグイン・バージョン、およびバージョン一致規則です。

特定のプラグインに対するフラグメントを作成しているので、 「参照」ボタンを使用し、プラグインの選択ダイアログで「com.example.xyz」を 選択できます。ダイアログを使用すると、外部プラグインも選択できます。

フラグメントの例- サンプル「フラグメント・コンテンツ」ページ

プロジェクトが作成されると、 そのプロジェクトによりフラグメントのマニフェスト・エディターが開きます。

フラグメントの例 - マニフェストの概要

プラグインとは対照的に、プラグインはホストのプラグインのライフ・サイクルに従うので、 フラグメントにはプラグイン・クラスがありません。

プラグインの例と同じようなアクションを追加しますが、今回は「ドイツ語」です。

  1. フラグメントのマニフェスト・エディターで、「拡張」ページに進みます。「追加」を クリックして、「拡張」ウィザードを起動します。
  2. 拡張ポイントのリストから「org.eclipse.ui.actionSets」を選択します。「終了」を押します。
  3. 新規のアクション・セットを選択します。ポップアップ・メニューから、 「新規作成」>「アクション・セット」と選択します。
  4. 「拡張エレメント詳細」セクションで、「ラベル」プロパティーを「Deutsche Aktionsmenge」に変更します。
  5. 「すべての拡張」セクションで、新しいアクション・セットを右マウス・ボタンでクリックし、 ポップアップから「新規」>「メニュー」を選択します。
  6. そのメニューの「ラベル」プロパティーを「Beispiel Menu」に変更し、 「ID」プロパティーを「beispielMenu」に変更します。
  7. もう一度メニュー・エレメントを選択し、ポップアップ・メニューから 「新規作成」>「セパレーター」と選択します。名前を「beispielGruppe」に変更して保管します。
  8. 新しい「アクション」エレメントを作成します (ステップ 6 と同じ)。 「ラベル」プロパティーを「Beispiel Aktion」に設定します。 「menubarPath」を「beispielMenu/beispielGruppe」に設定します。
  9. クラス」プロパティーのハイパーリンクをクリックし、アクションに対する 新しいクラスを生成します。ソース・フォルダーとしては「com.example.german/src」を使用し、 パッケージ名はブランクのままにします (デフォルト・パッケージを使用します)。クラス名を「DeutscheBeispielAktion」に変更します。「終了」を押します。
  10. Java エディターで新しいクラスが開かれたら、「run」メソッドを探して以下を追加します。

    System.out.println("Hallo, PDE welt!");

  11. 保管して Java エディターとフラグメントのマニフェスト・エディターを閉じます。

「構成および実行」ツールバー・ボタンを使用してフラグメントを実行するとき、 ランタイム・プラットフォーム・インスタンスでは、「Deutsche Aktionsmenge」のアクション・セットを使用可能にしておく必要があります (「ウィンドウ」>「パースペクティブのカスタマイズ ...」>「その他」を使用して、 アクション・セットのリストを入手します)。 アクション・セットをアクティブにすると、「Beispiel Menu」メニューがツールバーに表示されます。 そのメニュー項目を選択すると、コンソールに「Hallo, PDE welt!」が表示されます。 ランタイム・プラットフォームは、直接「ドイツ語」というフラグメントを見ているわけではありません。 その代わりに、フラグメントのアクション・セットが直接 XYZ プラグインから来たかのように、プラットフォームに表示することで、そのプラグイン・レジストリーはフラグメントへの参照を解決しています。