我有一个包含多个图表(包含元素)的项目。我想关闭这个特定项目并将图表移动到其他更合适的项目中。
移动图表很简单。问题是,现在我必须手动查找此特定图表的所有相关元素,并将它们逐个移动到另一个项目。由于我在原始项目的所有图表中都有相当多的元素,因此这非常繁琐。
我想知道在EA中处理这样的重构是否更简单?
答案 0 :(得分:5)
在开箱即用的EA中没有更简单的方法,没有。但是哪里有遗嘱就有办法。
首先,制作项目的副本。我所描述的解决方案将破坏其结构。
其次,创建一个空包并将图表移到那里。
第三,在Browserscript
组中创建一个VBScript(工具 - 脚本)。称之为“收集图元素”。在编辑器中,使用以下内容替换已注释掉的otDiagram
案例:
case otDiagram
' Code for when a diagram is selected
dim theDiagram as EA.Diagram
set theDiagram = Repository.GetTreeSelectedObject()
dim dObj as EA.DiagramObject
dim element as EA.Element
for each dObj in theDiagram.DiagramObjects
set element = Repository.GetElementByID(dObj.ElementID)
element.PackageID = theDiagram.PackageID
element.Update()
next
此脚本遍历图表中显示的所有元素,并将它们移动到图表所在的包中。
通过右键单击包浏览器中的图表并选择“脚本 - 收集图表元素”来运行脚本。脚本完成后,您可能需要重新加载包(右键单击包浏览器中的包,选择Contents - Reload Current Package)。
最后,将软件包导出到XMI(右键单击软件包浏览器,选择Import / Export - Export Package to XMI File),然后将其导入目标项目。
答案 1 :(得分:0)
您还可以尝试将图表放入包中,然后将其导出到XML文件并从目标项目中导入。
答案 2 :(得分:-1)
这可能会有所帮助:
适用于第 15 版
项目 1 - 从哪里复制图表
项目 2 - 图表的粘贴位置
适用于第 10 版
项目 1 - 从哪里复制图表
项目 2 - 图表的粘贴位置
这会将图表复制为一个完整的图像(单个组件),我认为一旦将其粘贴到新项目中,您将无法更改图表的实际组件。