「classic IDE開発編」カテゴリーアーカイブ

通常アプレットと独立型アプレットの作成

通常アプレットと独立型アプレットの違いの理解

Curlのアプリケーションは「独立型アプレット」と呼ばれるCurlウィンドウで起動するものと「通常アプレット」と呼ばれるInternetExplorerなどのブラウザ上で表示されるものと大きく分けて2つあります。

以下に機能的な特徴を説明します。

  • 通常アプレット
    InternetExplorerなどのブラウザ内に表示されます。
    .curl 拡張子および text/vnd.curl MIME 型が使用されます。
    ブラウザで表示されるため[戻る]ボタンや[進む]ボタンを押した場合は一時停止状態になります。
  • 独立型アプレット
    Curl独自ウィンドウとしてユーザーに表示されます。
    .dcurl 拡張子および text/vnd.curl.dcurl MIME 型が使用されます。
    デフォルトの View はないため個別に生成して表示する必要があります。
    ブラウザで表示されるWebアプリケーションのように一時停止状態になることはありません。
    終了するためにはexit を明示的に呼び出す必要があります。
    起動する場合はURL の先頭で特別な curl://launch/ プレフィックスを使用する必要があります。

開発の手順やコードは基本的に同じですが、通常アプレットの場合はブラウザの制約があるため(戻るボタンや×ボタンなど)アプリケーションの整合性を高く保つには独立型アプレットをお勧めしています。

IDEを起動してアプレットを作成しよう。

Curl/IDEを起動してください。すると、下の図のように表示されます。はじめてIDEを移動した状態では、画面は下図のように3つのペインに分かれたレイアウトで表示されます。このレイアウトは自由に変更することができます。
curl_ide2.jpg

通常アプレットの作成

IDEの[ファイル]メニューから[新規]を選択します。または、開始ページの[新しいファイルを作成]をクリックします。すると、下図の[新規]ダイアログボックスが表示されます。

applet-dialog.jpg

[アプレット]を選択し、[ファイル名]の欄に「start.curl」と入力します。[ディレクトリ]の欄には「c:curlapplet-lesson」と指定し、[OK]ボタンをクリックします。

applet-dialog2.jpg

結果は下図のようにIDEのプロジェクトペインにツリーが表示されます。[その他のファイル]をクリックすると[start.curl]が表示されます。

apple-pane.jpg

IDEのプロジェクトペインの[start.curl]をダブルクリックします。
エディタに下図のようにstart.dcurlファイルの内容が表示されます。ファイルに書かれているはじめの2行は宣言文です。

applet-editer1.jpg

下図のように「Hello Curl !」を記述して実行していきましょう。

applet-source1.jpg

画面の左上の[保存ボタン]をクリックしてファイルを保存します。

save.jpg

[実行]ボタンをクリックして実行します。ブラウザが起動し、そこに「Hello Curl!」と表示されれば、成功です。

run-applet.jpg

独立型アプレットの作成

IDEの[ファイル]メニューから[新規]を選択します。または、開始ページの[新しいファイルを作成]をクリックします。すると、図2の[新規]ダイアログボックスが表示されます。

applet-dialog.jpg

[独立型アプレット]を選択し、[ファイル名]の欄に「start.dcurl」と入力します。[ディレクトリ]の欄には「c:curlapplet-lesson」と指定し、[OK]ボタンをクリックします。

applet-dialog3.jpg

結果は下図のようにIDEのプロジェクトペインにツリーが表示されます。
その他のファイルをクリックすると[start.dcurl]が表示されます。IDEのプロジェクトペインの[start.dcurl]をダブルクリックします。

apple-pane2.jpg

エディタにstart.dcurlファイルの内容が表示されます。ファイルに書かれているはじめの2行は宣言文ですが、先ほどの通常アプレットの場合と違って以下のように書かれています。

{View … {on WindowClose do … }}

独立型アプレットは冒頭でも説明しましたが通常アプレットと違い表示するためのViewを個別に作成する必要があります。その為、テンプレートとしてIDEを使用するとViewのコードが記述されています。また、{on WindowClose do …} の部分はViewが閉じられたときの処理(注1:イベント処理)が書かれており、exitプロシージャを呼び出してプロセスの終了を行う処理が書かれています。

※注1:「イベント処理」について
詳しくは「逆引きリファレンス-ユーザインタフェース-イベントの作成」を参照ください。

先ほどの通常アプレットの場合は「Hello Curl !」を書くだけでブラウザに表示されましたが、独立型アプレットの場合はViewの子として以下のように記述します。
applet-source2.jpg

画面の左上の[保存ボタン]をクリックしてファイルを保存し、実行]ボタンをクリックして実行します。独自のCurlウィンドウが起動し、そこに「Hello Curl!」と表示されれば、成功です。

run-applet4.jpg

サンプルコードのダウンロード

関連ヘルプドキュメント

プロジェクトの作成からマニフェスト・パッケージ・クラスの作成

1.Curlアプリケーションのファイル構成の理解

Curlのアプリケーションは1つのアプレットファイルとその他のファイルによって定義されたコンテンツから構成されることが一般的です。以下にファイルの拡張子とともに内容を説明します。

  • .curl、.dcurl
    既定では、ファイル名は start.curlです。
    start.curlファイルは他のファイルによって定義されたコンテンツを組み入れることができます。.curlはブラウザ上で表示されますが、dcurlは独立型アプリケーション(Curlウィンドウ)として実行できるファイルです。
  • .mcurl
    アプレットファイルやイメージ等のリソースの場所を指定するマニフェストファイルです。
  • .scurl
    Curlパッケージやコンテンツフラグメントを含む1つ以上のソースファイル。
  • その他のリソース
    イメージファイルやテキストファイルのような、その他のファイルで定義されたコンテンツです。

Curl アプレットを開発する際、それぞれの機能毎に .scurlファイルを作ることをお勧めします。複数の小さなファイルを作成したほうが、メンテナンスが容易になります。

project-overview.jpg

上記の種類に加えて、さらに 2 種類のファイルがあります。

  • プロジェクト ファイル ( .cprj)
    Curl
    言語プロジェクトに関連する多様なソース ファイルや他のリソースを管理する目的で Curl 統合開発環境(Curl/IDE)が生成するファイルです。

2.IDEを起動し、新規プロジェクトを作成しよう。

デスクトップに作成した、Curl/Personal IDEへのショートカットをダブルクリックしてIDEを起動してください。すると、下の図のように表示されます。はじめてIDEを移動した状態では、画面は図1のように3つのペインに分かれたレイアウトで表示されます。このレイアウトは自由に変更することができます。

curl_ide2.jpg

 

 

IDEの[ファイル]メニューから[新規プロジェクト]を選択します。または、開始ページの[新規プロジェクトを作成]をクリックします。すると、下図の[新規]ダイアログボックスが表示されます。

new-dialog.jpg

[アプレットプロジェクト]を選択し、[マニフェスト名]の欄に[TEST-1]と入力します。[ディレクトリ]の欄には「c:\curl\project-lessen\applet」と指定し、[OK]ボタンをクリックします。

applet-project-dialog.jpg

結果は下図のようにIDEのプロジェクトペインにツリーが表示されます。Curlはプロジェクトという単位で関連するリソースを管理します。

applet-project-pane.jpg

最後にブラウザにテキストを入力して表示してみましょう。IDEのプロジェクトペインの[start.curl]をダブルクリックします。エディタにstart.curlファイルの内容が表示されます。ファイルに書かれているはじめの5行は宣言文です。この続きにソースコードを記述します。

editer1.jpg


ここに「
Hello Curl !」と書いてみましょう。

editer2.jpg


画面の左上の
[保存ボタン]をクリックしてファイルを保存します。

save.jpg


[
実行]ボタンをクリックして実行します。ブラウザが起動し、そこに「Hello Curl!」と表示されれば、成功です。

run-applet.jpg

 

3.マニフェストファイルを使用してイメージを追加しよう。

マニフェストとはアプレットファイルやイメージ等のリソースの場所を指定するためのファイルです。たとえばアプレットファイルから呼び出されるコンテンツの場所(パス)が変更された場合にアプレットファイル内に直接パスが記述してあると、そのアプレットファイルを変更しなくてはならなくなり管理が大変です。アプリケーション内で使用するコンテンツの場所やバージョンなどはなるべくマニフェストで管理しましょう。

マニフェストにコンテンツのパスを追加するのは以下のようにします。[プロジェクト]から[ファイルリソースの追加]を選択します。

add-resource.jpg


任意の画像ファイルを選択して
[OK]ボタンをクリックします。
 

add-resource2.jpg

下図のようにプロジェクトペインにイメージファイルが追加されます。

add-resource-pane.jpg

マニフェストファイルを見てみましょう。プロジェクトペインの[test-1]をダブルクリックします。そうするとマニフェストファイルに記述された内容がエディタに表示されます。
下図のように追加したイメージファイルのパス情報が記述されています。

manifest.jpg

アプレットファイルからマニフェストで管理されたイメージファイルにアクセスするには以下のように記述します。

{manifest-url コンポーネントタイプ , 名前 ,…..}

このよう記述するだけでイメージファイルにアクセスできます。ではアプレットファイルにイメージを挿入して表示してみましょう。

先ほどの「hello Curl !」の下に下図のように記述します。

editer3.jpg

画面の左上の[保存ボタン]をクリックしてファイルを保存し、[実行]ボタンをクリックして実行します。ブラウザが起動し、そこに「Hello Curl!」ともにイメージが表示されれば、成功です。

run-applet2.jpg

 

4.パッケージを作成して機能を読み込もう。

「パッケージ」には論理的にまとめられたコード群が格納されます。他のアプレットファイルやパッケージから“インポート”してパッケージ内の定義を使用します。いわゆる“クラス”などはパッケージ内に定義することをお勧めします。

ではパッケージを作成してみましょう。

[ファイル]メニューから[新規]を選択します。
[パッケージ]を選択し、 [ディレクトリ]の欄に「c:\curl\project-lessen\applet\test-package」と指定し、[パッケージ名]に「SAMPLE.TEST.PACKAGE」と入力して[OK]ボタンをクリックします。

package-dialog.jpg

結果は下図のようにIDEのプロジェクトペインのツリーに先ほど入力したパッケージ名表示されます。[プロジェクトペイン]で「SAMPLE.TEST.PACKAGE」をダブルクリックします。

package-pane.jpg

エディタの最初の“{curl 6.0 package}”はパッケージファイルの宣言部分です。
中にプロシージャ定義を記述してみます。
※プロシージャについては「Curl開発者ガイド-基本概念-構文-プロシージャと引数」を参照ください。

editer4.jpg

 

アプレットファイルでパッケージをインポートしパッケージ内のプロシージャを図20のように使用してみましょう。
下図の{import * from SAMPLE.TEST.PACKAGE}の部分はパッケージからパッケージ内の定義情報を読み込む部分です。*の意味はパッケージ内のすべての意味でワイルドカードと同じ意味です。パッケージ内の特定の定義などを読み込む場合は*の部分を特定のクラス名や定義名にします。(サンプルの場合はTestClass)
下の{test-proc}の部分はパッケージ内のtest-procプロシージャを呼び出している部分です。

import-package.jpg

 

では実行してみましょう。
画面の左上の[保存ボタン]をクリックしてファイルを保存し、[実行]ボタンをクリックして実行します。ブラウザが起動し、そこに「パッケージ内のプロシージャが実行されました!」と表示されれば成功です。 

run-applet3.jpg

サンプルコードのダウンロード

関連ヘルプドキュメント

アプリケーションのディプロイメント

ここでは、作成したアプリケーションのディプロイメントの方法について紹介します。 プロジェクトの作成からマニフェスト・パッケージ・クラスの作成で作成したプロジェクトのフォルダ構成を少し変えたものをディプロイメントしてみましょう。

まずはプロジェクトのダウンロードをします。>>ダウンロード

注意!フォルダ構成を変更していますので、必ずこちらをお使いください!

1. Curl IDEを起動し、ダウンロードしたプロジェクトを解凍して開きます。(project.cprjをダブルクリックでプロジェクトは開きます。)

2. ディプロイ先を設定するために「プロジェクト」→「ターゲット設定の編集」をクリックします。

 

3. 「ディフォルト」を選択し、設定ボタンをクリックします。※追加ボタンをクリックし、複数の設定を保存する事も可能です。

 

4. ディプロイ先を指定するために、「ロケーション」に任意のフォルダパスを設定し、「OK」ボタンをクリックします。

既定ではプロジェクトのマニフェストファイルがあるフォルダの中に、deploy-defaultというフォルダが作成され、そこにプロジェクトがディプロイされます。
今回はフォルダ名をmainに変更します。

deploy03.jpg

5. 「プロジェクト」→「コンポーネントターゲット設定の表示」をクリックし、どのような形式で各ファイルがディプロイされるか表示します。

deploy-3.jpg

 

6. 、パッケージ(ここではSAMPLE.TEST.PACKAGEを指します)のディプロイの形式を編集するためにパッケージの「コピー」と表示されている部分をクリックします。

 

7. ではパッケージをプリプロセス(pcurl化)してみましょう。「ターゲットにpcurlを生成」、「全てのパッケージに新しい設定を適用」を選択することにより、全てのパッケージをプリプロセス化できます。(今回は1つしかパッケージがありませんが。。。)

プリプロセスを行うことで以下のようなメリットが得られます。

  • パッケージのロード時間が短縮します。
  • サーバから送られるコードのサイズが縮小します。
  • ソース コードを人間の目からは解読できないフォーマットに変換することができます。

つまり、パフォーマンス面、セキュリティ面からプリプロセスはいいことだらけと言えますね。

8. 「コピー」と書かれていた部分が「pcurl」に変わります。(*プリプロセス化できるものはパッケージのみです。)

9. 上記9の準備が完了したら「プロジェクト」→「ディフォルトのディプロイメント」を選択します。

「ディフォルト」の部分は4.でターゲット設定した名前になっています(今回は変更していないのでディフォルトのままです)。

10. 成功しますと下記のようなメッセージが表示されます。

 

11. ディプロイメントされたフォルダ(4.で任意に設定したロケーション、今回ならばmainという名前のフォルダ)が作成されていることを確認します。

12. mainフォルダの中のstart.curlを実行し、動作することを確認してください。実際はこの後、main以下のフォルダ・ファイルをWebにアップします。

いかがだったでしょうか?後日「パスを使用したディプロイメント」の説明をしたいと思います。

 

関連ヘルプドキュメント

プロジェクトのデプロイについて
Curl IDE ユーザーガイド-プロジェクトのディプロイメント-Curl統合開発環境(IDE)のディプロイメント ストラテジー

 pcurlファイルについて
Curl開発者ガイド-コンテンツの構成要素-ファイルの種類-プリプロセスされた Curl 言語