データ・アクション・モデル・クラス

データ・アクション・モデル・クラスにはいくつかの異なるタイプがあります。

AbstractDataAction

このクラスの役割は次のとおりです:

  • Knockoutモデルの格納(サブクラスは独自のプロパティでこれを自由に拡張できます)。
  • サブクラスが実装する必要のある抽象メソッドの定義:
    • + invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext) <<abstract>>

      渡されたコンテキストでデータ・アクションを起動します(コール元は常にDataActionManagerである必要があります)。

    • + getGadgetInfos(oReport): AbstractGadgetInfo[] <<abstract>>

      このタイプのデータ・アクションを編集するためのユーザー・インタフェース・フィールドをレンダリングする役割を持つGadgetInfosを構築して返します。

    • + validate() : DataActionError

      データ・アクションを検証して、有効な場合はnullを、無効な場合はDataActionErrorを返します。

  • データ・アクションのユーザー・インタフェース・フィールドの一般的な部分をレンダリングするために使用される次のメソッドのデフォルト実装を提供:
    • + getSettings():JSON

      レポートに含める準備のためにデータ・アクションのKnockoutモデルをJSONにシリアライズします(komapping.toJS(_koModel)を使用します)。

    • + createNameGadgetInfo(oReport) : AbstractGadgetInfo

      データ・アクションの「名前」フィールドをレンダリングできるGadgetInfoを構築して返します。

    • + createAnchorToGadgetInfo(oReport) : AbstractGadgetInfo

      データ・アクションの「アンカー先」フィールドをレンダリングできるGadgetInfoを構築して返します。

    • + createPassValuesGadgetInfo(oReport) : AbstractGadgetInfo

      データ・アクションの「値を渡す」フィールドをレンダリングできるGadgetInfoを構築して返します。

サブクラスでは、ベース・クラスによって提供されるすべてのGadgetInfoが必要とされるわけではないため、状況によってはこれらすべてのメソッドをコールする必要はありません。この方法で各フィールドのレンダリングを抽出することで、サブクラスは必要なガジェットを自由に選択できます。一部のサブクラスでは、これらの一般的なデータ・アクション・ガジェットの異なる実装を提供することも可能です。

CanvasDataAction、URLNavigationDataAction、HTTPAPIDataAction、EventDataAction

これらは、データ・アクションの基本タイプの具象クラスです。これらのクラスは、独自に動作して、これらのタイプのデータ・アクションに対して一般的なユーザー・インタフェースを提供します。また、カスタム・データ・アクション・プラグインで拡張できる有益なベース・クラスとしても動作します。

  • CanvasDataAction: キャンバスにナビゲートするために使用します。
  • URLNavigationDataAction: 新しいブラウザ・ウィンドウでWebページを開くために使用します。
  • HTTPAPIDataAction: HTTP APIに対するGET/POST/PUT/DELETE/TRACEリクエストを作成してHTTP Responseをプログラムで処理するために使用します。
  • EventDataAction: イベント・ルーターを通じてJavaScriptイベントを公開するために使用します。

各クラスの役割は次のとおりです:

  • ベース・クラスからの抽象メソッドの実装。
    • invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext)

      このメソッドは、KOModelで定義されたプロパティと指定されたDataActionContextオブジェクトを結合してデータ・アクションを起動します。

    • getGadgetInfos(oReport): AbstractGadgetInfo[]

      このメソッドの操作内容は次のとおりです:

      • AbstractGadgetInfosを格納した配列を作成します。
      • AbstractGadgetInfoを配列に配置する個々のcreateXXXGadgetInfo()メソッドをコールします。
      • 配列を返します。
  • データ・アクションの特定のサブクラスに固有の個々のガジェットを作成するための追加メソッドを提供。

これらの具象クラスのサブクラスでは、カスタム・ユーザー・インタフェースのスーパークラスによって提供されるすべてのガジェットを使用する必要はありません。この方法で各ガジェットの構築を抽出することで、サブクラスは必要なガジェットを自由に選択できます。

DataActionKOModel、ValuePassingMode

DataActionKOModelクラスは、AbstractDataActionの異なるサブクラスによって共有されるベースKOModelを提供します。DataActionKOModelクラスを参照してください。