いちばん簡単なEclipseプラグイン作って覚えるEclipseプラグイン(1)(2/3 ページ)

» 2005年09月16日 00時00分 公開
[竹添直樹, 岡本隆史NTTデータ]

プラグインのソースをのぞいてみる

 まずはplugin.xmlです。このファイルはプラグインの各種情報を記述する非常に重要なファイルです。plugin.xmlはマニフェスト・エディタでグラフィカルに編集を行うことができます。マニフェスト・エディタは以下のタブを持っています。plugin.xmlがどのような情報を持っているのか一通り目を通しておくとよいでしょう。

表1 マニフェスト・エディタのタブ 表1 マニフェスト・エディタのタブ

 「plugin.xml」タブではplugin.xmlのソースを直接編集することができます。今回のサンプルでは以下のような内容になっています。

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>

   <extension
         point="org.eclipse.ui.actionSets"> (1)
      <actionSet
            label="Sample Action Set"
            visible="true"
            id="jp.sf.amateras.sample.actionSet"> (2)
         <menu
               label="Sample &amp;Menu"
               id="sampleMenu">
            <separator
                  name="sampleGroup">
            </separator>
         </menu>
         <action
               label="&amp;Sample Action"
               icon="icons/sample.gif"
               class="jp.sf.amateras.sample.actions.SampleAction"  (3)
               tooltip="Hello, Eclipse world"
               menubarPath="sampleMenu/sampleGroup"
               toolbarPath="sampleGroup"
               id="jp.sf.amateras.sample.actions.SampleAction">
         </action>
      </actionSet>
   </extension>

</plugin>

 実際にメニューの追加を宣言しているのはextension要素になります。(1)ではpoint属性でEclipseのどの拡張ポイントに対して拡張を行うかを宣言しています。拡張ポイントとはプラグインがEclipseを拡張するためのエントリポイントとなるもので、Eclipseプラットフォームにはデフォルトでさまざまな拡張ポイントが用意されており、プラグインを開発する場合、まず「どの拡張ポイントに対して拡張するか」を決定することから始まります。ここでは org.eclipse.ui.actionSets という拡張ポイントを指定していますが、ビューを作成するのであればビュー用の拡張ポイント、エディタを作成するのであればエディタ用の拡張ポイントを指定することになります。extension要素の配下に記述する内容は拡張ポイントによって異なってきます。

 メニューバーやツールバーに表示される項目はaction要素で定義します。アクションは(2)のactionSet要素でアクションセットとしてグループ化することができます。グループ化されたアクションはまとめて表示・非表示を切り替えたりすることができます。ここではactionSet要素のvisible属性がtrueになっているため、デフォルトで表示されましたが、ユーザーは[Window]→[Customize Perspective...]の[Commands]タブで表示するかどうかを選択することが可能です。

図9 アクションセットの表示の切り替え 図9 アクションセットの表示の切り替え

 action要素ではmenubarPath属性とtoolbarPath属性でメニューバーとツールバーへのアクションの挿入位置を指定しています。ここではmenu属性で[Sample Menu]というメニューを定義し、そこにアクションを挿入していますが、例えばmenubarPath属性に“file/additions”と指定すると[File]メニューに挿入することができます。

 (3)のclass属性で指定されているjp.sf.sample.actions.SampleActionクラスのrunメソッドがメニューアイテム選択時に実行されるクラスになります。run()メソッドのソースを見るとorg.eclipse.jface.dialogs.MessageDialogクラスのopenInformation()メソッドを利用してダイアログを表示しているのが分かります。

public void run(IAction action) {
    MessageDialog.openInformation(
        window.getShell(),
        "Sample Plug-in",
        "Hello, Eclipse world");
}

 もう1つ、プロジェクトにはSamplePluginというクラスが作成されています。これはプラグインそのものの初期化処理や、プラグインで使用するイメージ等を一括管理するためのクラスです。例えば、プラグイン・プロジェクトのicons/sample.gifを読み込むには以下のようにします。

Image image = SamplePlugin.getImageDescriptor("icons/sample.gif").createImage();

 このほかにもテンプレートで作成可能なプラグインにはビューやエディタなどさまざまなものが用意されていますので、一通り試してみて実装方法の参考にするとよいでしょう。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。