TOPシステム開発> LZXアプリケーションにデータ表示
いまが旬!Ruby on Rails&OpenLaszlo
いまが旬!Ruby on Rails&OpenLaszlo

第2回:開発環境の構築と顧客管理アプリケーションの作成

著者:ネットエイト  十河 学   2007/9/11
前のページ  1  2  3  4
LZXアプリケーションにデータ表示

   それではLZXのグリッドにXMLデータにバインドして表示する方法を説明します。

   まずOpenLaszloをインストールしたディレクトリ内にある「my-apps」ディレクトリを開いてください。Windowsであれば「C:¥Program Files¥OpenLaszlo Server 4.0.3¥Server¥lps-4.0.3¥my-apps」、Mac OS Xであれば「/Application/OpenLaszlo/OpenLaszlo Server 4.0.3/My Apps」です。

   次にmy-appsディレクトリ内に「laszlocustomerapp」ディレクトリを作成し、「main.lzx」という名前でテキストファイルを作成し、下記のコードを入力してください。
コード2:main.lzx
<canvas height="250">
  <attribute name="baseurl" value="http://127.0.0.1:3000" type="string" />

  <dataset name="customerdata" request="false" />

  <grid name="customers" datapath="customerdata:/customers" width="500" height="200">
    <gridtext text="名字" datapath="last-name/text()" />
    <gridtext text="名前" datapath="first-name/text()" />
    <gridtext text="住所" datapath="address/text()" width="120" />
    <gridtext text="電話番号" datapath="tel/text()" width="100" />
    <gridtext text="PCメール" datapath="mail/text()" width="120" />
  </grid>

  <button text="リロード" y="210" onclick="canvas.getdata()" />

  <method name="getdata">
    customerdata.setSrc(baseurl+ '/customers.xml');
    customerdata.setQueryType("get");
    customerdata.doRequest();
  </method>

  <handler name="oninit">
    this.getdata()
  </handler>
</canvas>

   次にWebブラウザを立ち上げて下記のURLにアクセスします。

http://127.0.0.1:8080/lps-4.0.3/my-apps/laszlocustomerapp/main.lzx

   すると図5が表示されます。このグリッドでは各列のヘッダをクリックするとソートしたりカラムを選択してデータを編集することができます。

各列のヘッダをクリックするとソートしたりカラムを選択してデータを編集することができる
図5:各列のヘッダをクリックするとソートしたりカラムを選択して
データを編集することができる
(画像をクリックすると別ウィンドウに拡大図を表示します)

   これらの操作はクライアント側で処理されており、サーバにはアクセスしていません。整列や編集のたびにサーバにアクセスしないため、RIAの特徴の1つでもあるサーバ負荷の軽減に効果があります。編集されたデータはクライアント側で保持されているため、データベースに反映させるにはRoRに「PUTリクエスト」を行う必要があります。

   現在、このアプリケーションはswf7で出力されていますが、OpenLaszlo4ではDHTMLもサポートされているため、JavaScriptを利用したAjaxアプリケーションとして出力させることもできます。

   早速試してみましょう。アプリケーション下部の「Compile Option」を「DHTML」に変更して「Commpile」を実行します。これだけでFlashPlayerを使わないDHTMLアプリケーションとして出力できます。もちろんグリッドのソートやカラムの編集もswf版と同じように動作します。


まとめ

   RoRのバージョン1.2からサポートされた「scaffold_resource」を使うことで、OpenLaszloとの連携は非常に簡単になりました。さらにOpenLaszlo4を使うと、swfとdhtml(Ajax)の違いを気にせずにRIA開発を進めることができます。

   次回はOpenLaszloからRoRへのCRUDを実装し、GoogleMapとも連携させていきたいと考えております。ご意見ご感想がありましたらご気軽にtogawamanabu@gmail.comまでお寄せください。

前のページ  1  2  3  4


株式会社ネットエイト 十河 学
著者プロフィール
株式会社ネットエイト  十河 学
2005年にOpenLaszloに出会う。RIAとオープンソースの可能性に感動し、OpenLaszloの情報交換を目的としたlaszlo.jpを勢いで開設。オープンソースアプリケーションはもちろん、iTunesやYouTubeから生まれるアーティストや、場所を問わないワークスタイルなどインターネットを中心として大きく変わりつつある世界の動きにも興味あり。現在はnet8のメンバーで沖縄県在住。

http://laszlo.jp


INDEX
第2回:開発環境の構築と顧客管理アプリケーションの作成
  Ruby On RailsとOpenLaszloを使ったRIAアプリケーション開発
  Rubyをインストール
  Ruby on RailsでREST実装
LZXアプリケーションにデータ表示