Top / Eclipse / プラグイン開発のTIPS集 / RCP(Eclipse3.4以降)

概要

2010/01/17
注記 かつて Eclipse/プラグイン開発のTIPS集/RCP のページを書きましたが、Eclipseも3.5になりRCP開発もいろいろと便利になりました。そこでいくつか内容をUpdateして3.5向けに書き直してみました。

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

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

です。

IApplication の実装クラス

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

public Object start(IApplicationContext context) throws Exception {
  Display display = PlatformUI.createDisplay();
  try {
    int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
    if (returnCode == PlatformUI.RETURN_RESTART)
      return IApplication.EXIT_RESTART;
    else
      return IApplication.EXIT_OK;
  } finally {
    display.dispose();
  }
  
}

WorkbenchAdvisor? のサブクラス

RCPアプリケーションはパースペクティブを一つ以上持つのですが、そのデフォルトのパースペクティブID(plugin.xmlで指定したID)を返すメソッドをオーバーライドします。

private static final String PERSPECTIVE_ID = "nu.mine.kino.plugin.samples.rcp.perspective";
public String getInitialWindowPerspectiveId() {
  return PERSPECTIVE_ID;
}

WorkbenchWindowAdvisor? のサブクラス

ワークベンチ(ウィンドウとか、外枠、みたいなイメージ)を構築する設定を行います。RCPのアプリケーション起動時に呼び出されるメソッドで、起動時のウィンドウサイズやツールバーを出すかなどの設定を行います。

public void preWindowOpen() {
  IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
  configurer.setInitialSize(new Point(400, 300));
  configurer.setShowCoolBar(false);
  configurer.setShowStatusLine(false);
}

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
03.png
04.png

ウィザードに従って作成するだけで下記のようなplugin.xmlが自動生成されます。

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension
     id="application"
     point="org.eclipse.core.runtime.applications">
    <application>
     <run
         class="nu.mine.kino.plugin.samples.rcp.Application">
     </run>
    </application>
   </extension>
   <extension
     point="org.eclipse.ui.perspectives">
    <perspective
      name="RCP Perspective"
      class="nu.mine.kino.plugin.samples.rcp.Perspective"
      id="nu.mine.kino.plugin.samples.rcp.perspective">
    </perspective>
   </extension>
   <extension
     id="product"
     point="org.eclipse.core.runtime.products">
    <product
      application="nu.mine.kino.plugin.samples.rcp.application"
      name="Hello RCP">
     <property
         name="windowImages"
         value="icons/alt_window_16.gif,icons/alt_window_32.gif">
     </property>
    </product>
   </extension>
</plugin>

ここまで作成したRCPアプリケーションは以下よりダウンロードできます。

http://www.masatom.in/viewvc/Examples/branches/V20100117_01/nu.mine.kino.plugin.samples.rcp/?pathrev=150

いよいよ実行

いよいよ実行します。マニフェストエディタのLaunch an Eclipse application をクリックします。

05.png

何にもビューを配置していない空のアプリケーションが起動しました!!

06.png

products拡張ポイントについて

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

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

<extension id="product"
     point="org.eclipse.core.runtime.products">
  <product application="nu.mine.kino.plugin.samples.rcp.application" name="Hello RCP">
     <property name="windowImages"
             value="icons/alt_window_16.gif,icons/alt_window_32.gif">
     </property>
  </product>
</extension>

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


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  
Top / Eclipse / プラグイン開発のTIPS集 / RCP(Eclipse3.4以降)

現在のアクセス:13681


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