Eclipseのプラグイン開発のActivatorクラスについて。
|
Activatorは、プラグインのライフサイクルを管理する為のクラス。
プラグインを構成する各クラスからグローバルな情報にアクセスする為にActivatorクラスを使用する。
Eclipseプラグインのプロジェクトを作る際にActivatorクラス(のパッケージ・クラス名)を指定することにより、Activatorクラスを自動生成することが出来る。
Eclipse3.7で自動生成されたActivatorクラスの内容は以下の通り。
package com.example.eclipse.plugin.hello; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext;
/**
* The activator class controls the plug-in life cycle
*/
public class Activator extends AbstractUIPlugin {
// The plug-in ID
public static final String PLUGIN_ID = "com.example.eclipse.plugin.hello"; //$NON-NLS-1$
// The shared instance
private static Activator plugin;
/**
* The constructor
*/
public Activator() {
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception {
plugin = null;
super.stop(context);
}
/**
* Returns the shared instance
*
* @return the shared instance
*/
public static Activator getDefault() {
return plugin;
}
/**
* Returns an image descriptor for the image file at the given
* plug-in relative path
*
* @param path the path
* @return the image descriptor
*/
public static ImageDescriptor getImageDescriptor(String path) {
return imageDescriptorFromPlugin(PLUGIN_ID, path);
}
}
start()・stop()には@Overrideアノテーションは付いていないが、親クラスのメソッドをオーバーライドしている。
start()にて、Activatorインスタンス(自分自身)をstaticなフィールドに保持している。
そして、このフィールドの値をgetDefault()で返すようになっている。
したがって、他のクラスからは「Activator.getDefault()」によってActivatorインスタンスを取得できる。
Activator(および、その親クラス)には以下のようなメソッド/フィールドがある。
| メソッド | 戻り型 | 説明 |
|---|---|---|
| static PLUGIN_ID | String | プラグインのID。自動生成されたActivatorクラスに定義されている。 |
| static getDefault() | Activator | Activatorインスタンスを返す。自動生成されたActivatorクラスに定義されている。 |
| getBundle() | Bundle | |
| getDialogSettings() | IDialogSettings | |
| getImageRegistry() | ImageRegistry | 画像を管理(キャッシュ・破棄)するクラス。 |
| getLog() | ILog | ログ出力を行う為のオブジェクトを返す。 |
| getPreferenceStore() | IPreferenceStore | Preference(設定)の値を保持するオブジェクトを返す。 |
| getStateLocation() | IPath | プラグインが使える範囲のローカルファイルシステム(.metadata)のパスを返す。 |
| getWorkbench() | IWorkbench |