「連載:Eclipseを使おう!」の第2回「Eclipseの統合開発環境を使いこなす」でも言及していますが、Eclipse自体はJava開発ツールではなく、さまざまなプラグインを統合するための「プラットフォーム」にすぎません。Eclipseプラットフォームが提供している「拡張ポイント(extension-point)」に、「拡張機能」を「プラグイン」することにより、Eclipseプラットフォームへ拡張機能が統合される仕組みになっています(図1)。
「Eclipseプラグイン」とは、Eclipse開発環境に統合できる、新しい「機能」を実装したものだといえます。今回から2回に分けて、簡単なプラグインを作成しながら、自分の実装したい拡張機能をEclipseにプラグイン可能なように実装していく方法をご紹介します。
なお、本稿の解説はEclipseのヘルプを参照しながら話を進めていきます。Eclipseには、ヘルプ・サーバという内部サーバ機能が用意されており、Webブラウザからヘルプページを参照することができます。ヘルプ・サーバを利用するためには[ウィンドウ]→[設定]の[ヘルプ]→[ヘルプ・サーバ]設定画面で、[listenするサーバのポート]に“12080”を設定してOKをクリックした後、[ヘルプ]メニューから[ヘルプ目次]を実行して、ヘルプサーバを起動しておいてください。記事中のリンクをクリックするとヘルプページを参照できるようになります(ヘルプ・サーバで参照できる記事中のリンクは< >で囲っています)。
プラグインによる拡張の仕組み
前述したとおり、Eclipseはプラグインによって機能を拡張することのできる「プラガブル」な構造になっています。プラグインできる場所のことを、拡張ポイントといい、ここにプラグインする機能を、「拡張(extension)」といいます。
これら拡張ポイントには、そのポイントのルールがインターフェイスとして用意されています。このインターフェイスを実装したクラスを用意し、組み込み方を記述した設定ファイルである「plugin.xml」を用意することで、Eclipseプラットフォームがこの拡張を認識します。また、既存プラグインに機能を追加する「フラグメント」、複数のプラグインをある機能単位でくくる「フィーチャー」といった拡張方法もあります。
私たちが普段利用しているEclipse開発環境(JDTを含む)は、全部で87カ所の拡張ポイントを持っています。すべてのEclipseとJDTの拡張ポイントのリストは、ヘルプ「Platformプラグインデベロッパーガイド」の<プラットフォーム拡張ポイント>と、「JDTプラグインデベロッパーガイド」の<JDT拡張ポイント>に記述されています。
はじめてのプラグイン - アナログクロックの仕様
それではまず、ビューを持つプラグインを作成してみましょう。ここではサンプルとして、プラットフォームとは何も関連を持たない、単純に現在時刻を表示するだけの機能、アナログ時計を表示するプラグインを作成することを目指します。このプラグインには、以下の機能を実装する必要があります。
- Eclipseプラットフォームにビューとして表示される
- 1.の表示領域に収まる、円形の文字盤に、時、分、秒をアナログ的に針で表示する
- 1秒に1回秒針が動く。
では、上記の機能を実装していきましょう。
プラグイン開発環境(PDE)を使ってplugin.xmlを作成する
Eclipse開発環境はそれ自体、PDE(Plug-in Development Environment)という、プラグインを開発するための環境を備えています。これを利用することで、拡張ポイントをウィザード形式で選択したり、設定ファイルであるplugin.xmlというファイルを効率的に編集したり、ブレークポイントを設定してデバッグすることが可能です。
Eclipseを起動して、[ファイル]メニューから[新規]→[プロジェクト]を選択し、新規プロジェクトウィザードを起動します。左のウィンドウから[プラグイン開発]を選択した後に右側のウィンドウから[プラグイン・プロジェクト]を選択し、[次へ]をクリックします(画面1)。
[プラグイン・プロジェクト名]ダイアログが開きます。[プロジェクト名]にプロジェクト名を入力しますが、本稿では「org.ocharake.matobaa.analogClock」と入力します(この名前はプラグインIDとしても用いられるので、<プラグインIDの命名規約>に沿った名前を付けてください)。[次へ]をクリックします。次に表示される[プラグイン・プロジェクト構造]ダイアログでは、特に変更する項目はないので、そのまま[次へ]をクリックします(画面2)。
次に開く[プラグイン・コード生成プログラム]ダイアログでは、コード生成ウィザードを選択します。[選択可能なコード生成ウィザード]から[デフォルト・プラグイン構造]を選択します(すなわち、最小限のコード作成を行います)(画面3)。
[次へ]をクリックすると、[単純なプラグイン・コンテンツ]ダイアログが開きます。[プロバイダー名]に開発者の名前を入力(画面4)し、[終了]をクリックすることで、Javaソース、プロパティファイル、plugin.xmlという3つのファイルを含むプロジェクトが生成されます。
それではいよいよ、ワークスペースにビューを追加してみましょう。このときに用いる拡張ポイントは、org.eclipse.ui.viewsです。まず、plugin.xmlに必要な設定を、ウィザードを使って追加していきます。いまエディタ領域には、「AnalogClockプラグイン」というタイトルのエディタが表示されています(表示されていない場合は、パッケージエクスプローラービューでplugin.xmlをダブルクリックしてください)。これがplugin.xmlの編集を支援してくれる、「プラグインのマニフェストエディタ」です。
エディタの下部の[拡張]タブをクリックし、[追加]をクリックすると、[新規拡張]ウィザードが現れます。左側のウィンドウから[汎用ウィザード]を選択した後、右側のウィンドウから[スキーマ・ベースの拡張]を選択して[次へ]をクリックします(画面6)。
[拡張ポイント選択]ダイアログが開くので、[org.eclipse.ui.views]を選択して[終了]をクリックします(画面7)。
「org.eclipse.ui.views」という「拡張」が生成され、エディタ上に表示されます。これを右クリックし、[新規]→[View]を選択します(画面8)。すると、「org.ocharake.matobaa.analogClock.view1」というエレメントが追加されます(画面9)。
Copyright © ITmedia, Inc. All Rights Reserved.