跟踪用户是否在 EA 插件中对 Enterprise Architect 模型进行了更改的最佳实践是什么?
What's best practice to track if user has made changes to an Enterprise Architect model in an EA add-in?
期望的行为:
一旦用户对模型进行更改,我的 EA 加载项应该将模型标记为 'dirty'。这允许在关闭文件时有条件地导出为另一种格式,如 if dirty then do export
.
更改可以是模型的外观或逻辑结构的任何类型的修改。
到目前为止,我在 EA_OnNotifyContextItemModified
事件中将布尔值 dirty
设置为 true
,并且它似乎适用于一些简单的测试。但是,我发现该事件的 documentation 有点不清楚。 'context item' 到底是什么?它只是在 EA GUI 中选择的任何模型元素吗?
是否有更好的选项来通知用户更改?
不,没有。上下文项是关注操作的任何内容。 EA 会通过将特定的上下文项作为参数传递给您来告诉您那是什么东西。
EA 是一个奇怪的工具。然而,一旦您习惯了这种陌生感,您就可以很好地使它成为一个有用的工具。我也梦想一个更美好的世界,但它还没有到来。
我注意到,仅将元素、包或图表添加到项目树而不将其拖动到图表上或在图表视图中对其进行编辑不会导致 EA_OnNotifyContextItemModified
事件触发。
要通知加载项向模型添加了任何喜欢的内容,应在 EA_OnPreNewElement
、EA_OnPreNewPackage
和 [=14= 上更新 dirty
标志] 还有。
期望的行为:
一旦用户对模型进行更改,我的 EA 加载项应该将模型标记为 'dirty'。这允许在关闭文件时有条件地导出为另一种格式,如 if dirty then do export
.
更改可以是模型的外观或逻辑结构的任何类型的修改。
到目前为止,我在 EA_OnNotifyContextItemModified
事件中将布尔值 dirty
设置为 true
,并且它似乎适用于一些简单的测试。但是,我发现该事件的 documentation 有点不清楚。 'context item' 到底是什么?它只是在 EA GUI 中选择的任何模型元素吗?
是否有更好的选项来通知用户更改?
不,没有。上下文项是关注操作的任何内容。 EA 会通过将特定的上下文项作为参数传递给您来告诉您那是什么东西。
EA 是一个奇怪的工具。然而,一旦您习惯了这种陌生感,您就可以很好地使它成为一个有用的工具。我也梦想一个更美好的世界,但它还没有到来。
我注意到,仅将元素、包或图表添加到项目树而不将其拖动到图表上或在图表视图中对其进行编辑不会导致 EA_OnNotifyContextItemModified
事件触发。
要通知加载项向模型添加了任何喜欢的内容,应在 EA_OnPreNewElement
、EA_OnPreNewPackage
和 [=14= 上更新 dirty
标志] 还有。