例: XYZ プラグインの「ドイツ語」フラグメントの作成
プラグインおよびフラグメントを操作する PDE ウィザードおよびエディターは、ほとんど同じものです。
ただし、その違いは重要なため、それを認識する必要があります。
最初に新規のフラグメント・プロジェクトを作成します。
「新規フラグメント・プロジェクト」ウィザードの先頭ページで、
プロジェクト名「com.example.german」を入力します。デフォルト値を受け入れて、
「次へ」を押します。「"フラグメント・コンテンツ"」ページには、
プラグイン作成ウィザードにはない 3 つのフィールドがあります。つまり、親のプラグイン ID、
親のプラグイン・バージョン、およびバージョン一致規則です。
特定のプラグインに対するフラグメントを作成しているので、
「参照」ボタンを使用し、プラグインの選択ダイアログで「com.example.xyz」を
選択できます。ダイアログを使用すると、外部プラグインも選択できます。

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

以下の例外を除き、このマニフェスト・エディターはプラグインのマニフェスト・エディターとほとんど同じです。
-
「概要」ページには、「クラス」属性がありません。フラグメントは親のプラグインのライフ・サイクルに従うので、
フラグメントにはプラグイン・クラスがありません。代わりに、親のプラグインの ID とバージョンのフィールドが表示されます。
-
「一致規則」というラベルの付いたドロップダウンのコンボ・ボックスを使用して、プラグイン参照を厳密に定義できます
(完全、互換、同等など)。
プラグインの例と同じようなアクションを追加しますが、今回は「ドイツ語」です。
- フラグメント・マニフェスト・エディターで、「拡張」ページに進みます。「追加」を
クリックして、「拡張」ウィザードを起動します。
- 拡張ポイントのリストから「org.eclipse.ui.actionSets」を選択します。「終了」を押します。
- 新規のアクション・セットを選択します。ポップアップ・メニューから、
「新規作成」>「アクション・セット」と選択します。
- 「拡張エレメント詳細」セクションで、「ラベル」プロパティーを「Deutsche Aktionsmenge」に変更します。
- 「すべての拡張」セクションで、新しいアクション・セットを右マウス・ボタンでクリックし、
ポップアップから「新規」>「メニュー」を選択します。
- そのメニューの「ラベル」プロパティーを「Beispiel Menu」に変更し、
「ID」プロパティーを「beispielMenu」に変更します。
- もう一度メニュー・エレメントを選択し、ポップアップ・メニューから
「新規作成」>「セパレーター」と選択します。名前を「beispielGruppe」に変更して保管します。
- 新しい「アクション」エレメントを作成します (ステップ 6 と同じ)。
「ラベル」プロパティーを「Beispiel Aktion」に設定します。
「menubarPath」を「beispielMenu/beispielGruppe」に設定します。
- 「クラス」プロパティーのハイパーリンクをクリックし、アクションに対する
新しいクラスを生成します。ソース・フォルダーとしては「com.example.german/src」を使用し、
パッケージ名はブランクのままにします (デフォルト・パッケージを使用します)。クラス名を「DeutscheBeispielAktion」に変更します。「終了」を押します。
- Java エディターで新しいクラスが開かれたら、「run」メソッドを探して以下を追加します。
System.out.println("Hallo, PDE welt!");
- 保管して Java エディターとフラグメントのマニフェスト・エディターを閉じます。
「実行」ツールバー・ボタンを使用してフラグメントを実行するとき、
ランタイム・プラットフォーム・インスタンスでは、「Deutsche Aktionsmenge」のアクション・セットを使用可能にしておく必要があります
(「ウィンドウ」>「パースペクティブのカスタマイズ ...」>「その他を使用して、
アクション・セットのリストを入手します)。
アクション・セットをアクティブにすると、「Beispiel Menu」メニューがツールバーに表示されます。
そのメニュー項目を選択すると、コンソールに「Hallo, PDE welt!」が表示されます。
ランタイム・プラットフォームは、直接「ドイツ語」フラグメントを見ているわけではありません。
その代わりに、フラグメントのアクション・セットが直接 XYZ プラグインから来たかのように、プラットフォームに表示することで、そのプラグイン・レジストリーはフラグメント参照を解決しています。