コンソール UI ウィジェット

RCP モードでコンソール UI を使用するとき (コンソール UIを参照)、 ウィジェット を用いてディスプレイにコントロールを追加することができます。ウィジェットは、ボタン、ラジオ・ボタン、チェック・ボックス、およびコンボ・ボックスなど、グラフィカル・ユーザー・インターフェースの基本要素です。 EGL は、Java™ の標準ウィジェット・ツールボックス (SWT) を使用してこれらの要素を提供します。

EGL では、EGL パーツと同様にこれらのウィジェットを扱います。これらに基づいて、変数を宣言し、それぞれに関連プロパティーが備わります。 すべてのウィジェットには、次のプロパティーが備わっています。
name
コンソール UI プログラムがウィジェットを認識するために使用する名前です。
bounds
ウィジェットのロケーションとサイズを文字数単位で指定する 4 つの整数からなる配列であり、[row, column, height, width] で表します。
以下のウィジェットが使用できます。
ConsoleButton
画面上に隆起部を作成します。ユーザーがこのボタンをクリックすると押し下げられます。クリックを解放すると、ボタンは元に戻ります。 ConsoleButton には、以下のプロパティーが追加されます。
text
STRING であり、この値がボタンに表示されます。
ConsoleButton は、次のイベントを生成します。
PUSHED
ユーザーがボタンをクリックしたことを示します。
ConsoleCheckBox
標準チェック・ボックスを作成します。空白のチェック・ボックスをクリックすると、ボックスは X またはチェック・マーク (プラットフォームによって異なる) を表示します。 チェックされたボックスをクリックすると、ボックスはクリアされます。 ConsoleCheckBox には、以下のプロパティーが追加されます。
text
STRING であり、この値がボタンに表示されます。
ConsoleCheckBox は、次のイベントを生成します。
STATE_CHANGED
ユーザーがチェック・ボックスをクリックしたことを示します。 チェック・ボックスを BOOLEAN 変数にバインドしてボックスの状態を確認します。TRUE は、ボックスがチェックされていることを示します。
ConsoleCombo
標準コンボ・ボックス (ドロップダウン・リストとも呼ばれます) を作成します。 ユーザーが拡張されたボックスから値を選択すると、圧縮されたボックスに選択した値が表示されます。 ConsoleCheckBox には、以下のプロパティーが追加されます。
items
STRING の配列であり、この各値が拡張されたボックスに表示されます。
ConsoleCheckBox は、次のイベントを生成します。
SELECTION_CHANGED
ユーザーがコンボ・ボックスをクリックしたことを示します。 ユーザーが以前と同じ要素を選択した場合、ボックスは引き続きそのイベントを生成します。 チェック・ボックスを整変数 (SMALLINT または BIN(4,0) など) にバインドして、選択した要素に対応する items 配列への指標を取得します。
ConsoleRadioGroup
標準ラジオ・ボタン・セットを作成します。一度に 1 つのラジオ・ボタンのみ選択できます。 ユーザーがセットから値を選択すると、選択したボタンがオンになり、セット内の他のボタンはオフになります。 ConsoleRadioGroup には、以下のプロパティーが追加されます。
items
STRING の配列であり、この各値がボタンの横に表示されます。
ConsoleRadioGroup は、次のイベントを生成します。
SELECTION_CHANGED
ユーザーがラジオ・ボタンの 1 つをクリックしたことを示します。 ユーザーが以前と同じ要素を選択した場合、グループは引き続きそのイベントを生成します。 グループを整変数 (SMALLINT または BIN(4,0) など) にバインドして、選択した要素に対応する items 配列への指標を取得します。
ConsoleList
ストリング値のリストであるリスト・ボックスを作成します。ユーザーはこれらのストリング値を 1 つ以上選択できます。 ConsoleList には、以下の追加プロパティーがあります。
items
STRING の配列であり、この各値がボタンの横に表示されます。
multipleSelect
ユーザーがリスト内の複数の項目を選択 (通常は Ctrl キーを押しながら項目を選択します) できるかどうかを指定する BOOLEAN です。
ConsoleList は、以下のイベントを生成します。
SELECTION_CHANGED
ユーザーがリスト内の選択を変更したことを示します。 ユーザーが現在選択されている要素をクリックした場合、リスト・ボックスは引き続きそのイベントを生成します。 選択した要素に対応する items 配列への指標を取得するには、リスト・ボックスを整変数 (SMALLINT、INT、または BIN(4,0) など) にバインドします。

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) が入ります。

次の簡単なコンソール・レコードには、各タイプのウィジェットが 1 つ含まれています。
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 ウィジェットを扱ったトピックを参照してください。


フィードバック