コンソール UI アプリケーションの要素

コンソール UI アプリケーションでは、異なる複数のタイプの EGL パーツを 使用して、データおよび異なる複数のタイプの EGL 変数を提供し、インターフェースを 作成することができます。

ユーザー・インターフェースを持つ多くのタイプのアプリケーションと同様に、EGL コンソール UI アプリケーションでは、インターフェースとインターフェースの作成に使用されるロジックとを分離しています。通常の EGL プログラムでは、アプリケーション用のロジックが提供されており、 インターフェース自体は異なる複数のタイプのパーツで表わされています。

コンソール UI のフォームおよびフィールド

ConsoleForm パーツは、ユーザー・インターフェース上に表示されるフィールドのレコードです。 このタイプのレコードのフィールドには、データが格納されません。 また、他のタイプのレコードのフィールドのようなデータ型 (INT など) を持ちません。 その代わりに、ConsoleForm 内のフィールドによって、画面に表示する フィールドの位置とラベルを定義します。これらのフィールドは、単一のグループとして フォーム と呼ばれる場合があります。コンソール UI プログラムは、画面上のフィールドを 他の EGL 変数とリンクします。

コンソール UI レコード内のフィールドは、 名前、文字数の長さ、および画面上の位置といった簡単なものになります。 フォームを定義するシンプルなコンソール UI レコードの例を、以下に示します。
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 プログラムは、これらの変数を使用して、 データの表示や入力の受け入れを行うことができます。

Menu パーツと MenuItem パーツ

コンソール UI におけるメニューは、複数のオプションの集合です。 ユーザーは、そのオプションの中から 1 つを選択することが求められます。 インターフェースにメニューを表示する場合は、まずメニュー・パーツを定義します。次に、menuItems メニュー・プロパティー内 の menuItem パーツの配列として、各オプションを定義します。例えば、次のメニューでは、ユーザーによる選択が可能な 3 つのオプションを 定義しています。
new Menu {labelText = "オプションを選択してください: ",
    menuItems = [
    new MenuItem{name = "One",labelText = "オプション 1"},
    new MenuItem{name = "Two",labelText = "オプション 2"},
    new MenuItem{name = "Three", labelText = "オプション 3"}
    ]}

ユーザーがオプションを選択した際の応答方法の例については、コンソール・ユーザー・インターフェースの作成を参照してください。

ArrayDictionary パーツ

ArrayDictionary は、EGL パーツの一種です。 通常は、コンソール UI 内のデータを表わすために使用されます。 レコードの配列では、1 行を表わす 1 つのレコード・パーツを定義してから、 それらの行の配列を作成します。しかし、ArrayDictionary では、それとは異なり、 複数の列を表わす consoleFields の配列を定義します。 ArrayDictionary は、コンソール UI ウィンドウ上の限られたスペース内で自動的にスクロールするため、コンソール UI の列ごとにデータを定義しておくと便利です。

コンソール UI における ArrayDictionary の詳細な例は、 コンソール UI における配列辞書の使用を参照してください。

コンソール UI における ArrayDictionary の詳細な例は、「EGL 言語解説書」の『コンソール UI における配列辞書の使用』を参照してください。

コンソール UI プログラム

コンソール UI プログラムは、 インターフェースの作成および制御を行う際に通常使用される、EGL プログラムです。 一般に、このプログラムではウィンドウ変数を作成し、EGL ライブラリー ConsoleLib の関数を使用して、 そのウィンドウを表示します。そして、インターフェースを表わすパーツ (ConsoleForm パーツなど) を、 そのウィンドウに取り込みます。 前出の ConsoleForm パーツのサンプルを使用した、簡単な コンソール 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 プラグイン・プロジェクト

EGL では、 コンソール UI プロジェクトをさまざまなモードで実行できます。 コンソール UI アプリケーションを リッチ・クライアント・アプリケーション (RCP) モードで実行するには、 該当するプロジェクトを EGL プラグイン・プロジェクトに変換する必要があります。

コンソール UI アプリケーションの実行で使用可能な モードについての詳細は、コンソール UI のモードを参照してください。 EGL プラグイン・プロジェクトについての詳細は、EGL プラグイン・プロジェクトの作成を参照してください。


フィードバック