ウィジェットにはすべて、ランタイム・イベントに応答して起動される関数を指定するための、プロパティー・セットが含まれています。この場合の関数は、イベント・ハンドラー とも呼ばれます。
次の表に、使用可能なイベントを示します。ただし、特定のタイプのウィジェットは特定のイベントに応答します。例えば、ボタンは onClick に応答し、onChange には応答しません。また、2 つのユーザー・アクションには、「フォーカスを得る」(ウィジェットにタブで移動するかウィジェットを選択する) または「フォーカスを失う」(別のウィジェットにタブで移動するか別のウィジェットを選択する) が関係することにも注意してください。
| イベント | 意味 |
|---|---|
| onChange | onChange は、ユーザーがウィジェットを変更したとき、およびスクリーン内のフォーカスをそのウィジェットから移動したときに発生します。変更を取り消したときにも発生します。 |
| onClick | onClick は、ユーザーがウィジェットをクリックしたときに発生します。 |
| onFocusGained | onFocusGained は、ウィジェットがフォーカスを得ると発生します。 |
| onFocusLost | onFocusLost は、ウィジェットがフォーカスを失うと発生します。JavaScript の同等のイベントは onBlur です。 |
| onKeyDown | onKeyDown は、ユーザーがいずれかのキーを押したときに発生します。多くのブラウザーでは、このイベントは、ユーザーがキーを押している限り、繰り返し発生します。onKeyDown が発生するたびに、onKeyPress の発生が続きます。 |
| onKeyPress | onKeyPress は、ユーザーがいずれかのキーを押したときに発生します。多くのブラウザーでは、このイベントは、ユーザーがキーを押している限り、繰り返し発生します。onKeyPress が発生するたびに、onKeyDown の発生が先行します。 |
| onKeyUp | onKeyUp は、(キーを押している) ユーザーがキーを離したときに発生します。 |
| onMouseDown | onMouseDown は、ユーザーがいずれかのマウス・ボタンを押したときに発生します。 |
| onMouseMove | onMouseMove は、スクリーン内のカーソルがウィジェットの境界内に存在する間に、ユーザーがマウスを移動したときに繰り返し発生します。 |
| onMouseOut | onMouseOut は、ユーザーがマウスを移動して、スクリーン内のカーソルがウィジェットから外れたときに発生します。 |
| onMouseOver | onMouseOver は、JavaScript では onMouseIn と呼ばれているイベントです。 このイベントは、ユーザーがマウスを移動して、スクリーン内のカーソルがウィジェット内に入ったときに発生します。このイベントは、例えば、ページの特定のパーツのカーソル記号を変更する場合に使用します。 |
| onMouseUp | onMouseUp は、ユーザー (マウス・ボタンを押している) がマウス・ボタンを離したときに発生します。 |
| onSelect | onSelect は、textArea ウィジェットまたは textField ウィジェットでテキストが選択されたときに発生します。 |
myButton Button { text = "Copy Input to Output", onClick ::= click };
演算子 ::= は、click という名前の関数を動的配列に追加します。ここでは、ユーザーがウィジェットを宣言したときに、各配列がイベントに指定された、イベント関連の配列のセットが即時に使用可能になることが想定されます。
myButton Button { text = "Start", onClick ::= click, onClick ::= function02 };
myButton.onClick ::= function03;
この例では、ユーザーがクリックすると関数が click、function02、function03 の順に起動されます。
hLink HyperLink { text = "www.ibm.com",
href = "http://www.ibm.com",
onClick ::= handleClickLink };
function handleClickLink(e Event in)
// allow access only to personnel with an explicitly specified status
if (...)
return;
end
e.preventDefault();
end
コンテナー内のウィジェットが指定されたタイプのイベント・ハンドラーのセットを持っていない場合、そのイベントをコンテナーで使用できます。例えば、あるボタンがボックス (B という名前) 内にあり、そのボタンが onClick イベントを処理しない場合、そのイベントを B で使用できます。この動作はイベント伝搬と呼ばれ、コンテナーのコンテナーに、コンテナー階層の任意のレベルまで拡張します。例えば、B 自体がボックス (A) 内にあり、ボタンも B も onClick イベントを処理しない場合、そのイベントを A で使用できます。
コンテナー階層内のいずれかのレベルでイベントがウィジェットによって処理される と、そのイベントはそれを埋め込んでいるウィジェットには伝搬されません。
Rich UI により、組織専用のイベント・タイプを定義する方法が提供されます。 詳細については、『Rich UI ウィジェット・セットの拡張』の具体的には @VEEvent プロパティーのセクションを参照してください。