IEvent インタフェース

名前空間: NextDesign.Desktop

説明

イベント定義情報を提供します。
マニフェストファイルで定義したイベント定義情報を参照することができます。

所属エリア

名前 説明
イベント イベントハンドラで受け取ったイベントにアクセスするAPI群をエリア別に説明します。

プロパティ

名前 説明
Area イベントエリア名
- application:アプリケーション
- project:プロジェクト
- models:モデル
- commands:コマンド
- editors:エディタ
- pages:ページ
- navigators:ナビゲータ
- informations:情報ウィンドウ
EventName イベント名
マニフェストで定義するイベント名が取得できます。
先頭は大文字に変換されます。

例:
OnAfterStart / OnBeforeQuit
FuncName ハンドラ関数名
マニフェストで定義する関数名が取得できます。

注釈

イベント定義情報の例

例えば、マニフェストの拡張ポイント定義に次のようなイベントが定義されている場合、

{
  // ~(省略)~
  "extensionPoints": {
    "events": {
      "projects" : {
        "onAfterNew" : "Project_OnAfterNew",
        "onAfterOpen" : "Project_OnAfterOpen"
      },
      "models": [
        {
           "class" : "*",
           "onAfterNew" : "Model_OnNew",
           "OnFieldChanged" : "Model_OnFieldChanged",
        },
        {
           "class" : "Actor",
           "onAfterNew" : "Model_Actor_OnNew"
        }
      ]
    }
  }
}

それぞれの対応するイベント発生時には、次のようにイベント定義情報が展開されます。

// プロジェクトを開いた際のイベントの展開内容
IEvent projectOpen;
projectOpen.Area = "project";
projectOpen.EventName = "OnAfterOpen";     // イベント名は先頭が大文字となります
projectOpen.FuncName = "Project_OnAfterOpen";

// モデルの新規作成イベントの展開内容
IEvent modelNewAll;
modelNewAll.Area = "models";
modelNewAll.EventName = "OnAfterNew";
modelNewAll.FuncName = "Model_OnNew";

// Actorの新規作成イベントの展開内容
IEvent modelNewActor;
modelNewActor.Area = "models";
modelNewAll.EventName = "OnAfterNew";
modelNewAll.FuncName = "Model_Actor_OnNew";