アクション・クラスを使用すると、UI における表示には関係なくユーザー・コマンドを定義することができます。これにより、コマンドを選択しさえすれば、そのコマンドを実際に実行するコードを変更しなくても、プラグイン内のアクションの表示を柔軟に変更することができます。追加クラスは、コマンドを表す実際の UI 項目を管理するために使用されます。追加クラスにあわせてプログラミングしなくても、それらはワークベンチと JFace API の一部で見ることができます。
アクション (IAction) は、エンド・ユーザーが起動できるコマンドを表します。アクションは、通常、ボタン、メニュー項目、およびツールバーの項目に関連付けられます。
アクション自体が UI に配置されることはありませんが、ツール・ヒントのテキスト、ラベルのテキスト、およびイメージなどの UI 指向のプロパティーを持っています。 これにより、他のクラスは、アクションの表示用にウィジェットを構成することができます。
ユーザーが UI のアクションを起動すると、アクションの実行メソッドが呼び出され、実際の作業を実行します。実行メソッドの共通パターンは、ワークベンチの選択を照会し、選択されたオブジェクトを操作することです。もう 1 つの共通パターンは、アクションが選択されたときにウィザードまたはダイアログを開くことです。
IAction インターフェースを直接インプリメントすることはしないでください。その代わりに、Action クラスをサブクラス化してください。このクラスのサブクラスをブラウズして、数多くの共通のアクション・パターンを調べてください。以下のコードは「製品情報」アクションをインプリメントしています。これは、ワークベンチ内でも比較的単純なアクションの 1 つです。
public void run() { new AboutDialog(workbenchWindow.getShell()).open(); }
先に、ワークベンチのインターフェース IViewActionDelegate と IEditorActionDelegate を見ました。これらのインターフェースは、ビュー・アクションまたはエディター・アクションをワークベンチに追加する場合に使用されます。ワークベンチ・アクションの委譲者は、それらに関連付けられているビューまたはエディターへの参照を使用して初期化されます。この知識を基に、ワークベンチ・アクションの代行者は、ワークベンチ・ページまたはウィンドウへナビゲートし、選択部分、あるいはそのアクションを実行するために必要なその他の情報にアクセスします。
プラグインにコマンドを定義する場合は、常に、独自のアクション・クラスをインプリメントします。他のビューおよびエディターにアクションを提供する場合は、アクションの委譲者をインプリメントします。
コントリビューション項目 (IContributionItem) は、アクションの UI 部分を表します。具体的には、メニューまたはツールバーのような共用 UI リソースに追加される項目を表します。
コントリビューション項目は、追加を表す適切な SWT 項目で、特定の SWT ウィジェットを充てんする方法を認識します。
アクションをワークベンチ UI に追加する場合は、コントリビューション項目の作成について心配する必要はありません。これは、すでに定義されたアクションに対してワークベンチが UI 項目を作成するときに、代わりに行われます。
追加マネージャー (IContributionManager) は、 UI で表示されるコントリビューション項目のコレクションを表します。指定された追加 ID を使用してコントリビューション項目を追加および挿入し、その項目を適切な順序で配置します。また、ID によって項目を検索し、個々の項目を除去することもできます。
IContributionManager の各インプリメンテーションは、その項目で特定の SWT ウィジェットを充てんする方法を認識します。 JFace は、メニュー (IMenuManager)、ツールバー (IToolBarManager)、および状況表示行 (IStatusLineManager) に追加マネージャーを提供しています。
プラグイン開発者は、これらのインターフェースをインプリメントする必要はありませんが、これらのマネージャーのいくつかへの参照は API メソッドで見ることができます。