作成 2003/1/1
Eclipseは「プラグインのかたまり」で構成されています。コアとなるランタイム以外はすべてプラグインです。リソースナビゲータもJavaエディタもプラグインです。Eclipseに新たな機能を追加したい場合は、プラグインを作成し、Eclipseに追加します。
プラグインの設定ファイルをマニフェストファイルといいます。マニフェストファイルは、「plugin.xml」という名前です。このファイルに様々な設定を記述していきます。
既存のプラグインを拡張するには、「拡張ポイント」を拡張します。一般的なプラグインの作成方法では、マニフェストに拡張ポイントを指定し、その拡張ポイントに対応したインターフェイスを実装したクラスを作成します。また、拡張ポイントは、新たに作成することもできます。
EclipseにはPDE(Plugin Development Enviroment)、プラグイン開発環境というものが標準で用意されています。多くの機能がありますが、次の機能はよく利用します。
マニフェストエディタは、plugin.xmlを記述するエディタです。GUI上でプラグインを拡張していくことができます。PDEワークベンチを使うと、プラグインをエクスポート、配置せずに、実行、デバッグすることが可能です。
次の図は、Eclipse全体のプラグインアーキテクチャを示したものです。
図 Eclipseアーキテクチャー(Eclipseのヘルプより)
左上のWorkbench、JFace、SWTの3つは基本となるユーザーインターフェイスを提供するAPIです。
SWT(Standard Widget Toolkit)はGUIのAPIです。AWTやSwingに相当するものですが、Eclipseの開発者たちは、新たにSWTを設計、利用しました。SWTの特徴は、OSネイティブの機能を利用することで、高速に動作し、見た目はOSネイティブのものになります。なお、ネィティブの機能は利用しますが、SWT自体のコードは(一部のOS依存機能を使わなければ)プラットホーム非依存です。SWTはorg.eclipse.swtからはじまるパッケージで提供されています。
JFaceはSWTより上のレベルにあるAPIです。より"やりたいこと"ができるようなAPIが提供されています。ビューア、アクション、ウィザード、テキスト、フォント、イメージレジストリなどの機能が提供されています。JFaceはorg.eclipse.jfaceからはじまるパッケージで提供されています。
EclipseとプラグインをつなぐAPIです。多くの拡張ポイントではWorkbench UI APIを利用します。Workbench UI はorg.eclipse.uiからはじまるパッケージで提供されています。
なお、SWTとJFace APIはEclipseに依存せず、スタンドアロンのアプリケーションで利用することが可能です。
EclipseのコアとなるランタイムAPIは、org.eclipse.core.runtimeパッケージで提供されています。
ファイルやプロジェクトなどを扱う場合はリソースAPI(Workspace API)を利用します。リソースAPIはorg.eclipse.core.resourcesパッケージで提供されています。
Java開発者であれば、JavaソースやJavaアプリケーションを操作するプラグインを利用、開発することが多いと思います。Java関連の機能はorg.eclipse.jdtからはじまるパッケージで提供されています。