Curlアプリケーションを理解しよう!


サンプルアプリケーション

Curlで開発できるアプリケーションはさまざまですが、HTMLのようなWebアプリケーションからからExcelのような表形式の入力や参照、さらには2D,3D、アニメーションを使用してCADシステムやゲームのような複雑なものまで1つで開発できます。ここでは業務システムにフォーカスして「入力・参照業務」、「分析業務」で一般的に使われるコントロールを取り上げます。具体的には入力用コントロールおよび表コントロール、グラフを使用し、業務アプリケーションに必要な機能を実装しています。

プロジェクト

図2 IME自動制御、入力チェック、フォーカス時の色変更、データの登録

プロジェクト

図3 ドラッグアンドドロップによる列の移動、列幅変更、フィルター、並び変え、枠の固定など

プロジェクト

図4 グラフ表示、切り換えなど

サンプル・アプリケーションを構成するすべてのファイルは、以下のURLからダウンロードできます。

ダウンロードして解凍すると2つのフォルダが生成されますが、「CurlSample」のフォルダ内にあるプロジェクトをCDEがインストールされたEclipseでインポートするとソースファイルがすべて参照できます。


Curlアプリケーションの構造

RIAアプリケーションとして使用する場合、Curlはクライアント(PC)で動作しますが、そこで使用されるデータ(DB)はサーバにあることが一般的です。このため、Curlのアプリケーション構成は図5のようになります。Curlアプリケーションからデータ(DB)にアクセスする場合、通常はHTTP(またはHTTPS)のPOSTおよびGETを使用してWebアプリケーション・サーバへリクエストし、サーバからレスポンスとしてデータ(XML、CSV、バイナリなど)を取得します。それを図5の「モデル・レイヤ」において、Curl内部で扱いやすいデータモデルに変換して使用します。そのデータモデルを提供するのがRecordSetクラスです。

データモデルを作成したら、その表現形式については「プレゼンテーション・レイヤ」に処理を任せます。例えば、表形式で表現する場合はTableクラスやRecordGridクラスを使用できますし、またグラフなどで表現することも可能です。

データモデルを作成したら、その表現形式については「プレゼンテーション・レイヤ」に処理を任せます。例えば、表形式で表現する場合はTableクラスやRecordGridクラスを使用できますし、またグラフなどで表現することも可能です。

プロジェクト

図5 Curlアプリケーションのレイヤ構成と対応するクラス

サンプル・アプリケーションでは、サーバとの通信部分およびデータの取得部分はありませんが、基本的にはWebサーバにリクエストを送ってレスポンスを取得し、モデル・レイヤのRecordSetオブジェクトにデータを設定する処理を追加することで、ほぼ完全なWebアプリケーションとして成り立ちます。

Curlのサーバサイドとの連携については、「Curl IDE ドキュメント(開発環境CDEの中に入ってます)」の「目次」タブ-「Curl開発者ガイド」-「ファイルシステムとネットワーキング」-「Webサイトとの対話」を参照してください。

サンプル・アプリケーションの詳細な機能および基本クラスは以下のようになっています。

使用目的

クラス名

機能

入力フォーム

TextFieldクラス

IME(InputMethodEditor)制御、フォーカスインのときの色変更、入力チェック

RecordGridクラス

列の移動、列のサイズ変更、レコードのソート、スクロール

グラフ

LayerdChard,BarLayer

グラフの表示

タブシート

TabContainerクラス

タブ選択による画面遷移

内部保存データ

RecordSetクラス

レコードとフィールドによる編成、データの変更に関するイベント管理