RCP モードでコンソール UI を使用するとき (コンソール UIを参照)、 ウィジェット を用いてディスプレイにコントロールを追加することができます。ウィジェットは、ボタン、ラジオ・ボタン、チェック・ボックス、およびコンボ・ボックスなど、グラフィカル・ユーザー・インターフェースの基本要素です。 EGL は、Java™ の標準ウィジェット・ツールボックス (SWT) を使用してこれらの要素を提供します。
multipleSelect を false (デフォルト) に設定した場合は、リスト内の項目を 1 つだけ選択できます。 ConsoleList にバインドされた変数には、選択した項目の指標が入ります。 最初の項目を選択すると、変数には数値 1 が入ります。5 番目の項目を選択すると、変数には数値 5 が入ります。
multipleSelect を true に設定した場合、変数には選択した項目のバイナリー表現が入ります。 リスト内の各項目には、その位置に応じて 2 の倍数が割り当てられます。最初の項目は 1、2 番目は 2、3 番目は 4、4 番目は 8、5 番目は 16、6 番目は 32 で、以下同じように続きます。 変数の値は、選択されたすべての項目の値を合計したものです。 例えば、最初の項目のみ選択した場合、変数には 1 が入ります。 最初と 2 番目の項目を選択した場合、変数には、この 2 つの選択項目の値の合計である 3 が入ります。 2 番目、5 番目、および 6 番目の項目を選択した場合、変数には 50 (つまり 2+16+32) が入ります。
Record ShowWidgets type ConsoleForm { formsize=[12,55] }
* ConsoleField { position=[2,5], value="First Name" };
firstName ConsoleField { name="firstName", position=[2,20],
fieldLen=15, value="", inputRequired=no };
* ConsoleField { position=[3,5], value="Last Name" };
lastName ConsoleField { name="lastName", position=[3,20],
fieldLen=8, value="", inputRequired=yes };
button1 consolebutton {
name = "button1", bounds = [5,5,1,15], text = "Submit"
};
box1 consolecheckbox {
name = "box1", bounds = [5,6,1,15], text = "Check Me!"
};
combo1 consolecombo {
name = "combo1", bounds = [7,5,1,15]
};
radio1 consoleradiogroup {
name = "radio1", bounds = [5,25,3,15]
};
list1 consoleList {
name = "list1", bounds = [10,25,3,15]
};
end
OnEvent(ConsoleCombo.SELECTION_CHANGED: "combo1")
writeStdOut(myForm.combo1.items[combo1var]);
その他のコード・サンプルについては、「EGL プログラマー・ガイド」のコンソール UI ウィジェットを扱ったトピックを参照してください。