Curl Sonntag とは
Curl Sonntag (カールゾンターク)とは、画面単位でプログラムを整理するためのCurlによるMVCフレームワークで、オープンソースとして提供しております。(ライセンス:Apache2.0)ソースコード及びバイナリファイルは、SourceForgeからダウンロードすることができます。
Curl Sonntagを使った開発では、1画面毎に以下の3種類のクラスを作ります。
- ScreenGraphic (グラフィック)
- Screen (スクリーン)
- ScreenCommand (コマンド)
アプリケーションのUIに応じて、1つのウィンドウを複数の画面として開発することもできます。
例えば、以下のようなヘッダー・メニュー・ボディに分かれたレイアウト構成の場合は、
タブペインの場合は、
のように画面を分割定義することができます。
グラフィックとは(ScreenGraphic)
デザインをする人が、画面レイアウトを定義するクラスとなります。
- ロジックは基本的に持たない
- 動的なレイアウトはスクリーン(Screen)で実装
グラフィックを作成するには、VLE(ビジュアル・レイアウト・エディタ)で作成したクラスか、グラフィカルオブジェクト(FrameやCanvasを継承したもの)のようなPure Curlクラスで定義します。具体的には、以下のようなクラス定義となります。
|| グラフィカルオブジェクト || VLEレイアウト |
スクリーンとは(Screen)
画面毎のアプリケーションロジックを持つクラスとなります。このスクリーンクラス内で、画面の初期化やグラフィックへのアクセスなどを記述し、グラフィックの操作をカプセル化します。
スクリーンを作成するには、フレームワークのクラスを継承したクラスを定義します。例えば、VLEで作成したグラフィックの場合は「inherits {VScreen-of XxxxLayout}」のように、VLEで作成せずスクラッチでコーディングしたグラフィックの場合は「inherits {Screen-of XxxxGraphic}」のようにVScreen-ofまたはScreen-ofを継承します。(Xxxxはグラフィッククラス名です)
|| グラフィッククラスがグラフィカルオブジェクト || グラフィッククラスがVLEレイアウト |
コマンドとは(ScreenCommand)
画面上の操作に応じた処理ごと(ボタンを押下したときの処理、イベントハンドラなど)にひとつずつ作成するもので、ロジックを記述します。
コマンドを作成するには、フレームワークのマクロ(define-screen-command)で定義します。
{define-screen-command {define-screen-command |