gpt4 book ai didi

enterprise-architect - 项目浏览器未使用包删除脚本更新

转载 作者:行者123 更新时间:2023-12-04 08:23:47 24 4
gpt4 key购买 nike

以下方法删除一个包。问题是项目浏览器永远不会刷新。调用 Repository.RefreshModelView(0) 强制更新,但它会重新打开模型并终止脚本执行。

方法如下:

function clearPackage( pkg ) {
var parent as EA.Package;
parent = Repository.GetPackageByID(pkg.ParentID);

var pkgList as EA.Collection;
pkgList = parent.Packages;

for (var i = 0; i < pkgList.Count; i++) {
var p as EA.Package;
p = pkgList.GetAt(i);

if (p.PackageGUID == pkg.PackageGUID) {
pkgList.Delete(i);
pkgList.Refresh();
parent.Update(); // have tried with and without
return;
}
}
}

在 pkgList.Refresh 之前和之后检查 pkgList.Count 确实显示了大小的变化。同样,问题似乎仅限于项目浏览器。

关于如何刷新项目浏览器有什么想法吗?

交叉发布于 Sparx Forums .

最佳答案

要删除包,您只需删除包本身。对不起 Perl,但那是我的驴:-)

my $p = $rep->GetTreeSelectedObject();
my $par = $rep->GetPackageByID ($p->ParentID);
my $idx = 0;
for my $sp (in $par->Packages) {
if ($sp->PackageID == $p->PackageID) {
$par->Packages->DeleteAt ($idx, 1);
last;
}
$idx++;
}
$rep->RefreshModelView ($par->PackageID);

关于enterprise-architect - 项目浏览器未使用包删除脚本更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26682852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com