UJMLサンプル014:コンポーネントの利用(背景)(2006/02/03)
まだインサイドUJMLでは解説していないが、UJMLではコンポーネント化し、内部の実装をカプセル化することができる。つまり、誰かが便利なもの(コンポーネント)を公開したら、他の人も簡単に利用できる可能性が多いにあるということだ。PHPでもJAVAでも非常に便利なコンポーネントが無償で公開されているため、多くのひとがそれらを利用し開発時間を大幅に短縮することができている。それと同じことがUJMLでも起こりうる。
UJMLではコンポーネントのことを「ステートマシーン」と呼ぶらしい。
ちなみにSDKのサンプルにもいくつかステートマシーンが入っている。これからこれらの使い方を紹介する。サンプルのcomponentsフォルダには以下のようなファイルがある。
background.ujms→例えばこれは背景描画
datetime.ujms
listbox.ujms
messagebox.ujms
padbuttons.ujms
screenpane.ujms
scrollbar.ujms
scrollmenu.ujms
scrolltextbox.ujms
uicinclude.ent
この中には、背景描画、リストボックス、メッセージボックスといった非常に便利なものがある。それぞれ、関数を呼び出すことで使うことができる仕組みだ。
早速使ってみる。記念すべき第一回なので、まずは簡単なものから。
背景を描画する。
これには、background.ujmsを使う。このファイルはENTITYとしてuicinclude.entをincludeしているので、このentファイルも必要だ。
background.ujmsの内部では、
「スクリーンサイズと同じ<box>エレメントを作成し、指定された色で塗りつぶすという処理を行うようになっている。」
使う側は↑のプログラムを自分で作ることなく、簡単な関数の呼び出しで利用することができるのだ。
以下はそのソースコード。画面の背景を青で描画するのだ。
実に簡単だ、HELLO WORLD並だ!16行で済んだ。
---コード
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 1.5//EN"
"http://www.uievolution.com/dtd/ujml-1.5.dtd" [
]>
<!--背景のみを表示する。background.ujmsを使います。-->
<ujml>
<application>
<state-machines>
<include file="components/background.ujms" state-machine="Background" />
</state-machines>
<script>
// 背景を指定色で描画、1行で済んだ!
Background.init(&_COLOR_BLUE;, true);
</script>
</application>
</ujml>
コメント