
Open Laszloを使って作るリッチクライアント(3)
Open Laszloのイベントコンポーネントを
カスタマイズする
浅野守
2005/6/7
本連載ではオープンソースのリッチクライアント製品として注目を集める「Open Laszlo」を解説している。Laszloはサーバサイドで生成したコンテンツをFlashとしてクライアントのWebブラウザに配信するもので、Macromedia社のFlexと非常によく似たアーキテクチャを採用。前回「オープンソースのリッチクライアントを使おう」、「Open Laszloで日本語を表示してみよう」の記事で日本語化できた読者はイベントコンポーネントをカスタマイズしてみよう。
■ イベント処理(続き)
前回(参照:Open Laszloで日本語を表示してみよう)のイベント処理では、イベントハンドラーの簡単な例を紹介しました。
前回のリスト1を見ても分かるように、OpenLaszloのイベント処理の記述方法はJavaScriptのイベントハンドラーに似た形式と、メソッド自体をインスタンス(viewやbuttonなどのオブジェクト)のイベントハンドラーとして記述する方法があります。
例えば、 以下のコードでは、view の onclickイベントハンドラーとしてdoClick()メソッドが呼び出されますが、これは、JavaScriptのイベントハンドラーの記述方法とそっくりです。
<canvas> |
これとは別に最初からメソッドをイベントハンドラーとして記述することが可能です。下記のコードではメソッドをあらかじめ特定のイベントonclickのイベントハンドラーとして定義しています。
<canvas> |
・ 基本イベント
buttonコンポーネントに対するonclickイベントの存在は容易に想像がつきますが、ではこのほかにはどんなイベントがあるのでしょうか。各コンポーネントがサポートしているイベントはLZX
Reference Manualに記述されています。LZX Reference ManualはOpenLaszlo explorerのサイドバーにあるDocumentationメニューから表示することができます。

・ onイベント
コンポーネントの属性値が変化するとOpenLaszloはON+属性名イベントを発生させます。例えば、windowコンポーネントのx属性値が変化すると(つまりwindowがx軸に移動すると)onxイベントが発生します。
<canvas
width="200"> |
上記のコードでは、window を移動するとイベントハンドラーが呼び出されwindowのタイトルが変更されます。
![]() |
![]() |
・ イベントの発生
前項1.2では、setAttribute()で属性値を変更することでonイベントが自動的に発生していましたが、sendEvent()を使用することで任意のタイミングでイベントを発生させることができます。これはカスタムコンポーネントを作成するときに重要となります。
<canvas width="200"> |
上記のコードではwindowtitle属性に直接値を設定して、sendEvent()で明示的にイベントを発生させています。
これで、OpenLaszloでもJavaScript同様にイベントハンドラーによってイベント発生時の振る舞いを記述できることを理解していただけたと思います。
・ スクリプト
LZXではアプリケーションの処理を、 <script> タグおよび <method> タグで囲んだ部分に、JavaScript互換のスクリプトで記述します。下記のコードは、LZXに組み込まれているデバッグ用のウィンドウを利用したスクリプトの書き方の簡単なサンプルです。
<canvas
width="500" height="200" debug="true"> |

スクリプトの記述で気を付けなくてはいけないのは、XMLのタグの記述で使用される < や > を使用する場合です。その場合は、<や >を使用するか、スクリプトを <![CDATA[ と ]]> で囲む必要があります。
<canvas
height="150" debug="true"><canvas
height="150" debug="true"> |
<script> タグや <method> タグで囲んで記述するほかに、JavaScript同様イベントハンドラーとして直接スクリプトを記述することができます。
<canvas
height="150" width="150> |
■基本コンポーネント
これまでの説明で <canvas> <window> <button> といったコンポーネントを使用してきました。次は、OpenLaszloがあらかじめ用意しているコンポーネントのスクリーンショットを紹介したいと思います。スクリーンショットを見ていただければ、どういったコンポーネントがあらかじめ用意されているかを感覚的につかめると思います。
・alert
・button
・checkbox
・combobox
(編集不可)
(編集可)

・datepicker
・edittext
・floatinglist
・form
・grid
・gridcolumn
・gridtext
・hscrollbar
・list
・listitem

・menu

・menubar
![]()
・menuitem
・menuseparator

・modaldialog

・radiobutton
・radiogroup

・scrollbar
![]()
・simpleinputtext
![]()
・slider
![]()
・statictext
![]()
・tab

・tabelement
・tabslider

・tabpane

・tabs

・tabsbar

・tabscontent

・textlistitem
![]()
・tree

・vscrollbar
![]()
・window

・windowpanel
以上で、Laszloのイベントコンポーネントのカスタマイズ方法を説明しました。次回はLaszloアプリケーションを記述するXMLとJavaScriptをベースとしたオブジェクト指向言語のLZXのクラスを定義してコードを再利用する方法や、既存のクラスを拡張する方法を解説します。
なお、前回の記事「Open Laszloで日本語を表示してみよう」掲載以降、OpenLaszlo 3.0がリリースされました(参照記事:オープンソースがRIA市場の起爆剤となる、ラズロCEO)。機能的にはベータ2と大きく変わらないようですが、アーキテクチャのネーミングが若干変更されてドキュメントの整理もベータのころよりは進んでいるようです。
今回は、MacOSX上にインストールしたOpenLaszloを使用してスクリーンショットのキャプチャーや動作確認を行っています。OS Xにインストールしたところインストールエラーが発生してしまったので、OS Xをお使いの方でインストールに失敗したという方は、次の操作を試してみてください。
- openlaszlo-3.0-osx-dev-install.pkgをCtrl+クリックしてコンテキストメニューを表示し、「パッケージの内容を表示」を選択する。
- Contentsフォルダが表示されるのでContentsフォルダを開く。
- Resourceフォルダが表示されるのでResourceフォルダを開く。
- postflightというファイルを選択してCtrl+クリックでコンテキストメニューを表示し、「情報を見る」を選択する。
- ターミナルアプリケーションを起動し、表示された情報ダイアログの場所フィールドにあるディレクトリへチェンジディレクトリする。
- chmod u+x postflight コマンドを実行して、postflihgtに実行許可を与える。
- GASで棒、円、折れ線など各種グラフを作成、変更、削除するための基本 (2017/7/12)
資料を作る際に、「グラフ」は必要不可欠な存在だ。今回は、「グラフの新規作成」「グラフの変更」「グラフの削除」について解説する - GET/POSTでフォームから送信された値をPHPで受け取る「定義済みの変数」【更新】 (2017/7/10)
HTMLのフォーム機能についておさらいし、get/postメソッドなどの内容を連想配列で格納するPHPの「定義済みの変数」の中身や、フォーム送信値の取り扱いにおける注意点について解説します【PHP 7.1含め2017年の情報に合うように更新】 - PHPのfor文&ループ脱出のbreak/スキップのcontinue【更新】 (2017/6/26)
素数判定のロジックからbreak文やcontinue文の利点と使い方を解説。for文を使ったループ処理の基本とwhile文との違い、無限ループなども併せて紹介します【PHP 7.1含め2017年の情報に合うように更新】 - Spreadsheetデータの選択、削除、挿入、コピー、移動、ソート (2017/6/12)
Spreadsheetデータの選択、挿入、削除、コピー、移動、ソートに使うメソッドの使い方などを解説する
|
|






