要約: | - 独立型アプレットは、独立型アプリケーションとしてユーザーに表示されます。
- 独立型アプレットでは .dcurl 拡張子および text/vnd.curl.dcurl MIME 型が使用されます。
- 独立型アプレットには、デフォルトの View はありません。
- 独立型アプレットは一時停止状態になることはありません。
- 独立型アプレットでは、exit を明示的に呼び出す必要があります。
- 独立型アプレットでは、URL の先頭で特別な curl://launch/ プレフィックスを使用する必要があります。
|
通常、Curl アプレットはWeb ブラウザ内でエンド ユーザーに表示されます。独立型アプレットとして実行する場合や、独立型アプリケーションとして表示される場合には、アプレットはより優れたユーザ環境を提供できる場合があります。独立型アプレットは通常のアプレットとほぼ同じ手法で、記述したり、展開したりすることができます。この章では、開発者とエンド ユーザーの両方の視点から、独立型アプレットとブラウザ指向型アプレットについて説明します。
通常のアプレットは、アプレット
View の内部に表示されます。これは、Web ブラウザ ウィンドウ内に組み込まれています。アプレットは、この
View を作成したり、破棄したりすることはできません。独立型アプレットは、ブラウザ ウィンドウの中では実行されないため、このような
View を持ちません。通常、独立型アプレットがユーザと対話的に機能するためには、1 つ以上の
View を作成する必要があります。独立型アプレットでは、アプレットによって作成される、他のすべての
View と同様に、サイズ、位置、
Views などのすべて可視性を、完全に制御できます。
通常のアプレットは Web ブラウザ内で表示されるため、ユーザがアプレット外を閲覧した場合は、アプレットは
一時停止状態になります。独立型アプレットが一時停止状態になることはありません。登録された一時停止プロシージャはアプレットが終了するときに呼び出されることに注意してください。
register-suspend-proc を参照してください。
エンド ユーザーが、アプレットを実行しているブラウザ ウィンドウを閉じると、アプレットは強制的に終了します。独立型アプレットは、独自の
View を追跡する必要があります。そして、ユーザが主要
View、またはすべての
View を閉じたときに
exit を呼び出すか、独立型アプレットの実行を停止するために、他の操作を実行しなければなりません。どの時点で終了するのが適切かは独立型アプレットによって異なります。たとえば、ワード プロセッサ アプリケーションでは、通常複数のウィンドウを開くことができますが、開いたウィンドウがすべて閉じられるまで、アプリケーション自体は終了しません。
Curl® IDE を使用して独立型アプレットを作成する場合、IDE が
.dcurl ファイルにコードを追加します。このコードは、
exit を呼び出す
WindowClose イベント用のイベント ハンドラー付き
View を作成します。
独立型アプレットは、拡張子に .dcurl を、MIME タイプに text/vnd.curl.dcurl を使用することを除き、通常のアプレットとほぼ同様に配置されます。ユーザーが独立型アプレットを閲覧すると、独立型アプレットが起動されます。非標準の MIME タイプを持った HTTP URL をベースとする外部アプリケーションの起動が求められた場合、その動作はブラウザによって異なります。
注意: 独立型アプレットでは、URL の先頭で特別な プレフィックス curl://launch/ を使用する必要があります。たとえば、URL が http://www.example.com/start.dcurl である独立型アプレットへのリンクを作成する場合には、ユーザーは、curl://launch/http://www.example.com/start.dcurl を使用する必要があります。
ブラウザ内で独立型アプレットを実行する場合も、URL の先頭で curl://launch/ を使用する必要があります。
プレフィックスの次には
Url を置く必要があります。
例えば、相対リンクを作成する場合は次の形式を取ります。
{url "curl://launch/" & {url "start.dcurl"}}
いくつかの Linux システムでは、curl://launch/ プレフィックスは、
Curl のソースコード内にあるリンクのみで正しく動作します。
いくつかの Linux ブラウザは curl: プロトコルを直接処理できないため、
HTML ファイルまたはその他のブラウザのアドレスフィールドで curl://launch/
を使用すると、エラーが発生する場合があります。
Windows システム上で、Internet Explorer を使用する際、 curl://launch/ プレフィックスの後に続くURLの
中で非ASCII文字 '%' でエンコードされている値のみがデコードされますので、
URL内の '%' エンコード値には注意が必要です。
ホスト プラットフォーム上でネイティブ アプリケーションと同様に動作可能であることは、独立型アプレットの 1 つの特徴です。ネイティブ アプリケーションと同様、既定では、一度に存在する独立型アプレットのインスタンスの数は、1 つだけです。最初に起動された独立型アプレットがこのインスタンスを作成します。
最初の起動試行を含む、すべての起動試行は、最初の起動試行のインスタンスに通知します。独立型アプレットは
Applet.launch-handler を指定して、全ての試行に応答することができます。起動試行ごとに、異なるクエリ、アンカー、またはその両方が使用される可能性があります。
これらのアンカーとクエリの値は、独立型アプレットから別のアクションを要求するために使用される可能性があります。
独立型アプレットを一時停止状態にしたり、再開したりすることはできませんが、一時停止状態のハンドラはプロセスが終了した時点で実行されます。そのため、一時停止状態のハンドラを終了処理の一部として使用できます。
さらに、独立型アプレットはブラウザを呼び出さないため、以下も有効ではありません。
Curl スクリプトでは、コマンド ラインまたはショートカット
から Curl プログラムを実行できます。 既定では、スクリプトは特権付きで実行します。 スクリプトはバッチ処理に対して便利であり、またグラフィカル ユーザ インターフェイスを提供している場合にはインタラクティブな処理をスクリプトで記述することができます。
Curl スクリプトはスクリプト ヘラルドで始まり、ファイル拡張子は
.xcurl を使用します。アプレット同様に
import および
include を含むことができます。ファイル全体がコンパイルされ、トップ レベルの式が 1 つずつ実行されます。スクリプトでは、ストリーム
stdout、
stderr および
stdin はシェルから取得されます。
スクリプトには作成しなければグラフィカル ユーザー インターフェースがない点で、独立型アプレットと似ています。スクリプトがモーダル ダイアログを表示する場合は、ダイアログが表示されている限りシステムはイベントを処理します。スクリプトでアプレットのようにイベントを処理したい場合は、最後に
event-loop の呼び出しを追加し、
exit を呼び出してスクリプトを終了する方法を提供してください。
次のコード例では、単純なスクリプトを作成します。このコードをコピーして script.xcurl というファイルに貼り付けます。
{curl 8.0 script}
{script
{compiler-directives careful? = true}
}
{import * from CURL.DESKTOP.CLIPBOARD}
{import * from CURL.GUI.STANDARD}
{let cb:Clipboard = {Clipboard.get-system-clipboard}}
{let d:Dialog =
{Dialog
margin = 9pt,
{VBox
spacing = 6pt,
"The clipboard contains this text:",
{TextArea
width = 3in, height = 2in,
value = {cb.get-string}
},
{HBox
{Fill},
{done-button
{on Action do
{exit}
}
}
}
}
}
}
{d.show
title = {hlmessage Clipboard Reader Script}
}
ディレクトリ d:\automated-build-temp\build\win32-atom\bin にある curl 実行可能ファイルにこれを引数として提供することによってスクリプトを実行します。ショートカット
、または [実行...] ダイアログやバッチ ファイルなどのコマンド ライン呼び出しを使用してスクリプトを実行できます。
例として、以下を script.xcurl に追加します。
{curl 8.0 script}
{import * from CURL.GUI.STANDARD}
{View
width = 2in, height = 3in, visibility = "normal",
{text This script was run with {value script-args.size} arguments.},
{on WindowClose do {exit}}
}
{event-loop}
次に [実行...] ダイアログに次のように入力します。
"d:\automated-build-temp\build\win32-atom\bin\curl.exe" -l script.xcurl 1 2 3
Copyright © 1998-2019 SCSK Corporation.
All rights reserved.
Curl, the Curl logo, Surge, and the Surge logo are trademarks of SCSK Corporation.
that are registered in the United States. Surge
Lab, the Surge Lab logo, and the Surge Lab Visual Layout Editor (VLE)
logo are trademarks of SCSK Corporation.