第8回 Eclipseプラグインを作る(1)
的場聡弘(NTTデータ ビジネス開発事業本部)
岡本隆史(NTTデータ 技術開発本部)
2004/4/10
「連載:Eclipseを使おう!」の第2回「Eclipseの統合開発環境を使いこなす」でも言及していますが、Eclipse自体はJava開発ツールではなく、さまざまなプラグインを統合するための「プラットフォーム」にすぎません。Eclipseプラットフォームが提供している「拡張ポイント(extension-point)」に、「拡張機能」を「プラグイン」することにより、Eclipseプラットフォームへ拡張機能が統合される仕組みになっています(図1)。
「Eclipseプラグイン」とは、Eclipse開発環境に統合できる、新しい「機能」を実装したものだといえます。今回から2回に分けて、簡単なプラグインを作成しながら、自分の実装したい拡張機能をEclipseにプラグイン可能なように実装していく方法をご紹介します。
![]() |
| 図1 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)。
![]() |
| 画面1 [新規プロジェクト]ダイアログから[プラグイン開発]-[プラグイン・プロジェクト]を選択 |
[プラグイン・プロジェクト名]ダイアログが開きます。[プロジェクト名]にプロジェクト名を入力しますが、本稿では「org.ocharake.matobaa.analogClock」と入力します(この名前はプラグインIDとしても用いられるので、<プラグインIDの命名規約>に沿った名前を付けてください)。[次へ]をクリックします。次に表示される[プラグイン・プロジェクト構造]ダイアログでは、特に変更する項目はないので、そのまま[次へ]をクリックします(画面2)。
![]() |
| 画面2 プロジェクト名に「org.ocharake.matobaa.analogClock」と入力 |
次に開く[プラグイン・コード生成プログラム]ダイアログでは、コード生成ウィザードを選択します。[選択可能なコード生成ウィザード]から[デフォルト・プラグイン構造]を選択します(すなわち、最小限のコード作成を行います)(画面3)。
![]() |
| 画面3 コード生成ウィザードとして[デフォルト・プラグイン構造]を選択 |
[次へ]をクリックすると、[単純なプラグイン・コンテンツ]ダイアログが開きます。[プロバイダー名]に開発者の名前を入力(画面4)し、[終了]をクリックすることで、Javaソース、プロパティファイル、plugin.xmlという3つのファイルを含むプロジェクトが生成されます。
![]() |
| 画面4 プラグイン生成に必要な情報を入力 |
それではいよいよ、ワークスペースにビューを追加してみましょう。このときに用いる拡張ポイントは、org.eclipse.ui.viewsです。まず、plugin.xmlに必要な設定を、ウィザードを使って追加していきます。いまエディタ領域には、「AnalogClockプラグイン」というタイトルのエディタが表示されています(表示されていない場合は、パッケージエクスプローラービューでplugin.xmlをダブルクリックしてください)。これがplugin.xmlの編集を支援してくれる、「プラグインのマニフェストエディタ」です。
![]() |
| 画面5 「AnalogClockプラグイン」というタイトルのエディタが表示されている |
エディタの下部の[拡張]タブをクリックし、[追加]をクリックすると、[新規拡張]ウィザードが現れます。左側のウィンドウから[汎用ウィザード]を選択した後、右側のウィンドウから[スキーマ・ベースの拡張]を選択して[次へ]をクリックします(画面6)。
![]() |
| 画面6 [汎用ウィザード]-[スキーマ・ベースの拡張]を選択 |
[拡張ポイント選択]ダイアログが開くので、[org.eclipse.ui.views]を選択して[終了]をクリックします(画面7)。
![]() |
|
画面7 [org.eclipse.ui.views]を選択 |
「org.eclipse.ui.views」という「拡張」が生成され、エディタ上に表示されます。これを右クリックし、[新規]→[View]を選択します(画面8)。すると、「org.ocharake.matobaa.analogClock.view1」というエレメントが追加されます(画面9)。
![]() |
| 画面8 「org.eclipse.ui.views」を右クリックし、[新規]→[View]を選択 |
![]() |
| 画面9 「org.ocharake.matobaa.analogClock.view1」というエレメントが追加される |
|
1/2 |
|
INDEX |
||
| 第8回 EclipseによるSWTアプリケーションの作成 | ||
| Page1 プラグインによる拡張の仕組み はじめてのプラグイン - アナログクロック - プログラム仕様 プラグイン開発環境(PDE)を使って、plugin.xmlを作成する |
||
| Page2 スケルトンコードを作成し、実装を追加する テスト実行してみよう |
||
Eclipse徹底活用 バックナンバー
| 関連記事 INDEX | |
| 連載 Eclipseを使おう! | |
| 第1回 オープンソースのEclipseは仕事に使える開発環境 | |
| 第2回 Eclipseの統合開発環境を使いこなす | |
| 第3回 EclipseでTomcatを使ったJ2EE開発を行う | |
| 「Eclipse徹底活用」 |
TechTargetジャパン
- 並列分散処理の常識をHadoopファミリから学ぶ (2012/2/8)
並列分散処理の課題やHadoopの長所/短所、そして短所を補うHadoop関連プロジェクトの構成や概要などを簡単に紹介 - WebLogicサーバ最新版「12c」の気になる4つの特徴 (2012/1/31)
久々にメジャーアップグレードしたJavaアプリケーションサーバについて、製品担当者に軽量インストーラなどの特徴を聞いた - GitHubをもっとソーシャルに使いこなすための7つ道具 (2012/1/23)
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。特に連動クラウド「fluxflex」が注目だ - 新キャラ登場!スクラムやるならRedmineとALMinium (2011/12/26)
「黒板を“かんばん”にしてたら先生に怒られた(T_T)」「管理はPC内でやればいいのよ」「承知しました」
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -










