ビュー定義の種類を調べる
ビュー定義の種類を取得するには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仕様にも未記載のものです。ご利用される場合はユーザー様の責任でご利用ください。