Показывать теги на диаграмме Enterprise-Architect через надстройку
Я использую следующий код для создания диаграммы в Enterprise-Architect (надстройка с C#):
using EA;
...
public int AddDiagram(string name)
{
Package treeSelectedPackage = repository.GetTreeSelectedPackage();
Diagram dgr = treeSelectedPackage.Diagrams.AddNew(name, "Extended::Requirements");
dgr.Update();
treeSelectedPackage.Diagrams.Refresh();
treeSelectedPackage.Update();
return dgr.DiagramID;
}
хранилище является EA.Repository
-Объект.
Я могу добавить элементы на диаграмму, но мне нужно включить отображение тегов / значений тегов на диаграмме. В Enterprise-Architect вы включаете его:
щелкните правой кнопкой мыши на диаграмме -> Свойства... -> Вкладка "Элементы" -> Показать отделения: отметьте "Теги"
Что я должен добавить к методу выше, чтобы включить это для новой диаграммы?
2 ответа
В Diagram
класс, некоторые свойства диаграммы доступны для настройки (например, ShowPackageContents
), а другие нет. Свойство тега element является одним из последних.
Тем не менее, есть два дополнительных атрибута, которые инкапсулируют другие свойства, StyleEx
а также ExtendedStyle
, которые соответствуют t_diagram
таблицы StyleEx
а также PDATA
столбцы соответственно. Обе они предназначены для чтения / записи, но их содержимое не документировано, поэтому нет гарантии, что компоновка не изменится от одной версии EA к другой (хотя на практике вы в безопасности, поскольку EA, как правило, очень хорошо поддерживает обратную работу. совместимость).
Каждый на форме keyword=value;
где значение в большинстве случаев равно 1 или 0 для true/false. Свойство tag элемента находится в ExtendedStyle
и называется ShowTags
,
Советник устанавливает все эти свойства при создании диаграммы, но вы хотите изменить только одно. Так что вам нужно сделать, это создать диаграмму, включающую Update()
позвони, сделай поиск ExtendedStyle
, заменяя ShowTags=0;
с ShowTags=1;
, а затем позвоните Update()
снова.
Возможно, вам придется обновить базу данных, "ShowTags=0;" в таблице t_diagram используйте метод repository.SQLQuery