SDM エンジン

SDM エンジンは、データからグラフィックスへのマッピングを制御します。
データからグラフィックスへのマッピングのプロセスには次の 4 つの重要な要素があります。
  • 表示または編集をするデータへのインターフェースとなるデータ・モデル。 このデータ・モデルは、完全に GUI から独立しており、使用アプリケーションのビジネス・オブジェクトのみを参照します。
  • ダイアグラムを全体としてスタイリングするレンダラーおよびそれに含まれるグラフィック・オブジェクト。
  • データ・モデルを表すグラフィック・オブジェクトが作成されるグラファー
  • グラフィック・オブジェクト上のユーザー・アクションを許可するインタラクター。
データ・モデルとビューにレンダリングされるグラフィック表示の間の関係を示すダイアグラム。
IlvSDMModel クラスと IlvSDMRenderer クラスは、IlvSDMEngine の内部に描かれています。
IlvSDMModel はデータ・ソースからデータをロードします。次にこのデータは、IlvSDMRenderer によってロードされたスタイル・シートによって変換されます。
IlvSDMRenderer からの出力は IlvGrapher に渡されて、初回レンダリング・プロセスが完了します。ビューでグラフィックが編集されると、インタラクターが IlvSDMModel への情報を更新し、レンダリング・プロセスが再開します。
SDM のデータからグラフィックスへのマッピング
上の図に示すように、データ・モデルとグラフィック表示の間のマッピングは、双方向で行われます。
  1. データ・モデルからグラフィックへ: レンダリング・プロセスはスタイル・シートによって制御されます。このスタイル・シートによって、それぞれの特定のデータ・オブジェクトをグラファー でどのように表示させるかを SDM エンジンに伝えることができます。 レンダリング・プロセスは、専用レンダラーによって行われます。
    • データ・モデル が読み込まれると、SDM エンジンがそれを調べ、グラファー内でデータ・モデルによって定義されたノードとリンクを表すグラフィック・オブジェクトを作成します。
    • データ・モデルにおけるオブジェクト状態が変更されると、SDM エンジンは、変更されたデータ・オブジェクトを表すグラフィック・オブジェクトを更新します。オブジェクト状態は、外部アプリケーション・イベントが原因で変わったり、ユーザーがオブジェクト・プロパティー を直接編集した後で変わったりする可能性があります。
  2. グラフィックからデータ・モデルへ: 編集 プロセスは、基礎となっているデータ・モデルに直接作用する組み込み編集機能に依存しています。 編集アプリケーションでのアクションは、インタラクターによって実装されます。次に例を示します。
    • (例えば、エディターで) ユーザーがグラフィック・オブジェクトを移動させると、SDM エンジンがデータ・モデル内でオブジェクトの幾何学プロパティーを更新します。
    • (例えば、ナビゲーション・アプリケーションで) ユーザーがノードを展開したり折りたたむと、SDM エンジンはデータ・モデル内のオブジェクトの展開/折りたたみ状況を更新します。
ダイアグラム・コンポーネントに関連付けられた SDM エンジンにアクセスするには、 getEngine メソッドを使用します。同様に、ダイアグラム・コンポーネントに関連付けられた SDM ビューにアクセスするには、 getView メソッドを使用します。以下のコード例は、これらのメソッドの使用を示しています。
SDM エンジンと SDM ビューの取得
IlvSDMEngine engine = diagrammer.getEngine();
IlvSDMView view = diagrammer.getView();
IlvDiagrammer クラスをまったく使用しない選択をすることも可能です。代わりに、SDM エンジン ( IlvSDMEngine インスタンス) と SDM ビュー ( IlvSDMView インスタンス) を自分で作成することができます。