【发布时间】:2018-06-07 09:29:18
【问题描述】:
我正在开发 Enterprise Architect C# 插件。我正在项目浏览器中创建多个包和元素。
我正在使用Repository.ShowInProjectView() API 来关注项目浏览器中的一个元素。目前我要求模型中第一个包的所有子包在元素创建完成后展开。
是否有一个 EA API 可用。请帮忙。提前致谢。
【问题讨论】:
标签: c# packages enterprise-architect
我正在开发 Enterprise Architect C# 插件。我正在项目浏览器中创建多个包和元素。
我正在使用Repository.ShowInProjectView() API 来关注项目浏览器中的一个元素。目前我要求模型中第一个包的所有子包在元素创建完成后展开。
是否有一个 EA API 可用。请帮忙。提前致谢。
【问题讨论】:
标签: c# packages enterprise-architect
正如@Arshad 所说。
您可以只编写一个递归方法来调用每个叶子包上的Repository.ShowInProjectView()。
就像(在元语言中)
func unfold(root) {
if root.packages.count == 0 {
Repository.ShowInProjectView(root.element);
return;
}
for subRoot in root.packages { unfold(subRoot); }
}
这将通过一个包的所有子包递归。当到达叶子时,它会以Repository.ShowInProjectView 展开(当然还有它的所有父节点)。
要关注包的第一个元素,请使用
Repository.ShowInProjectView(package.elements.getat(0))
【讨论】:
没有任何 API 调用可用于扩展项目浏览器中的所有子包。
【讨论】: