メインコンテンツまでスキップ

ビュー定義の種類を調べる

ビュー定義の種類を取得するにはIEditorDef.Type, IElementDef.Typeを用います。 これは、ダイアグラムビューでの条件付き書式変更のためのコールバック関数の登録対象を決定するために、特定の種類のビュー定義を取得したい場合などに利用できます。

エディタ定義の種類(IEditorDef.Type)の場合、次の種類名を取得できます。

エディタ種類種類名
ERダイアグラムERDiagram
ツリーダイアグラムTreeDiagram
シーケンスダイアグラムSequenceDiagram
ドキュメントフォームDocumentForm
ツリーグリッドTreeGrid
カスタムCustom

エディタ要素定義の種類(IElementDef.Type)の場合、次の種類名を取得できます。

フォームから取得できる要素

エディタ要素種類種類名
テキストボックスTextBox
リッチテキストボックスRichTextBox
チェックボックスCheckBox
コンボボックスComboBox
リストList
グリッドGrid
モデル参照コントロールModelReferenceControl
エンティティコントロールEntityControl
グループコントロールGroupControl
グリッド列GridColumn

ダイアグラム(ERダイアグラム、ツリーダイアグラム)から取得できる要素

エディタ要素種類種類名
シンプルシェイプSimpleShape
コンパートメントシェイプCompartmentShape
ポートシェイプPort
コネクタシェイプConnectorShape

ツリーグリッドから取得できる要素

エディタ要素種類種類名
リストList
エンティティコントロールEntityControl

シーケンス図から取得できる要素

エディタ要素種類種類名
ライフラインLifeline
実行仕様ExecutionSpecification
複合フラグメントFragment
相互作用の利用InteractionUse
状態不変式StateInvariant
破棄Destruction
メッセージ端MessageEnd
ノートNote
フレームFrame
メッセージMessage
ノートアンカNoteAnchor
注意

現在、上記以外の要素定義について取得は可能ですが未サポートです。

プロファイルに定義されているエディタ定義とそのエディタの要素定義を表示する例です。

public void GetDefinitionType(ICommandContext c, ICommandParams p)
{
// プロファイルを取得します
IProfile profile = c.App.Workspace.CurrentProject.Profile;

// すべてのエディタ定義を取得します
IEditorDefCollection editorDefs = profile.ViewDefinitions.Editors;

// エディタ定義とそのエディタの要素定義を出力します
foreach (IEditorDef editorDef in editorDefs)
{
c.App.Output.WriteLine("sample", $"EditorDef: {editorDef.DisplayName}, Type:{editorDef.Type}");

IElementDefCollection elements = editorDef.Elements;
foreach(IElementDef element in elements)
{
c.App.Output.WriteLine("sample", $" ElementDef: {element.DisplayName}, Type:{element.Type}");
}
}
}
備考

上記のサンプルコードでは試験的に実装された次のAPIを使用しています。

  • IEditorDef.DisplayName プロパティ
  • IElementDef.DisplayName プロパティ

これらのAPIは品質保証しておらず、API仕様にも未記載のものです。ご利用される場合はユーザー様の責任でご利用ください。