Eclipse RCP アプリケーションを独自ブランド化する

Eclipse の「製品構成」機能を理解し、使用する

この記事は、Eclipse の「製品構成 (Product Configuration)」機能と PDE (プラグイン開発環境) を利用して、RCP(Rich Client Platform) アプリケーションを皆さん独自のブランドの製品としてパッケージし、管理する方法についてのガイドラインを、順を追って説明します。スプラッシュ画面やアイコン・ファイルの色やサイズといった一般的な概念の他に、この記事では「製品構成」機能を利用したブランド化の高度な側面についても紹介します。具体的には、RCP実行可能ファイルとその構成ファイル、プログレス・バーとプログレス・メッセージ、RCP ウィンドウ画像、About ダイアログとウェルカム・ページ(つまり製品の紹介) などについて説明します。この記事を読むことで、Eclipse プラットフォームとは独立の、配布可能な製品として RCPアプリケーションをカプセル化するための主要なスキルを身につけることができます。

Xing Xing Li (lixx@cn.ibm.com), Software Engineer, IBM

Xing Xing LiXing Xing Li は 2004 年に、中国の北京にある IBM China Software Development Lab に IBM Lotus のソフトウェア・エンジニアとして入社しました。彼の専門は、Eclipse プラットフォームと Java 技術に関するソフトウェア開発とテストです。彼はユーザー・インターフェースの設計やデザイン・パターン、アルゴリズムの研究にも関心を持っています。彼は Chongqing University でコンピューター・サイエンスの修士号を取得しています。



Ying Xi Zhao (lois_alert@sohu.com), Software Engineer, MichaelDKelly.com

Ying Xi ZhaoYing Xi Zhao は 2006年から IBM Lotus 製品に貢献しています。彼女は Wistron Information Technology and Services Corp., China のソフトウェア・エンジニアです。彼女の専門は、Java および Eclipse ベースのソフトウェア開発とテスト、そしてその他のオープンソース技術です。彼女は中国の吉林省の出身であり、時間のあるときには読書や登山、写真、コレクションなどを楽しんでいます。



2007年 5月 08日

Eclipse V3.1 で「製品構成 (Product Configuration)」機能が導入される以前は、RCP 開発者は、必要なプラグインとともに彼らのRCP プロジェクトをいかに効果的かつ効率的にパッケージし、配布するかという問題に直面していました。この問題は、実はこの RCP アプリケーションを利用してくれるかどうかに関わる問題なのです。なぜなら、基本的にこの問題への対応によって彼らのソフトウェアの配布方法とユーザビリティーが決まるからです。EclipseV3.1 の新しい「製品構成」機能のおかげで、彼らのアプリケーションに依存関係やブランド化要素を容易にラップできるようになりました。この記事では、サンプルのRCP アプリケーション (Frog Across River というゲーム) を使いながら、Eclipse の「製品構成」機能を活用するための方法の詳細を説明します。

この記事を最大限に利用するためには、Eclipse 開発環境とサンプル・コードが必要です。まだ Eclipse を持っていない人は、下記をダウンロードしてください。

  1. JRE V1.5.0 あるいはそれ以上。Eclipse が動作するためには Java ランタイム環境が必要です。
  2. Eclipse Platform あるいは IBM Rational Software Development Platform V7.X
  3. 「ダウンロード」セクションにあるサンプル・コード

前提条件: RCP アプリケーション

Eclipse の「製品構成」機能を利用するためには、既存の RCP アプリケーションが必要です。その RCP アプリケーションを基に、皆さんの製品を作成します。このセクションでは、RCPアプリケーションとして、Frog Across River というゲームを下記の手順に従って開発します。この RCP アプリケーションは、プラグイン・プロジェクトとしてorg.eclipse.core.runtime.applications エクステンションを拡張し、また皆さんの独自製品への入り口としての役割を果たします。あるいは、このセクションをスキップすることもできます。その場合はこの記事に添付のファイルをダウンロードして(「ダウンロード」を参照) プロジェクト全体をインポートし、後のシナリオで使用するサンプルの RCP アプリケーションを入手します。

サンプルの RCP プラグインを作成する

まず、以下の手順でプラグイン・プロジェクトを生成します。Eclipse を起動し、プラグイン開発パースペクティブに移ります (Window > Open Perspective > Other... > Plug-in Development を選択します)。

  1. Eclipse メニューから File > New > Project... > Plug-in Development > Plug-in Project を選択し、そして Next をクリックします。
  2. Plug-in Project ウィザードのページで、プロジェクト名として com.example.zyx と入力し、Next をクリックします。
  3. Plug-in Content ウィザードのページで、すべてのデフォルト設定を受け入れ、「Would you like to create a rich client application?」オプションに対してYesをクリックし、そして Next をクリックします。
  4. Templates ウィザードのページで Hello RCP テンプレートを選択し、Finish をクリックします。そうすると、ワークスペースに com.example.zyx という名前のプロジェクトが見つかるはずです。

RCP ゲームのソース・コードをインポートする

com.example.zyx.zip からすべての Java ソース・ファイル (.java ファイル) をワークスペースにコピーし、既存の Java ソース・ファイルと置き換えます。

  • Application.java
  • ApplicationActionBarAdvisor.java
  • ApplicationworkbenchAdvisor.java
  • ApplicationWorkbenchWindowAdvisor.java
  • Perspective.java
  • GameView.java

この RCP プロジェクトは GUI ビューに Frog Across River ゲームを作成します。これによってメニュー・バーとキャンバスで入力用にマウスとキーボードを使えるようになります。この設計アーキテクチャーを図1 に示します。

図 1. RCP アプリケーションのクラス図
RCP アプリケーションのクラス図

これらのうち、Application.java は IPlatformRunnable インターフェースを実装する必要があります。これは、plugin.xml ファイルがorg.eclipse.core.runtime.applications の拡張ポイントを拡張しているためです。これはつまり、SWT 表示の作成とワークベンチの起動を行う、IPlatformRunnable の run() メソッドを実装する必要があるということです。

リスト 1. Application.java
public class Application implements IPlatformRunnable {
    public Object run(Object args) throws Exception {
        ...
        int returnCode = PlatformUI.createAndRunWorkbench(display, 
                         new ApplicationWorkbenchAdvisor());
        ...
    }
}

ApplicationActionBarAdvisor.java は、メニュー・バーを作成し、表示するために使われます。

リスト 2. ApplicationActionBarAdvisor.java
public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
    ...
    private IWorkbenchAction exitAction;
    private IAction gameAction;
    ...
    protected void fillMenuBar(IMenuManager menuBar) {
        IMenuManager viewMenu = new MenuManager("&Game","Game");
        menuBar.add(viewMenu);
         viewMenu.add(gameAction);
         viewMenu.add(exitAction);
    }
}

GameView.java は、この RCP ゲームの中核であり、画像をロードし、表示を描画し、ユーザー・アクション (マウス・イベントとキーボード・イベント) に応答し、そしてゲームのプロセス全体をコントロールします。

アニメーション中の画面のちらつきを抑えるために、ダブル・バッファー技術が使われます。なぜでしょう。JVM にアニメーションを表示するように命令すると、JVMは画面をクリアーし、ウィンドウを表示し、その画面をペイントし、そして再度画面を表示します。これはアプリケーションの表示品質を低下させます。ダブル・バッファーを利用することで、画面の外で画像をペイントしてからその画像を画面に表示できるため、パフォーマンスが向上します。

リスト 3. GameView.java
public class GameView extends ViewPart {
    ...
    public void createPartControl(final Composite parent) {
    ...
    canvas.addMouseListener(new MouseAdapter() {
        public void mouseDoubleClick(MouseEvent e) {
        
        }
    });
    canvas.addKeyListener(new KeyAdapter() {
        public void keyPressed(KeyEvent e) {
        ...
    }
    canvas.addPaintListener(new PaintListener() {
        public void paintControl(PaintEvent event) {
            final Image image = new Image(parent.getDisplay(), canvas.getBounds());
            final GC gcImage = new GC(image);
            ...
            event.gc.drawImage(image, 0, 0);
            ...
}

下記のコードを plugin.xml ファイルの中にコピーします。こうする理由は、この RCP ゲームが、ユーザーと対話動作する GUI としてビューを表示するためです。

リスト 4. plugin.xml
<extension point="org.eclipse.ui.views">
      <category id="com.example.zyx.browser"
                name="Browser Example"/>
      <view id="com.example.zyx.GameView"
            name="Browser"
            icon="icons/window16x16.gif"
            class="com.example.zyx.GameView"
            category="com.example.zyx.browser"/>
</extension>

Eclipse で RCP ゲームを起動する

Eclipse で RCP ゲーム・アプリケーションを実行するためには、plugin.xml の Overview タブに切り替え、Launch an Eclipse application をクリックします。そうすると新しい Eclipse アプリケーションを起動するための構成が作成され、この RCP ゲームを実行した結果を見ることができます(図 2)。

図 2. サンプル RCP アプリケーションを実行する


製品構成を作成する

ここでは、Frog Across River という RCP アプリケーションを製品としてラップするための、製品構成ファイル (.product) を作成します。このファイルはどのプロジェクト、あるいはフォルダーの中にも置くことができます。

製品構成ファイルを生成するためには、File > New > Other > Plug-in Development > Product Configuration を選択し、そして Next をクリックします。製品構成 (Product Configuration) ウィザードのページが表示されたら、その親フォルダーとして com.example.zyx プラグイン・プロジェクトを選択し、そのファイル名として myProduct.product と入力し、「Create a configuration file with basic settings」を選択し、そして Finish をクリックします (図 3)。

図 3. 新しい製品構成 (Product Configuration) を作成するためのウィザード
新しい製品構成 (Product Configuration) を作成するためのウィザード

構成を行う

このセクションでは、RCP アプリケーションと共に公開された製品を、.product ファイルを作成した後で定義し、カスタマイズする方法を紹介します。製品構成を設定する前に、いくつかのファイルとフォルダーをcom.example.zyx.zip からプラグイン・プロジェクトにインポートする必要があります。図 4 にはそれらがリストされています。

図 4. インポートされたリソース
インポートされたリソース

下記の表は、これらのリソースの説明です。

表 1. リソースの説明
ファイル名あるいはフォルダー名機能
splash.bmp製品が起動する際に表示されます
plugin_customization.iniデフォルトのプリファレンス値を定義します
plugin_customization.propertiesplugin_customization.ini ファイル用の外部化されたストリングを含んでいます
plugin.propertiesplugin.xml ファイルから変換するための値を含んでいます
intoContent.xmlウェルカム・ページを構成します
contentウェルカム・ページのリソースを含んでいます
icon便利なアイコンなどを含んでいます
image便利な画像リソース (ウィンドウ画像など) を含んでいます
about.htmlホスト・プラグインに関する情報を提供します。(プラグインはこのファイルを提供する必要があります)

Overview タブ

まず、Overview タブをクリックします (図 5)。ここで Product Definition (製品定義) を設定します。製品定義は、Product Nameと Product ID、そして Product ID と関連付けるための Application から構成されます。さらに、この製品構成単位がプラグインに基づくのかフィーチャーに基づくのかも、ここで指定されます。

図 5. Overview タブ
Overview タブ

Product Name は製品名を定義します。製品名はタイトル・バーに表示されます。Product Name のテキスト・フィールドに %productName と入力すると、ロケールに従って plugin.properties ファイルの中の値が自動的に参照されます。Product ID は製品 IDを定義し、アプリケーション ID と関連付けられます。Product ID の右にある New... をクリックします。Product Definition ウィンドウがポップアップしたら、Defining Plug-in として com.example.zyx を選択し、次にそれに関連付けられるアプリケーションとして com.example.zyx.application を選択し、そしてその製品 ID として product を使います。Finish をクリックして Overview タブに戻ります。「The product configuration is based on」セクションにある、plug-ins ラジオ・ボタンを選択します。

製品を起動すると、タイトル・バーに製品名が表示されます。これを下記に示します。

図 6. 製品のタイトル・バーに表示された製品名
製品のタイトル・バーに表示された製品名

Configuration タブ

Configuration タブをクリックします。ここでは製品の中に含まれる要素と構成ファイルを定義します。「Plug-ins and Fragments」セクションは、この製品の中にパッケージされるすべてのプラグインとフラグメントをリストします。

図 7. Configuration タブ
Configuration タブ

Plug-ins and Fragments のリストの右にある Add... をクリックし、次に com.example.zyx プラグインを選択し、そして OK をクリックします。Add Required Plug-ins ボタンをクリックすると、必要なすべてのプラグインとフラグメントが追加されます。「Configuration File」セクションは、製品のラインタイムの情報を設定するために使われます。このファイルの名前はconfig.ini にする必要があります。このファイル用のデフォルト設定を受け入れると、この製品がエクスポートされた時に configurationフォルダーにデフォルトの config.ini ファイルが生成されます。下記はこのファイルの内容の一例を示しています。

リスト 5. config.ini の内容
#Product Runtime Configuration File
osgi.splashPath=platform:/base/plugins/com.example.zyx
eclipse.product=com.example.zyx.product
osgi.bundles=org.eclipse.equinox.common@2:start,org.eclipse.update.configurator@3:start,
org.eclipse.core.runtime@start
osgi.bundles.defaultStartLevel=4

最初の行は、製品が起動した時に表示されるスプラッシュ画面の位置を決定します。2 番目の行は製品名を定義します。

最後の 2 行では、(プラグインが正常にインストールされ、解決された後に)StartLevelを使って製品がプラグインを起動します。つまり StartLevel は、こうしたコア・プラグインの起動シーケンスを定義します。スタート・レベルは負ではない整数として定義されます。製品は、スタート・レベル 0のプラグインを起動します。その後はスタート・レベル 1 のすべてのプラグインの番です。このプロセスは、指定されたスタート・レベル (defaultStartLevel あるいは osgi.startLevel) に達するまで終了しません。このサンプル config.ini ファイルでは、defaultStartLevel は 4 です。また osgi.startLevel プロパティーのデフォルト値は 6 です。

Launcher タブ

Launcher タブをクリックします。ここでは Program Launcher と Launching Arguments を設定します。

図 8. Launcher タブ
Launcher タブ

Program Launcher は、ランチャーの名前とアイコンを指定するために使われます。ランチャーは Windows® では .exeファイルの形式であり、製品をエクスポートした後にその製品を起動する際に使われます。Launcher Name のテキスト・フィールドに FrogAcrossRiver と入力します。ラジオ・ボタン、Use a single ICO file containing 7 images as specified above をクリックし、次に Browse... をクリックしてナビゲートし、icons フォルダーの 7Images.ico ファイルを選択します。アイコンとしては、独自のアイコン・ファイルを生成して使うこともでき、あるいはSpecify separate BMP images をクリックして単純に既存の BMP 画像を活用することもできます。

.ico ファイルはコンテナーです。この中には、さまざまなサイズと色モードを持つ、ホスト・アプリケーションに必要な画像ファイルが含まれています。Windowsはユーザーの表示設定に基づいて、使用する必要がある画像を選択します。もし適切なサイズ、あるいは色モードがアイコンに含まれていない場合には、Windowsはそれに最も近いサイズと解像度を使って適切なアイコンを描画します。

表 2. アイコンのプロパティー
アイコンのプロパティー使い方
サイズ16x16 ピクセル表示が「詳細」あるいは「小さいアイコン」モードの場合、プログラム・ウィンドウや Windows タスク・バー、スタート・メニュー、Windowsエクスプローラーあるいはマイコンピューターなどの上部左隅で使われます。
24x24 ピクセルこれは Windows XP のスタート・メニューの左側で使われます。
32x32 ピクセル表示が「アイコン」表示モードの場合、Windows デスクトップと Windows エクスプローラーで使われます。
48x48 ピクセル表示が「大きいアイコン」モードの場合に使われます。
色の深さ4 ビット (16 色)低画質であり、セーフモードで使われます。
8 ビット (256 色)中画質であり、16 ビット以上の色の深さの表示で使われます。
32 ビット (24 ビット・フルカラーにプラス 8 ビットのアルファー値)高画質であり、エッジはスムーズにアンチエイリアス処理され、またオプションとして半透明の影を持つことができます。Windows XP でサポートされています。

Launching Arguments は製品に対して、デフォルトのプログラム引数と VM 引数を提供します。これによって、エクスポートされたフォルダーのルートにランチャー名と同じ名前を持つ.ini ファイルが生成され、これらの引数が記録されます。Program Arguments のテキスト・フィールドに -console と入力すると、その製品が起動された時にコンソール・ウィンドウが開きます。製品をエクスポートした後で exported フォルダーを調べると、下記のように.exe ファイルと .ini ファイルがあることがわかります。

図 9. 実行可能ファイルと構成ファイル
実行可能ファイルと構成ファイル

スプラッシュ画面

スプラッシュ画面は、製品が起動した時に表示されます。このファイルはルート・フォルダーにある必要があり、また splash.bmp という名前である必要があります。そうでないと、製品は実行時にこのファイルを見つけることができません。

図 10. Branding タブでスプラッシュ画面を構成する
Branding タブでスプラッシュ画面を構成する

Plug-in テスト・フィールドの右にある Browse... をクリックし、スプラッシュ・ファイルが置かれているプラグイン・プロジェクトを選択します。プログレス・バーとプログレス・メッセージは、スプラッシュ画面の処理状況を示すために使われます。plugin_customization.iniファイルの中に下記の値を追加します。

org.eclipse.ui/SHOW_PROGRESS_ON_STARTUP=true

次に、plugin.xml ファイルの製品エクステンション・セクションに下記のプロパティーを追加します。

<property name="preferenceCustomization" value="plugin_customization.ini">
</property>

次に Add a progress bar を選択します。x-offsety-offset0280 を入力し、widthheight45515 を入力します。次に Add a progress message を選択します。x-offsety-offset7220 を入力し、widthheight44120 を入力します。Text Color でプログレス・メッセージ用の適当な色を選択します。製品を起動すると、スプラッシュ画面が表示され、そしてプログレス・バーとプログレス・メッセージが表示されます。

図 11. 製品が起動する際にプログレス・バーとプログレス・メッセージが表示される
製品が起動する際にプログレス・バーとプログレス・メッセージが表示される

ウィンドウ画像

アプリケーション・ウィンドウ用の画像は、このセクションで構成されます (図 12)。これらの画像は GIF フォーマットである必要があります。サイズが16x16 の画像はウィンドウとタスク・バーの上部左隅に表示されます。32x32 の画像は Alt+Tab によるアプリケーション切り替えの際に表示されます。

図 12. Branding タブでウィンドウ画像を構成する
Branding タブでウィンドウ画像を構成する

プロジェクトのアイコン・フォルダーの中にある画像の中から、16x16 と 32x32 の適当な画像を Browse... ボタンを使って定義します。次に plugin.xml ファイルを調べ、構成の中に下記の宣言が含まれていることを確認します。

<property name="windowImages" value="icons/alt_window_16.gif,icons/alt_window_32.gif">
</property>

製品を起動すると、これらの画像が図 13 のように表示されます。

図 13. Alt+Tab によるアプリケーション切り替えで表示される 32x32 の画像
Alt+Tab によるアプリケーション切り替えで表示される 32x32 の画像

About ダイアログ

About ダイアログは、左側に描画される about 画像と、その製品を簡単に紹介する about テキストで構成されます。このセクションでは、この2 つの処理方法を説明します。

図 14. Branding タブで About ダイアログを構成する
Branding タブで About ダイアログを構成する

Image テキスト・フィールドの右にある Browse... をクリックし、アイコン・フォルダーから GIF ファイルを選択します。

about テキストを定義する方法は 2 つあります。1 つは Text フィールドにテキストを直接入力する方法です。もう 1 つは plugin.propertiesファイルで鍵と値のペアを定義し、その鍵を Text フィールドで参照する方法です。ここでは 2 番目の方法を利用するので、Text フィールドに単純に%productBlurb と入力します (図 14)。productBlurb は、下記のように plugin.properties ファイルで定義される鍵です。

リスト 6. plugin.properties
pluginName=Frog Across River
providerName=Xing Xing Li and Ying Xi Zhao
productName=My Product
productBlurb=My Product based on Eclipse Platform\n\
\n\
Version: 1.0.0\n\
Build id: M20061124-1422 \n\
\n\
Welcome to my Product based on Eclipse Product Configuration. \n\
A RCP game is encapsulated in it with customized branding elements.\n\
\n\
This product is developed by Xing Xing Li and Ying Xi Zhao \n\
(c) Copyright by authors. All rights reserved\n\

About ダイアログ用のメニュー項目が製品のメニュー・バーに表示されるように (例えば Help > About など)、アクションを追加する必要があります。ApplicationActionBarAdvisor.java ファイルを開き、コメント・タグを削除して下記のコードを有効にします。

リスト 7. ApplicationActionBarAdvisor.java
public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
    ...
    private IWorkbenchAction aboutAction;
    protected void makeActions(final IWorkbenchWindow window) {
        ...
        aboutAction = ActionFactory.ABOUT.create(window);
        register(aboutAction);
        ...
    }
    protected void fillMenuBar(IMenuManager menuBar) {
        //Help
        MenuManager helpMenu = new MenuManager("&Help",IWorkbenchActionConstants.M_HELP);
        menuBar.add(helpMenu);
        // About > Help
        helpMenu.add(new Separator());
        helpMenu.add(aboutAction);
        ...
    }
}

製品を起動して Help > About を選択すると、About ダイアログが表示されます。

図 15. About ダイアログの例
About ダイアログの例

ウェルカム・ページ

ウェルカム・ページは、その製品の情報を紹介するために使われます。これは新しいユーザーにとって特に便利です。ウェルカム・ページでは、すべての機能や使い方、製品についてのヒントなどを伝えることができます。

図 16. Branding タブでウェルカム・ページを構成する
Branding タブでウェルカム・ページを構成する

その製品でウェルカム・ページを有効にするためには、org.eclipse.ui.introorg.eclipse.ui.intro.config の 2 つを拡張します。そのために下記のコードを plugin.xml ファイルに追加します。

リスト 8. plugin.xml で Intro を構成する
<extension
         point="org.eclipse.ui.intro">
         <intro
               class="org.eclipse.ui.intro.config.CustomizableIntroPart"
               icon="icons/alt_window_16.gif"
               id="com.example.zyx.intro">
      </intro>
      <introProductBinding
            introId="com.example.zyx.intro"
            productId="com.example.zyx.product">
      </introProductBinding>
   </extension>
<extension
         point="org.eclipse.ui.intro.config">
      <config
            content="introContent.xml"
            id="com.example.zyx.configId"
            introId="com.example.zyx.intro">
            <presentation
               home-page-id="root">
            <implementation
                  kind="html"
                  os="win32,linux,macosx">
            </implementation>
         </presentation>
         </config>
   </extension>

次に、Help > Welcome を選択してメニュー・バーにアクションを追加します。ApplicationActionBarAdvisor.java ファイルを再度開き、下記のコードのコメント・タグを削除します。

リスト 9. ApplicationActionBarAdvisor.java
public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
    ...
    private IWorkbenchAction introAction;
    protected void makeActions(final IWorkbenchWindow window) {
         ...
        introAction = ActionFactory.INTRO.create(window);
        register(introAction);
    }
    protected void fillMenuBar(IMenuManager menuBar) {          
        ...
        helpMenu.add(introAction);
         ...
    }
}

製品を起動すると、次のようなウェルカム・ページが表示されます。

図 17. ウェルカム・ページの例
ウェルカム・ページの例

RCP 製品を公開する

公開する前にテストする

Overview タブに戻り、Testing セクションを見つけます。製品名やウィンドウ画像、about 画像、about テキストなどを変更した場合は、Synchronize リンクをクリックして変更を plugin.xml に反映させ、プラグイン・マニフェストを最新にします。製品をエクスポートする前に、Launch the product をクリックして製品をテストします。

Synchronize リンクの動作を次の例で説明しましょう。製品名を %productName から my product に変更し、次に Synchronize をクリックします。plugin.xml ファイルを調べ、製品名の値がmy product に変更されたことを確認します。確認が終わったら製品名を %productName に戻して Synchronize をクリックし、そして Launch the product をクリックすると、製品が起動します。

製品をエクスポートする

Overview タブで Exporting セクションを見つけます。そこには製品をエクスポートするためのリンクがあります。Eclipse Product export wizard をクリックします。ポップアップするエクスポート・ダイアログの中で、ルート・ディレクトリーとして MyProduct を指定し、宛先ディレクトリーとしてC:\export を指定します。

Finish をクリックしたら、C:\export\MyProduct ディレクトリーまでナビゲートしてエクスポートの結果を確認します。起動時の引数が記録されているFrogAcrossRiver.exe ファイルと FrogAcrossRiver.ini ファイルが見つかるはずです。また、FrogAcrossRiver.exeファイルのアイコンが思った通りのものであることも確認します。

図 18. エクスポートされた RCP 製品をファイル・システムの中で見る
エクスポートされた RCP 製品をファイル・システムの中で見る

JRE をインストールしてある場合は、FrogAcrossRiver.exe をダブル・クリックして製品を起動します。

おめでとうございます。これで皆さんの RCP アプリケーションを、製品として正常に構成し、公開することができました。

JRE

このヒントは、JRE 以外の OS で製品を公開する場合にも役立ちます。JRE をインストールしたプラットフォームを見つけ、その JRE ディレクトリーを、エクスポートした製品のルート・フォルダーにコピーします。これを下記に示します。

図 19. エクスポートした RCP 製品に JRE を追加する
エクスポートした RCP 製品に JRE を追加する

FrogAcrossRiver.exe をダブル・クリックすると、RCP 製品が正常に起動します。


トラブルシューティング

もし .ico ファイルが、指定のサイズあるいは色の深さを持つ必要な画像ファイルを含んでいないと、エラー・メッセージ、「[Program Launcher]The launcher may not get branded correctly, .ico file is missing its image.(ランチャーが正しくブランド化できなかった可能性があります。.ico ファイルに画像がありません)」が表示されます。同様に、無効な画像を .productファイルで指定してしまうと、警告メッセージ、「[About Dialog] Image: path/ImageName - is not apath to a valid file. (有効なファイルへのパスではありません)」が表示されます。

Program Arguments で -cleanを追加し、エクスポートされたフォルダーから製品を起動すると、スプラッシュ画面は表示されません。ただし Launch the product リンクから起動すると表示されます。


まとめ

この記事では、Eclipse の「製品構成」機能と PDE を利用して、皆さん独自のブランドの Eclipse 製品を作成し、パッケージ化するための方法を説明しました。スクリプトを使ってこれを行うこともできますが、ここで説明した方法の方が効果的かつ効率的に製品を作成でき、またブランド化に必要なすべての情報と要素を構成し、管理することができます。最も重要な点として、この記事ではEclipse の「製品構成」機能を活用することで、RCP の世界の持つ可能性を示しました。


ダウンロード

内容ファイル名サイズ
Sample jar filesos-eclipse-brand.example.zyx.zip45KB

参考文献

学ぶために

議論するために

  • 最新のEclipseSDK をダウンロードし、その「製品構成」機能を皆さんの RCP プロジェクトで試してください。
  • IBMalphaWorksに用意された最新のEclipse technology downloadsを調べてください。
  • IBM 製品の試用版をダウンロードし、DB2® や Lotus®、Rational®、Tivoli®、WebSphere®などのアプリケーション開発ツールやミドルウェア製品を実際に試してみてください。
  • 皆さんの次期オープンソース開発プロジェクトを IBM trial softwareを使って革新してください。ダウンロード、あるいは DVD で入手することができます。
  • Eclipse Foundation のOfficial Eclipse FAQsで RCP について学んでください。
  • Eclipse に関する質問を議論するための最初の場所として、Eclipse Platform newsgroupsがあります (このリンクをクリックすると、デフォルトの Usenet ニュース・リーダー・アプリケーションが起動し、eclipse.platformが開きます)。
  • Eclipse newsgroupsには、Eclipse を利用し、拡張することに関心を持つ人達のために、さまざまなリソースが用意されています。
  • developerWorks blogsからdeveloperWorks コミュニティーに加わってください。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source
ArticleID=248336
ArticleTitle=Eclipse RCP アプリケーションを独自ブランド化する
publish-date=05082007