第7回:エディタの拡張 (2/4)

Eclipse実践プラグイン開発
Eclipse実践プラグイン開発

第7回:エディタの拡張
著者:ビーブレイクシステムズ  大森 洋行   2005/8/15
前のページ  1  2   3  4  次のページ
拡張ポイント

   拡張する拡張ポイントは、"org.eclipse.ui.editors"で、extension要素の構造を図3にまとめました。
"org.eclipse.ui.editors"のextension要素の構造
図3:"org.eclipse.ui.editors"のextension要素の構造

   editor要素のcommand、launcher、class属性は、3つのうちどれか1つを指定します。

command属性
外部エディタを起動するために実行するコマンドを指定します

launcher属性
org.eclipse.ui.IEditorLauncherインターフェースをインプリメントしたクラスを指定し、外部プログラムを起動します

class属性
org.eclipse.ui.IEditorPartインターフェースをインプリメントしたクラスを指定し、内部エディタを起動します。またclass属性を指定した場合は、contributorClass属性にorg.eclipse.ui.IEditorActionBarContributorインターフェースをインプリメントしたクラスを指定する必要があります
エディタ・クラス

   エディタ・クラスでは、エディタの機能を実装します。インプリメントできるインターフェースは、org.eclipse.ui.IEditorPartインターフェースとそのサブインターフェースです(図4)。

IEditorPartインターフェースとそのサブインターフェース
図4:IEditorPartインターフェースとそのサブインターフェース
(画像をクリックすると別ウィンドウに拡大図を表示します)

   実際には図4のインターフェースをインプリメントするケースは少なく、IEditorPartインターフェースをインプリメントし、用途に合わせた機能を実装しているorg.eclipse.ui.EditorPartクラスとそのサブクラス(図5)を利用します。

EditorPartクラスとそのサブクラス
図5:EditorPartクラスとそのサブクラス
(画像をクリックすると別ウィンドウに拡大図を表示します)

   「エディタの追加」で作成したエディタでは、IEditorPartインターフェースをインプリメントしているEditorPartクラスを継承しています。そしてcreatePartControlメソッドでテキストラベル(Labelクラス)を作成しています。


エディタ・コントリビュータ・クラス

   エディタ・コントリビュータ・クラスでは、ワークベンチのメニューやツールバーにアクションを追加する機能(エディタ・アクション)を実装します。作成したエディタを開くとメニューやツールバー・ボタンが表示され、閉じると消えます。よってIEditorActionBarContributorインターフェースをインプリメントする必要があります。

   実際にはIEditorActionBarContributorインターフェースをインプリメントするケースは少なく、ほとんどの場合はIEditorActionBarContributorインターフェースをインプリメントし、用途に合わせた機能を実装しているクラス(図6)のいずれかを利用します。

EditorActionBarContributorクラスとサブクラス
図6:EditorActionBarContributorクラスとサブクラス

   EditorActionBarContributorクラスを継承した場合は、追加する機能に合わせてcontributeToMenuメソッド、contributeToStatusLineメソッド、contributeToToolBarメソッド、contributeToCoolBarメソッドをオーバーライドします。例えばメニューを追加する場合は、以下のように実装します。

public class SampleEditorContributor extends EditorActionBarContributor {

    private Action sampleAction;

    public SampleEditorContributor() {
        super();
        createActions();
    }

    public void contributeToMenu(IMenuManager menuManager) {
        IMenuManager menu = new MenuManager("サンプル・エディター・コントリビュータ");
        menuManager.prependToGroup(IWorkbenchActionConstants.MB_ADDITIONS, menu);
        menu.add(sampleAction);
    }

    private void createActions() {
        sampleAction = new Action() {
            public void run() {
                MessageDialog.openInformation(null, "Hello2 プラグイン", Hello, Eclipse world");
            }
        }
        sampleAction.setText("サンプル・アクション");
        sampleAction.setToolTipText("Hello, Eclipse world");
    }

}
前のページ  1  2   3  4  次のページ


ビーブレイクシステムズ社 大森 洋行
著者プロフィール
ビーブレイクシステムズ社  大森 洋行
中堅システム開発会社にて、データベース検索ソフトの開発・導入コンサルティング・セミナー講師に従事。その現場の中で、Java及びオープンソースを用いたシステム開発は今後のシステム開発の主流になると考え、それらを独学で学ぶ。本格的にそれらを用いた開発に携わるため、ビーブレイクシステムズに入社。現在、データ項目やその流れの分析に重点をおきながら、Javaやオープンソースを用いたシステム開発に携わる。


INDEX
第7回:エディタの拡張
  はじめに
拡張ポイント
  エディタ・アクションの追加
  クラスを作成し、エディタ・アクションを追加
Eclipse実践プラグイン開発
第1回 Eclipseとプラグイン
第2回 プラグインの配布とインストール
第3回 基本的なGUIコンポーネントの利用
第4回 JFaceのGUIコンポーネント
第5回 メニューとポップアップ・メニューの拡張
第6回 ビューの拡張
第7回 エディタの拡張
第8回 パースペクティブの拡張
第9回 プロパティと設定の拡張
Eclipseが提供するBIとレポーティングツール
第1回 インストールからはじめるEclipse BIRT
第2回 データベースのデータをレポートに出力しよう
第3回 レポートを作成しよう
第4回 スクリプティング機能・Tomcatでのプレビュー・レポートエンジンを使用したレポート出力
Eclipse3ではじめるJava Webアプリケーション開発
第1回 Eclipse3の概要とインストール
第2回 Eclipse3の基本機能
第3回 Eclipse3の基本操作を憶えよう
第4回 Eclipseの便利な機能
第5回 Webアプリケーションの開発(1)〜JSP作成〜
第6回 Webアプリケーションの開発(2)〜サーブレットの作成〜
第7回 データベースの利用
第8回 フレームワークの利用
第9回 O/Rマッパーの利用
第10回 JUnitの利用
第11回 Antの利用
第12回 CVSの利用(1)
第13回 CVSの利用(2)
Eclipse WTPによる標準開発ツールの提供
第1回 Eclipse WTPの概要とインストール
第2回 Eclipse WTPでHello World
第3回 Eclipse WTPのDB系ツールを使う
第4回 Eclipse WTPのエディタとその他のツール

人気記事トップ10

人気記事ランキングをもっと見る