Curlテクノロジー >> WEBトレーニング
ステップ2:新規プロジェット
Curlのインストールが完了したら新規にプロジェクトの作成方法を見ていきます。
■新規プロジェクトの作成
新規プロジェクトを作成するために「Surge Lab IDE」を起動します。スタートボタン -> プログラム -> Curl IDE -> Surge Lab IDEをクリックしてIDEを起動します。プロジェクトの作成はメニューバーよりファイル -> 新規をクリックしてプロジェクトのタイプを選択します。
新規ファイルと新規プロジェクトを作成するダイヤログが表示されます。
ここでは4.0から新たに導入された独立型アプレットでアプリケーションを作成しますので、新規プロジェクトタブの中から独立型アプレットプロジェクト(T)を選択します。同時に以下の内容も指定します。
・マニフェスト名(N):
ここではプロジェクト名称を指定します。プロジェクトプロパティもしくはmanifest.mcurlを直接修正する事で変更も可能です。
・ディレクトリ(D):
プロジェクト関連のファイルを格納するディレクトリを指定します。システムで決められた名称のファイルがあり複数のプロジェクトを同一ディレクトリに格納することは通常できません。必ずプロジェクト固有のディレクトリを入力します。指定したディレクトリが存在しない場合はメッセージが表示されディレクトリが作成されます。
・APIバージョン(V):
導入されているRTEに併せて表示が変更されます。ここでは4.0のままとします。
プロジェクトを作成すると指定したディレクトリに以下の4つのファイルが作成され、画面上にはマニフェスト名で指定した「トレーニングプロジェクト」と、start.dcurlが表示されています。start.dcurlをクリックすると右側のエディタにソースの内容が表示されます。
project.cprj | プロジェクトに定義された情報を保持します。大変重要なファイルで通常は手動で編集は行いません。 |
project.cprj.local | Surge Lab IDEにて開いているファイルや参照しているファイルなどを保持します。これによりプロジェクトを閉じて再度開いた場合に終了時点での作業状態で復帰できます。 |
manifest.mcurl | IDE プロジェクトの一部としてリソースやコンポーネントなどライブラリの参照が定義されます。こちらも大変重要なファイルでシステムの規模が多くなるほど変更が必要になります。 IDEファイルツリーにあるマニフェスト名をダブルクリックするか右クリックでコンテキストメニューから開くを選択するとエディタに内容が表示されます。 |
start.dcurl | 新規にテンプレートから作成された独立型アプレットのソースファイルです。拡張子はdetached-curl-appletとして .dcurlとなります。startという名前に意味は有りませんが初期設定で起動ファイルに指定されています。 一般的に編集の必要はありませんが以下にテンプレートが格納されています。 \Program Files\Curl Corporation\Surge\5\ide\curl-resources\default\templates |
■start.dcurlのソースを見てみましょう
start.dcurl
{curl 4.0 applet}
{curl-file-attributes character-encoding = “shift-jis”}
{applet manifest = “manifest.mcurl”,
{compiler-directives careful? = true}
}{View
|| Replace {Frame} with your code.
{Frame width = 8cm, height = 8cm},
visibility = “normal”,
{on WindowClose do
{exit}
}
}
Curlの構文はブラケット式と呼ばれる { } で囲まれた中にメソッド呼び出しや変数のスコープを持ちます。今回のソースでは{curl 4.0 applet}
を初めとする4つのスコープがある事になります。それではスコープ毎に意味を解説していきます。
1.ヘラルド宣言
{curl 4.0 applet}
ヘラルドと呼ばれる宣言文です。最初に必ず必要なロジックでRTEコアが最初にこの部分を読み込こみ以下の処理を適用します。
1.対応するバージョンを宣言
Curlは高い上位互換を持ちますが完全なコンパチブルではありません。特定のバージョンに依存するケースではそのバージョンを指定します。
複数のRTEバージョンに対応している場合は{curl 3.0, 4.0 applet}のように複数の指定が出来ます。
2.Curlのコンポーネントタイプを宣言
各ファイルの種類に対応するapplet、package、manifest、script の宣言を指定します。
2.文字エンコーディング
{curl-file-attributes character-encoding = “shift-jis”}
ソースファイルのエンコーディングを指定するに使用します。
ファイル内では Curlヘラルドの次行に指定するブラケット式でなければなりません。
3.appletマクロ
{applet manifest = “manifest.mcurl”,
{compiler-directives careful? = true}
}
複数の引数を持つアプレット宣言を補助するマクロで、このケースではmanifestが指定されています。このマニフェストを参照してプロジェクト内で参照可能なファイルやリソースを読み出す事ができます。
{compiler-directives ・・・}プリミティブは、コンパイラの動作を指定しています。このケースで指定されている careful?引数は “メタフラグ” として推奨されているコンパイル時のチェックを実行させる事を意味します。
4.Viewクラス
{View
|| Replace {Frame} with your code.
{Frame width = 8cm, height = 8cm},
visibility = “normal”,
{on WindowClose do
{exit}
}
}
ブラウザーから起動されるappletと異なり独立型アプレットはデフォルトのコンテナを持ちません。Viewクラスはウィンドウを実装しており一番外側に表示されるグラフィック階層のルートとして使用されます。ここでは表示されるウィンドウがViewという意味です。
Viewブラケットの中にあるFrameクラスはViewクラスのスーパークラスです。このケースではFrameクラスにてwidth = 8cm, height = 8cmのように初期値を持ったFrameインスタンスをViewクラスのコンストラクタの一部として渡す動作をしています。
このインスタンスを作成する部分に最初は戸惑いを感じるかもしれません。
Java言語などは new シンタックスにてインスタンスを作成しますが、Curlでは{クラス名 ・・・}もしくは、{new class-type, …} のようにマクロを介してオブジェクトが生成されます。
またクラスを表現するオブジェクトとしてClassTypeやMethodがあり、リフレクションによるインタスタンス操作も可能です。
最後にカンマで区切られた{on WindowClose do 処理}マクロはスタティック イベント ハンドラ と呼ばれているイベントの記述を簡素化するマクロで、発生したイベントのオブジェクト内容を保持しています。このケースでは×ボタンなどのクリックでウィンドウが閉じようとしている事を通知するためにWindowCloseイベントが発生しています。
{exit}は呼び出し元の Process を終了するプロシージャです。メソッドやプロシージャの呼び出しなどにも {}ブラケットが必要な事に注意してください。
また実際には唯一のウィンドウが閉じるのでデフォルトの動作してイベントハンドラを記述しなくても終了します。
それでは実行してみます。IDEメニューの実行から「プロジェクトを実行」もしくはショートカットのF5キーを押下すると以下のウィンドウが表示されます。
以上で新規プロジェクトが作成されました。最初に出てくる3つのブラケット式は全てのファイルで宣言されるおまじないのような物で基本的に付加しておきます。