イベント
概要
- Next Design 内部処理イベントを受け取って、独自機能を追加できます。
- 購読する Next Design 内部処理イベントを宣言して、それらのイベントにイベントハンドラを関連付けることで、内部処理に連動して独自処理を実行できます。
購読可能なイベント一覧
購読可能なイベントの一覧を以下に示します。
詳細については、 API > 概要 > イベント を参照してください。
アプリケーション
-
エリア名: application
-
イベント名
イベント名 説明 onAfterStart アプリケーション起動後イベント onBeforeQuit アプリケーション終了前イベント
コマンド
-
エリア名: commands
-
イベント名
イベント名 説明 onBeforeExecute コマンド実行前イベント onAfterExecute コマンド実行後イベント -
購読可能なコマンド
プロジェクト
-
エリア名: project
-
イベント名
イベント名 説明 onAfterNew プロジェクト新規作成後イベント onBeforeOpen プロジェクトオープン前イベント onAfterOpen プロジェクトオープン後イベント onBeforeSave プロジェクト保存前イベント onAfterSave プロジェクト保存後イベント onBeforeClose プロジェクトクローズ前イベント onAfterClose プロジェクトクローズ後イベント onBeforeReload プロジェクトリロード前イベント onAfterReload プロジェクトリロード後イベント onAfterModelUnitLoad 追加ロード後イベント
モデル
-
エリア名: models
-
イベント名
イベント名 説明 onBeforeNew モデル追加前イベント onAfterNew モデル追加後イベント onFieldChanged フィールド値変更後イベント onBeforeDelete モデル削除前イベント onBeforeChangeOwner モデル親変更前イベント onAfterChangeOwner モデル親変更後イベント onBeforeChangeOrder モデル 順序変更前イベント onAfterChangeOrder モデル順序変更後イベント onBeforeNewRelation 関連追加前イベント onAfterNewRelation 関連追加後イベント onValidate モデル検証時イベント onError エラー追加時イベント onSelectionChanged モデル選択イベント onModelEdited モデル編集イベント onUndoRedo アンドゥ・リドゥイベント
エディタ
-
エリア名: editors
-
イベント名
イベント名 説明 onShow エディタ表示イベント onHide エディタ非表示イベント onSelectionChanged エディタ内モデル選択イベント
ページ
-
エリア名: pages
-
イベント名
イベント名 説明 onBeforeChange ページ変更前イベント onAfterChange ページ変更後イベント
ナビゲータ
-
エリア名: navigators
-
イベント名
イベント名 説明 onShow ナビゲータ表示イベント onHide ナビゲータ非表示イベント onSelectionChanged ナビゲータ内モデル選択イベント
情報ウィンドウ
-
エリア名: informations
-
イベント名
イベント名 説明 onShow 情報ウィンドウページ表示イベント onHide 情報ウィンドウページ非表示イベント onSelectionChanged 情報ウィンドウページ表示要素選択イベント onDoubleClick 情報ウィンドウページ表示要素ダブルクリックイベント
イベントの共通事項
-
購読しないイベントはマニフェストに記述する必要ありません。
-
マニフェスト内で同じイベントを重複定義した場合は、次の優先順位で該当するイベントが有効となります。
(1) イベントフィルタの値に、クラス名もしくは対象名を指定しているイベント
(2) イベントフィルタの値に、クラスの完全修飾名を指定しているイベ ント(モデルのイベントフィルタのみ対象)
(3) イベントフィルタの値に、ワイルドカード:*
を指定、もしくは、イベントフィルタを省略しているイベントさらに、同じ優先順位内でイベントを重複定義した場合は、最初に定義されたイベントが有効となります。
-
イベントを重複定義し、優先順位が高いイベント定義の中でイベントハンドラが空のイベントを記述すると、そのイベント購読が解除されます。(例:
"onAfterNew": ""
) -
複数のエクステンションで同じイベントを購読している場合、エクステンション間でのイベント発火順序は制御できません。 イベントの発火順序はマニフェストの読み込み順になります。
-
複数のエクステンションで同じイベントを購読していて、そのイベントをいずれかのエクステンションでキャンセルした場合、残りのエクステンションではイベント発火しません。
イベントフィルタ
- モデルに対しては、イベントフィルタの値にメタモデルのクラス名(またはクラスの完全修飾名)を指定することで購読するイベントを絞り込みできます。
- エディタに対しては、イベントフィルタの値にビュー定義名を指定することで購読するイベントを絞り込みできます。
- 情報ウィンドウに対しては、イベントフィルタの値にページ名を指定することで購読するイベントを絞り込みでき ます。
- このイベントフィルタの仕組みを利用して購読するイベントを絞り込むことにより、不必要なイベントに対して無駄にイベントハンドラが呼び出されてレスポンスが低下することを回避できます。
モデルのイベントフィルタ
- class プロパティに対象モデルのメタモデルでのクラス名を指定することで、特定クラスのモデルでのみイベント購読可能です。
- クラス名の代わりにクラスの完全修飾名も指定できます。
- 複数クラスを対象とする場合はクラス名をカンマ区切りで指定します。
- 値にワイルドカード:
*
を指定、もしくは、プロパティを省略すると、全モデル共通でのイベント購読も可能です。 - 継承元クラス名は指定できません。モデルのクラス名を指定する必要があります。
エディタのイベントフィルタ
- viewDefinition プロパティに対象ビュー定義名を指定することで、特定のビュー定義でのみイベント購読可能です。
- 複数のビュー定義を対象とする場合はビュー定義名をカンマ区切りで指定します。