今回はアプリケーション実行時にスプラッシュ・スクリーンが表示されるようにしてみます(一覧)。 これには「Splash Plugin」を使用します。
Splash Plugin をインストールする
Splash Plugin をインストールするには Griffon プロジェクトのルートフォルダ上で以下のコマンドを実行します:
griffon install-plugin splash
Splash Plugin をインストールするだけで以下のような画像がスプラッシュ・スクリーンとして表示されるように設定されます。 Griffon 0.9.5 を使ってる場合は「追記」参照:
Griffon アプリケーションのライフサイクル Overview
さて、スプラッシュ・スクリーンにデフォルトの画像というのは素っ気ないので独自の画像を使えるようにしてみよう。 と思って「Splash Plugin」のドキュメントを読んでみても、説明が簡潔すぎてどう設定すればいいのか一見して不明。 で、プロジェクト内のファイルをあれこれ見ていると、
- $basedir/griffon-app/lifecycle/Initialize.groovy
ファイル内にスプラッシュ・スクリーンの設定っぽいコードが書かれているのを発見。 「Splash Plugin」をインストールした際にこのコードも追加されたようです*1。 独自のスプラッシュ・スクリーンを使うには、このファイルに設定を書けばよいようです。 まぁ、それは次節に回すことにして、ここでは Griffon アプリケーションのライフサイクルを概観しておきましょう。
Griffon アプリケーションには以下の4つのフェーズ(アプレットの場合は5つ)からなるライフサイクルがあります:
フェーズ | 説明 | Splash プラグインの処理 |
---|---|---|
Initialize | アプリケーションのインスタンス化 設定の読み込み |
画像の設定 スプラッシュ・スクリーンの表示 |
Startup | 開始時の MVC グループをインスタンス化 | |
Ready | Ready フェーズ後にアプリケーション・フレームを表示 | スプラッシュ・スクリーンの破棄 |
Shutdown | アプリケーションの終了 | |
Stop | アプレットの終了(アプレットのみ) |
ユーザーがアプリケーションを使用できる状態はこれらのフェーズには含まれていません。 「Initialize」、「Startup」、「Ready」フェーズはユーザーがアプリケーションを実行して使用できるようになるまでのフェーズ、「Shutdown」、「Stop」はユーザーがアプリケーションを終了した後のフェーズです。
「$basedir/griffon-app/lifecycle」フォルダ下には
- Initialize.groovy
- Startup.groovy
- Ready.groovy
- Shutdown.groovy
- Stop.groovy
という .groovy スクリプトがありますが、これらの内容は対応する名前のフェーズ時に実行されるようです。 まぁ、Griffon アプリケーションのライフサイクルに関しては次回にもう少し詳しく見ることにしようかと。
スプラッシュ・スクリーンに独自の画像を使う
さて、では独自の画像をスプラッシュ・スクリーンとして使えるように設定してみましょう。 Griffon 0.9.5 を使ってる場合は「追記」参照。
画像ファイルの配置
まずはスプラッシュ・スクリーンとして使用したい画像ファイルを用意。 配置場所は「$basedir/griffon-app/resources」フォルダです。 例えば画像ファイルを splash-screen.png とすると、画像ファイルのパスは以下のようになります(「関数描画アプリケーション」の場合):
- FunctionPlotter/griffon-app/resources/splash-screen.png
画像ファイルはこんな感じに作ってみました:
Initialize.groovy
スプラッシュ・スクリーンの設定を行うファイルは
- FunctionPlotter/griffon-app/lifecycle/Initialize.groovy
です。 「Splash Plugin」をインストールした時点で必要なコードを適当にコメントアウトした形で追加してくれているので、「Setting a splash image」以下の必要な部分のコメントを外して、使用したい画像ファイルの名前(ここでは splash-screen.png)を設定しましょう:
def splashScreen = SplashScreen.getInstance() // Setting a splash image URL url = this.class.getResource('splash-screen.png') splashScreen.setImage(url) // Setting Status Text //SplashScreen.getInstance().showStatus("Initializing the Controller") splashScreen.splash() splashScreen.waitForSplash()
これで、普通に Griffon アプリケーションを実行すれば設定した画像がスプラッシュ・スクリーンとして表示されるはずです。
追記
Griffon 0.9.5 では、設定方法がかなり変わっているようです。 Griffon 0.9.5 に対応する splash プラグインは 0.3 です:
- 「splash」 Startup splash screen
プラグインのインストール方法は同じで
griffon install-plugin splash
を実行するだけですが、それだけではスプラッシュ・スクリーンは表示されず、
- $basedir/griffon-app/lifecycle/Initialize.groovy
に以下のコードを追加する必要があります(以前は自動で対応するコードを追加してくれてました)。
SplashGriffonAddon.display(app)
スプラッシュ・スクリーンの画像を変更したい場合は、
- $basedir/griffon-app/conf/Config.groovy
に次のように画像ファイルを指定します(「mysplash.jpg」という画像ファイルを表示したい場合):
splash.image = 'mysplash.jpg'
ただし、Griffon 0.9.5, splash 0.3 で試したところ、スプラッシュ・スクリーンは表示されるものの、アプリケーションが起動してもそれが閉じないという悲しい自体に・・・(実行環境によるかも)
Javaによる画像処理プログラミング (I・O BOOKS)
- 作者: 赤間世紀
- 出版社/メーカー: 工学社
- 発売日: 2007/01
- メディア: 単行本
- 購入: 1人 クリック: 3回
- この商品を含むブログ (5件) を見る
*1:同様に同フォルダ内の Ready.groovy ファイルにも1行だけコードが追加されています。