Top / Eclipse / プラグイン開発のTIPS集 / RCP

概要

Eclipseのプラグインを勉強しているついでに、Eclipse3.0で導入されたRCPを使ってみました。RCPとはEclipseベース(ワークベンチベースっていったほうがいいかもしんない)のアプリケーションを作成するためのフレームワークです。今まではプラグインを作って、Eclipseにプラグインしてたわけですが、プラグインが単体で稼働するようになったと考えればよいと思います。 前々からEclipseをベースにして、開発ツール(WebSphereStudio?みたいなパターン)だけでなく普通のアプリケーションもこの上で構築できるんでないのってかんがえてたんですが、まさにそのためのフレームワークみたいですね。

手順はプラグインを作るのと基本的に一緒です。必ず作らなくちゃいけないモノは

です。

IPlatformRunnable? の実装クラス

IPlatformRunnable? の実装クラスはrunメソッドをオーバーライドすればよいようです。たぶんおきまりで、こんな感じ。

public Object run(Object args) throws Exception {
  // WorkbenchAdvisorの作成
  WorkbenchAdvisor advisor = new SampleWorkbenchAdvisor();
  Display display = PlatformUI.createDisplay();
  try {
    int ret = PlatformUI.createAndRunWorkbench(display, advisor);
    if (ret == PlatformUI.RETURN_RESTART) {
      return IPlatformRunnable.EXIT_RESTART;
    } else {
      return IPlatformRunnable.EXIT_OK;
    }
  } finally {
    display.dispose();
  }
}

WorkbenchAdvisor? のサブクラス

ワークベンチ(ウィンドウとか、外枠、みたいなイメージ)を構築する設定を行います。RCPアプリケーションはパースペクティブを一つ持つのですが、そのパースペクティブID(plugin.xmlで指定したID)を返すメソッドをオーバーライドします。

public String getInitialWindowPerspectiveId() {
  return "nu.mine.kino.sample.SamplePerspectiveFactory";
}

IPerspectiveFactory? の実装クラス

RCPアプリケーションで使用するパースペクティブを構築します。たとえばこんな感じ。

public void createInitialLayout(IPageLayout layout) {
  layout.addView("nu.mine.nu.sample.SampleView", IPageLayout.TOP,
      IPageLayout.RATIO_MAX, IPageLayout.ID_EDITOR_AREA);
}

("nu.mine.nu.sample.SampleView?"というIDのビューをパースペクティブにセット、の意味)

実際にやってみる。

01.png
02.png

最終的に以下のファイルができあがりました。

fileSampleApplication.java
fileSamplePerspectiveFactory.java
fileSampleWorkbenchAdvisor.java
fileplugin.xml

いよいよ実行

いよいよ実行します。ランタイムワークベンチを作成して、プラグインを起動するようにやればよいのですが、ポイントは実行するプログラムを自分が作成した、IPlatformRunnable? の実装クラスにすることです。

05.png

また、プラグインおよびフラグメントタブ内で、自分が作成したプラグインと依存しているプラグインだけにチェックを入れておきます*1

06.png

以上でランタイムワークベンチを起動すると、何にもビューを配置していない空のアプリケーションが起動しました!!

07.png

コンソールに"nu.mine.nu.sample.SampleView?"なんてビューねえよって出てますが、作ってないですからね。拡張ポイントから拡張してビューを作れば表示されました。。

products拡張ポイントについて

EclipseのサイトにBranding your applicationという記事が出ていました。ようするにEclipseベースのRCPアプリケーションにスプラッシュスクリーンを追加したり、独自のアイコンのExeファイルを作成したり、〜についてなどというバージョン表示のダイアログを追加するなど、製品アプリケーションのようにするための方法を説明しています。

さてorg.eclipse.core.runtime.applications 拡張ポイントでアプリケーションを作成しましたが、上のような様々な機能を追加するにはapplications拡張ポイントに加え、更に別の拡張ポイント、org.eclipse.core.runtime.products拡張ポイントを使用します。

<extension id="product" <-このIDを指定しないと、使えない!注意!!
      point="org.eclipse.core.runtime.products">
  <product
    name="%productName"
    application="nu.mine.kino.sample.SampleApplication">
    ↑[プラグインのID].[org.eclipse.core.runtime.applicationsポイントのid属性]
</extension>

あとはpropertyタグでさまざまなプロパティを設定することで機能を追加していきます。設定できるプロパティ値はRCPをBrandingするときに使うプロパティ値RCPの製品情報などの画面を追加するを参照してください。


この記事は

選択肢 投票
おもしろかった 4  
そうでもない 0  

Top / Eclipse / プラグイン開発のTIPS集 / RCP

現在のアクセス:20684


*1 すべてを非選択にして、自分のプラグインを選択、でAdd Required Plug-insをクリック

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS