動作
各コントロールのイベント間でコントロール操作をスパゲッティ状にコーディングすることを避けるため、イベントを一元管理します。これにより、コントロール間の依存関係を排除することができます。
バージョン
API説明
EventManagerクラス
イベントを一元管理するクラスです。
パッケージ
COM.CURLAP.ADVANCED-UI.EVENTS
スーパークラス
なし
プロパティ
なし
メソッド
register (管理するイベントを登録) ※fromで指定したコントロールのイベントが発生した際、toのイベントを発生させることができます。
引数1(from:EventTarget):fromコントロール
引数2(from-event-class:ClassType):fromイベント
引数3(to:EventTarget):toコントロール
引数4(to-event-class):toイベント
戻り値:int *管理ID(EventManagerの中で一意)
register-some-events (管理するイベントを複数登録)
引数1(from:EventTarget):fromコントロール
引数2(from-event-class:ClassType):fromイベント
引数3(to-events:{Array-of {Tuple2-of EventTarget, Event)}:toコントロールとイベント(複数)
戻り値:{Array-of int} *管理ID(EventManagerの中で一意)
unregister (管理するイベントの解除)
引数1(manage-id:int):解除する管理ID (管理IDは登録時に取得します。)
戻り値:void
unregister-some-events (管理する複数イベントの解除)
引数1(manage-ids:{Array-of int)}:解除する管理ID (管理IDは登録時に取得します。)
戻り値:void
clear (すべての管理するイベントを解除)
戻り値:void
NotifyEventクラス
呼び出し元のコントロールやイベントをもつ通知Eventです。
パッケージ
COM.CURLAP.ADVANCED-UI.EVENTS
スーパークラス
Event
プロパティ
subject:EventTarget 呼び出し元のコントロール
subject-event-class:ClassType 呼び出し元のイベント
利用方法
EventManagerのインスタンスを生成し、registerメソッドに呼び出し元のコントロールとイベント、呼び出すコントロールとイベントを引数にセットし、実行します。これにより、呼び出し元のイベントが発生したと同時に、呼び出し先のイベントを起動します。
{curl 6.0 applet} {import * from COM.CURLAP.ADVANCED-UI.EVENTS} {value || to event. let tf2:TextField = || new EventManager and register. {spaced-vbox
|
RadioFrame(rf)の値が変わったら、TextField(tf1)とTextField(tf2)のNotifyEventが実行されます。また、TextField2の値を変化させた場合、TextField1のNotifyEventが実行されます。
サンプル
関連Curl標準API