Curlで開発できるアプリケーションはさまざまですが、HTMLのようなWebアプリケーションからからExcelのような表形式の入力や参照、さらには2D,3D、アニメーションを使用してCADシステムやゲームのような複雑なものまで1つで開発できます。ここでは業務システムにフォーカスして「入力・参照業務」、「分析業務」で一般的に使われるコントロールを取り上げます。具体的には入力用コントロールおよび表コントロール、グラフを使用し、業務アプリケーションに必要な機能を実装しています。
図2 IME自動制御、入力チェック、フォーカス時の色変更、データの登録
図3 ドラッグアンドドロップによる列の移動、列幅変更、フィルター、並び変え、枠の固定など
図4 グラフ表示、切り換えなど
サンプル・アプリケーションを構成するすべてのファイルは、以下のURLからダウンロードできます。
ダウンロードして解凍すると2つのフォルダが生成されますが、「CurlSample」のフォルダ内にあるプロジェクトをCDEがインストールされたEclipseでインポートするとソースファイルがすべて参照できます。
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クラス |
レコードとフィールドによる編成、データの変更に関するイベント管理 |