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.kino.plugin.samples.rcp.view1", IPageLayout.TOP,
      IPageLayout.RATIO_MAX, IPageLayout.ID_EDITOR_AREA);
}

("nu.mine.kino.plugin.samples.rcp.view1"というIDのビューをパースペクティブにセット、の意味)

これらはだいたい初回のウィザードで自動生成されます。

実際にやってみる。

01.png

下記の通り入力して次へ

02.png

サンプルのテンプレートに「Hello RCP」を選択して次へ

03.png

最後に「Add branding」を選択して、終了。

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アプリケーションは以下よりダウンロードできます。

ソースコード(ViewVC)

いよいよ実行

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

05.png

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

06.png

ビューをパースペクティブに配置する

次にビューを作成し、そのビューを先ほど自動生成されたパースペクティブに配置します。

まずはビューを作成

まずはビューの定義です。プラグインのマニフェストエディタの「Extensions」タブより「Add...」を押下して拡張ポイントの定義を追加します。拡張ポイントは「org.eclipse.ui.views」を選択し「Finish」を押下します。

07.png

さらに エディタのorg.eclipse.ui.views を右クリックし、view を選択してビューを追加します。

08.png

マニフェストエディタにビューが追加されるので、エディタの右側のところで下記の通り入力します。

09.png

次にビュークラスを作成するのですが、上記の「class*:」をクリックするとクラスを作成するダイアログが立ち上がります。とりあえずデフォルト値で「Finish」siteクラスを作成しておきます。

次にパースペクティブにビューを追加

次に、既存のパースペクティブのクラス(nu.mine.kino.plugin.samples.rcp.Perspective)に先のビューを追加します。

public class Perspective implements IPerspectiveFactory {
  public void createInitialLayout(IPageLayout layout) {
    layout.setEditorAreaVisible(false);
    layout.addView("nu.mine.kino.plugin.samples.rcp.view1",
        IPageLayout.LEFT, 0.5f, IPageLayout.ID_EDITOR_AREA);
  }
}

以上で完成です。またまたマニフェストエディタから「Launch an Eclipse application」を選択すると、下記のようにビューが追加されました。

10.png

ここまでのソースコードは以下よりダウンロードできます。

ソースコード(ViewVC)

メニューバーを配置する

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以降)

現在のアクセス:13682


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