コンソール UI アプリケーションでは、異なる複数のタイプの EGL パーツを 使用して、データおよび異なる複数のタイプの EGL 変数を提供し、インターフェースを 作成することができます。
ユーザー・インターフェースを持つ多くのタイプのアプリケーションと同様に、EGL コンソール UI アプリケーションでは、インターフェースとインターフェースの作成に使用されるロジックとを分離しています。通常の EGL プログラムでは、アプリケーション用のロジックが提供されており、 インターフェース自体は異なる複数のタイプのパーツで表わされています。
ConsoleForm パーツは、ユーザー・インターフェース上に表示されるフィールドのレコードです。 このタイプのレコードのフィールドには、データが格納されません。 また、他のタイプのレコードのフィールドのようなデータ型 (INT など) を持ちません。 その代わりに、ConsoleForm 内のフィールドによって、画面に表示する フィールドの位置とラベルを定義します。これらのフィールドは、単一のグループとして フォーム と呼ばれる場合があります。コンソール UI プログラムは、画面上のフィールドを 他の EGL 変数とリンクします。
Record CustomerConsoleRecord type consoleForm
{formSize = [10,40],name = "Customer Record"}
* consoleField {position = [1,4],
value = "Welcome to my console."};
ID consoleField {fieldLen = 5, position = [3,4],
name="customer_id"};
Fname consoleField {fieldLen = 20, position = [4,4],
name="first_name"};
Lname consoleField {fieldLen = 20, position = [5,4],
name="last_name"};
PhoneNum consoleField {fieldLen = 20, position = [6,4],
name="phone"};
end
このフォーム内の 5 つのフィールドのうちの 1 つは、テキストの定数ストリング
であり、実行時には変更できません。このフィールドには名前が付けられ (アスタリスク (*) を使用)、ヘッダーまたは説明テキストとして使用されます。
この例では、「マイ・コンソールへようこそ。」と表示されます。
他のフィールドは、変数になります。
コンソール UI プログラムは、これらの変数を使用して、
データの表示や入力の受け入れを行うことができます。new Menu {labelText = "オプションを選択してください: ",
menuItems = [
new MenuItem{name = "One",labelText = "オプション 1"},
new MenuItem{name = "Two",labelText = "オプション 2"},
new MenuItem{name = "Three", labelText = "オプション 3"}
]}
ユーザーがオプションを選択した際の応答方法の例については、コンソール・ユーザー・インターフェースの作成を参照してください。
ArrayDictionary は、EGL パーツの一種です。 通常は、コンソール UI 内のデータを表わすために使用されます。 レコードの配列では、1 行を表わす 1 つのレコード・パーツを定義してから、 それらの行の配列を作成します。しかし、ArrayDictionary では、それとは異なり、 複数の列を表わす consoleFields の配列を定義します。 ArrayDictionary は、コンソール UI ウィンドウ上の限られたスペース内で自動的にスクロールするため、コンソール UI の列ごとにデータを定義しておくと便利です。
コンソール UI における ArrayDictionary の詳細な例は、 コンソール UI における配列辞書の使用を参照してください。
コンソール UI における ArrayDictionary の詳細な例は、「EGL 言語解説書」の『コンソール UI における配列辞書の使用』を参照してください。
program CreateAConsole type BasicProgram
function main()
// ステップ 1: フォーム用の変数を作成します。
myConsoleUIRecord CustomerConsoleRecord;
// ステップ 2: ウィンドウを作成します (この時点では開きません)。
myWindow window {name="My Window", position=[1,1]};
// ステップ 3: フォーム・フィールド用の変数を作成します。
customer_id int;
first_name, last_name, phone char(30);
// ステップ 4: ウィンドウを開き、開いたウィンドウ内でフォームを開きます。
consoleLib.openWindowWithForm(myWindow,myConsoleUIRecord);
// ステップ 5: フォーム内のフィールドに変数をリンクします。
openUI myConsoleUIRecord
bind customer_id, first_name, last_name, phone
end
end
end
コンソール UI プログラムの使用法についての詳細は、コンソール・ユーザー・インターフェースの作成を参照してください。
EGL では、 コンソール UI プロジェクトをさまざまなモードで実行できます。 コンソール UI アプリケーションを リッチ・クライアント・アプリケーション (RCP) モードで実行するには、 該当するプロジェクトを EGL プラグイン・プロジェクトに変換する必要があります。
コンソール UI アプリケーションの実行で使用可能な モードについての詳細は、コンソール UI のモードを参照してください。 EGL プラグイン・プロジェクトについての詳細は、EGL プラグイン・プロジェクトの作成を参照してください。