第2回 「Hello♪」を表示するだけのEclipseプラグイン
HelloPluginを実装しよう |
プラグインの各種設定を完了した田中君は、いよいよプラグインの実装を行う。
長尾君 | 「実装を行う前に、もう一度作成するプラグインを確認しよう」 |
長尾君 | 「メニューバーに追加した[]アイコンをクリックすると、メッセージが表示されるプラグインだよね。ここからは[]アイコンをクリックされたら、メッセージダイアログを表示させる処理を書いていくよ」 |
長尾君 | 「先ほど作成したクラス[HelloPluginAction]を開いてみよう」 |
package helloPlugin.actions; |
(3) |
import org.eclipse.jface.viewers.ISelection; |
(1) |
|
(2) |
田中君 | 「インターフェイス(1)と実装メソッド(2)が定義されているね」 |
長尾君 | 「インターフェイス[IWorkbenchWindowActionDelegate]は、ワークベンチウィンドウからのアクションを実行するために使用するんだ」 |
コラム ワークベンチウィンドウについて | ||
プラグイン開発におけるワークベンチウィンドウとは、[Eclipseのメインウィンドウ]を指します。 Eclipseにはワークベンチウィンドウのほかにも、それぞれの領域に名称が与えられています。
|
田中君 | 「インターフェイスのほかにはいくつかのimport文(3)が設定されているね」 |
長尾君 | 「これらはもちろん[IWorkbenchWindowActionDelegate]が参照しているパッケージだけど、いまこの時点で1つずつを詳しく説明してもとても難しいから、いまの時点では、自動的に設定される程度の認識でいいよ」
|
田中君 | 「うん、そうするよ。すべてが初めて目にするパッケージだからね。多分いま聞いても分からないと思うな」 |
長尾君 | 「実装メソッド(2)は以下の4種類あるから、ここで簡単に説明するね」 |
|
田中君 | 「アクション初期化や停止があるけど、これってどのようなタイミングで初期化や停止メソッドが実行されるの?」 |
長尾君 | 「アクションの初期化、停止については実はとても奥が深い問題なんだけど、init、disposeとselectionChangedのメソッドは、このプラグインでは使用しないんだ。だから、今回はrunメソッドのみ説明するよ」 |
コラム 使用するメソッドの見極めについて |
プラグインの開発ではインターフェイスの実装を行っていくパターンが多く存在します、そのときに、いったいどのメソッドを使ったらよいかやメソッドの使い方について分からないというような場合によく出くわします。 そのときの調査方法としてもはやり、Eclipseオンラインヘルプから調べるのが一番いいでしょう。 今回の場合、initメソッドをはじめとする各種実装メソッドの説明についても、EclipseオンラインヘルプからIWorkbenchWindowActionDelegateインターフェイスのAPIドキュメントが英文ですが用意されています。 APIドキュメントは[Platformプラグイン・デベロッパー・ガイド]から[参照]―[API参照]にAPIドキュメントがございますので、そこから、IWorkbenchWindowActionDelegateインターフェイスのパッケージである[org.eclipse.ui]をご覧ください。 |
田中君 | 「runメソッドは選択時に実行されるってことは、この場合、[ボタンがクリックされたとき]に実行されるってことかな?」 |
長尾君 | 「そのとおり、ツールバーのボタンがクリックされたら実行されるメソッドだよ」 |
田中君 | 「じゃあ、そのrunメソッドに、ダイアログを表示される処理を記述すればいいのだね? ダイアログ表示処理ってどうやって実装するのかな?」 |
長尾君 | 「実装については下のソースを見て」 |
public class HelloPluginAction implements IWorkbenchWindowActionDelegate { |
長尾君 | 「runメソッド内で[MessageDialog]クラスの[openInformation]というスタティックメソッドを呼んでいるけど、これがダイアログを表示させる処理なんだ」 |
長尾君 | 「[openInformation]メソッドの第2引数にはダイアログのウィンドウタイトルの文字列を、第3引数には、ダイアログに表示させるメッセージを表示させるんだ」 |
田中君 | 「第1引数に書いてある[null]ってどんな意味があるの?」 |
長尾君 | 「これは、ダイアログの親を指定する引数なんだけど、今回は特に指定する必要がないからnullを指定しているんだ。これですべての実装は終わりだよ」 |
田中君 | 「これだけ?? 案外簡単だったね」 |
長尾君 | 「そうなんだ、プラグインの開発も実際はJavaのアプリケーション開発だからね、実装自体もこの簡単なプラグインであればすごく簡単なんだ」 |
田中君 | 「プラグインの実装が終わったから、動作確認をしたいんだけど、これも簡単にできるのかな?」 |
長尾君 | 「うん、実は動作確認もワンタッチでできる方法があるんだ。早速動作確認してみよう!」 |
プラグインの実装自体は意外と思えるほど簡単だった。次に田中君はプラグインの動作確認を行う。
2/3 |
Index | |
第2回 「Hello♪」を表示するだけのEclipseプラグイン | |
Page1 Eclipseの機能を拡張しよう |
|
Page2 Helloプラグインを実装しよう |
|
Page3 Helloプラグインの動作確認をしよう |
Java Solution全記事一覧 |
Java Agile フォーラム 新着記事
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|