|
||||||||||||||||||||||||||||
| 前のページ 1 2 3 4 次のページ | ||||||||||||||||||||||||||||
| Eclipseのアーキテクチャ | ||||||||||||||||||||||||||||
|
EclipseがJavaの統合開発環境(IDE)のデファクトスタンダードと呼ばれるようになった理由のひとつに、商用・非商用・オープンソースに関わらず、多くのすばらしいプラグインが開発され、利用できることが挙げられます。 しかしEclipseは、JavaのIDEとして開発されているのではなく、様々な用途のツールを構築するためのプラットフォームとして開発されています。そのため、Eclipseの基本的な環境(Eclipseプラットフォーム)は、エンド・ユーザが使用するような機能をそれほど多く持っていません。 Eclipseプラットフォームは、ランタイムとランタイム上に構築されたいくつかのコンポーネントによって構成されています(図10)。それぞれのコンポーネントは1つ以上のプラグインによって実装され、ランタイムとリソースを併せたコンポーネントをCoreと呼び、ワークベンチとJFaceを併せたコンポーネントをUIと呼んでいます。 ![]() 図10:Eclipseプラットフォーム |
||||||||||||||||||||||||||||
表1:Eclipseプラットフォームの主なコンポーネント |
||||||||||||||||||||||||||||
それでは、JavaのIDEとして使用している機能はどこにあるのでしょうか。Eclipse SDKは、Eclipseプラットフォームと、Java開発環境であるJava Development Tools(JDT)、プラグイン開発環境であるPlug-in Development Environment(PDE)から構成されており、JDTとPDEもプラグインとして実装されています(図11)。私たちはこのJDTの機能を使い、プログラミングしています。![]() 図11:Eclipse SDKのアーキテクチャ |
||||||||||||||||||||||||||||
| プラグイン | ||||||||||||||||||||||||||||
|
プラグインは、プラットフォームに機能を追加するためのしくみであり、他のプラグインにも機能を追加することができます。機能を追加することを拡張といい、他のプラグインが拡張できる場所のことを拡張ポイントといいます。 そして、開発したプラグインをプラグインとして動作させるためには、下記の条件を満たしている必要があります。
|
||||||||||||||||||||||||||||
| プラグイン・ランタイム・クラス | ||||||||||||||||||||||||||||
|
プラグイン・ランタイム・クラスは、プラグインの起動や終了などのライフサイクルの機能を実装するJavaクラスのことで、org.eclipse.core.runtime.Plugin抽象クラスを継承しています。プラグイン・ランタイム・クラスのインスタンスの生成や管理は、Eclipseプラットフォームのランタイムによって行われるので、インスタンスを生成するコードを書くことはありません。 実際には、Plugin抽象クラスを継承してプラグイン・ランタイム・クラスを実装するケースは多くなく、Eclipseプラットフォームが用意しているプラグイン・ランタイム・クラスを使用します。図12にPlugin抽象クラスとプラグイン・ランタイム・クラスの関係を示します。 EclipseプラットフォームのUIコンポーネントを用いるプラグインを開発するためには、AbstractUIPlugin抽象クラスを使用します。AbstractUIPlugin抽象クラスは様々な用途があるので、汎用性を持たせられるように抽象クラスになっており、プラグイン・ランタイム・クラスとして使用するためには、さらに継承する必要があります。
※注2:
「Hello プラグイン」では、ウィザードによりAbstractUIPluginクラスを継承したHelloPluginクラスが作成されています。
|
||||||||||||||||||||||||||||
|
前のページ 1 2 3 4 次のページ |
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||




