インターフェース |
説明 |
IErrorContext |
IStatus メッセージを構成してプラグイン・ログに記録します。 |
Bundle |
パーツの実装を含むプラグイン・バンドル。これは、プラグインについて他のコンポーネント (IErrorContext の実装など) に自動的に通知します。 |
IContainer |
サイトのコンテナー。このオブジェクトは、他の任意のサイト・インターフェースを対象として照会できます。これは、パーツが、サイトから子にすべてをリダイレクトまたは多重化する場合に役立ちます。 |
INameable |
パーツが、名前、アイコン、ツールチップ、およびコンテンツ記述を設定できるようにします。IWorkbenchPart 上のさまざまな get メソッドおよびリスナーを置き換えます。 |
Composite |
パーツの親コンポジット。このコンポジットは、他のパーツと共用されることはなく、パーツと一緒に廃棄されます。パーツは、レイアウトを設定し、このコンポジットにリスナーを接続できます。 |
ISecondaryId |
マルチインスタンス・ビューとして使用される場合にパーツの 2 次 ID を戻すインターフェース。 |
ResourceManager |
イメージ、フォント、色、および他の SWT リソースを安全に割り振り/割り振り解除します。パーツ間で同じリソースが共用されるようにし、パーツのクローズ時にリークがクリーンアップされるようにします。 |
IDirtyHandler |
パーツがダーティー状態を設定またはクリアできるようにします。 |
IMessageDialogs |
エラー、警告、および通知ダイアログをユーザーに対して表示します。 |
IActionBars |
Eclipse 3.0 API での getViewSite().getActionBars() と同じ目的で使用されます。 |
IMultiplexer |
多重化コンポーネントがマルチプレクサーおよび任意の共用インターフェースにアクセスできるようにします。 . |
ISavedState |
パーツの以前の永続状態を保持します。 |
IPartFactory |
パーツがネストされたビューおよびエディターを作成できるようにします。 |
IPartDescriptor |
パーツに関するメタ情報 (ID、タイトル、デフォルト・イメージなど) を保持します。 |
IEditorInput |
エディターのためのエディター入力を保持します。ビュー用の空のエディター入力を指します。 |
ISelectionHandler |
選択の変更を処理します。パーツはこれを使用して、ワークベンチに提供する選択を変更します。 |
パーツがインターフェースごとに固有のインスタンスを用意するのか、複数のパーツ間で 1 つのオブジェクトを共用するのかは、パーツを含むコンテキストによって決まります。 パーツのコンストラクターが、null 引数を受け取ることは決してありません。
コンストラクター・インジェクションは便利ですが、新規サイト・インターフェースを利用する目的で、コンストラクター・インジェクションを使用するように既存のすべてのエディターおよびビューを再作成するのは実際的ではありません。このため、すべての新規インターフェースは、IWorkbenchPartSite 上のアダプターとして既存のビューでも使用可能です。
メッセージ・ダイアログを開く単一ボタンを含むビューを以下に示します。
以下の例は、新しい IMessageDialogs インターフェースを使用してダイアログを開く新しいスタイルのビューのソースを示しています。
/**
* Demonstrates how to use component dependencies in a new-style part.
*
* @since 3.1
*/
public class DependenciesViewNew {
// Dependencies
private IMessageDialogs dialogs;
/**
* Component constructor. Do not invoke directly.
*/
public DependenciesViewNew(Composite parent, IMessageDialogs dialogs) {
this.dialogs = dialogs;
Button testButton = new Button(parent,
SWT.PUSH);
testButton.setText("Open a dialog");
testButton.addSelectionListener(new
SelectionAdapter() {
/* (non-Javadoc)
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
public void widgetSelected(SelectionEvent
e) {
openADialog();
}
});
}
private void openADialog() {
dialogs.open(IStatus.INFO, "This is a message");
}
}
以下の例は、IMessageDialogs を使用してダイアログを開く従来のビューを示していますが、従来のワークベンチ・パーツを使用してもこれが可能であることを示しています。
赤いフォントの行は、IMessageDialogs インターフェースが初期化される方法と、それぞれの場合の使用方法を示しています。
/**
* Demonstrates how to use component dependencies in an old-style view
*
* @since 3.1
*/
public class DependenciesViewOld extends ViewPart {
// Dependencies
private IMessageDialogs dialogs;
// Main widget
private Composite parent;
/* (non-Javadoc)
* @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
public void createPartControl(Composite parent) {
this.parent = parent;
this.dialogs = (IMessageDialogs)getSite().getAdapter(IMessageDialogs.class);
Button testButton = new Button(parent,
SWT.PUSH);
testButton.setText("Open a dialog");
testButton.addSelectionListener(new
SelectionAdapter() {
/* (non-Javadoc)
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
public void widgetSelected(SelectionEvent
e) {
openADialog();
}
});
}
private void openADialog() {
if (dialogs != null) {
dialogs.open(IStatus.INFO, "This is a message");
}
}
/* (non-Javadoc)
* @see org.eclipse.ui.IWorkbenchPart#setFocus()
*/
public void setFocus() {
parent.setFocus();
}
}