エディタにシェイプを追加する
ERダイアグラムのビュー定義においてシェイプ定義のマッピング対象がクラスとなっている場合、モデルを追加してもERダイアグラム上にシェイプは追加されません(以下、クラス指定のシェイプ。関連ページ)。
ERダイアグラムにクラス指定のシェイプを追加するには、IDiagram.AddNodeShape メソッドを用います。
public void AddNodeShape(ICommandContext c, ICommandParams p)
{
// 現在表示しているダイアグラムを取得します
IDiagram diagram = c.App.Workspace.CurrentEditor as IDiagram;
if (diagram == null)
{
// ダイアグラムを表示していない場合は処理を終了します
c.App.Output.WriteLine("sample", "ダイアグラムを表示していません。");
return;
}
// ダイアグラムの兄弟要素となるよう、
// ダイアグラムのモデルの親モデルの "OwnedElements" フィールドに "Class" メタクラスのモデルを追加します
IModel package = diagram.Model.Owner;
IModel newModel = package.AddNewModel("OwnedElements", "Class");
// 追加したモデルに対応するシェイプを追加します。
if (!diagram.CanAddNodeShape(newModel))
{
// 追加できない場合は処理を終了します
c.App.Output.WriteLine("sample", $"ダイアグラム:{diagram.Model.Name}にモデル:{newModel.Name}に対応するシェイプを追加できません。");
return;
}
diagram.AddNodeShape(newModel);
}
シェイプの削除はこちらを参考にしてください。