イベント
概要
- Next Design 内部処理イベントを受け取って、独自機能を追加できます。
- 購読する Next Design 内部処理イベントを宣言して、それらのイベントにイベントハンドラを関連付けることで、内部処理に連動して独自処理を実行できます。
購読可能なイベント一覧
購読可能なイベントの一覧を以下に示します。
詳細については、 API > 概要 > イベント を参照してください。
アプリケーション
-
エリア名: application
-
イベント名
イベント名 説明 onAfterStart アプリケーション起動後イベント onBeforeQuit アプリケーション終了前イベント
コマンド
-
エリア名: commands
-
イベント名
イベント名 説明 onBeforeExecute コマンド実行前イベント onAfterExecute コマンド実行後イベント -
購読可能なコマンド
プロジェクト
-
エリア名: project
-
イベント名
イベント名 説明 onAfterNew プロジェクト新規作成後イベント onBeforeOpen プロジェクトオープン前イベント onAfterOpen プロジェクトオープン後イベント onBeforeSave プロジェクト保存前イベント onAfterSave プロジェクト保存後イベント onBeforeClose プロジェクトクローズ前イベント onAfterClose プロジェクトクローズ後イベント onBeforeReload プロジェクトリロード前イベント onAfterReload プロジェクトリロード後イベント onAfterModelUnitLoad 追加ロード後イベント onAfterAutoLoad バックグラウンド自動ロード後イベント
プロジェクトオープン後イベント(onAfterOpen)・プロジェクトリロード後イベント(onAfterReload)は、モデルファイルのバックグラウンドの読み込みが完了する前に発生します。また、画面の操作で手動ロード設定のモデルファイルが読み込まれたときも、追加ロード後イベント(onAfterModelUnitLoad)が発生します。詳細は V5.1 の変更点 を参照してください。
モデル
-
エリア名: 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": "") -
複数のエクステンションで同じイベントを購読している場合、エクステンション間でのイベント発火順序は制御できません。 イベントの発火順序はマニフェストの読み込み順になります。
-
複数のエクステンションで同じイベントを購読していて、そのイベントをいずれかのエクステンションでキャンセルした場合、残りのエクステンションではイベント発火しません。
イベントフィルタ
- モデルに対しては、イベントフィルタの値にメタモデルのクラス名(またはクラスの完全修飾名)を指定することで購読するイベントを絞り込みできます。
- エディタに対しては、イベントフィルタの値にビュー定義名を指定することで購読するイベントを絞り込みできます。
- 情報ウィンドウに対しては、イベントフィルタの値にページ名を指定することで購読するイベントを絞り込みできます。
- このイベントフィルタの仕組みを利用して購読するイベントを絞り込むことにより、不必要なイベントに対して無駄にイベントハンドラが呼び出されてレスポンスが低下することを回避できます。