我正在尝试为某些必须捕获添加通知的 EMF Eclipse 模型开发适配器。它应该做的是,当我向模型添加一些东西时,必须显示一个询问一些问题的对话框。
但是,当我打开模型时,我会收到很多添加通知。我想这是正常的,因为当你打开一个模型时,它必须加载它的所有特性,并且 emf 必须将它们添加到内存模型(或类似的东西)中。
但这是一个严重的问题,因为我不知道来自模型加载或用户交互的“添加通知”是什么。
是否可以进行过滤以跳过来自模型负载的所有通知?
非常感谢!
我正在尝试为某些必须捕获添加通知的 EMF Eclipse 模型开发适配器。它应该做的是,当我向模型添加一些东西时,必须显示一个询问一些问题的对话框。
但是,当我打开模型时,我会收到很多添加通知。我想这是正常的,因为当你打开一个模型时,它必须加载它的所有特性,并且 emf 必须将它们添加到内存模型(或类似的东西)中。
但这是一个严重的问题,因为我不知道来自模型加载或用户交互的“添加通知”是什么。
是否可以进行过滤以跳过来自模型负载的所有通知?
非常感谢!
eclipse emf论坛的人已经回答了我,这就是答案:
适配器是如何连接的?您应该考虑附加它们以响应 Resource.RESOURCE__IS_LOADED 通知,就像 org.eclipse.emf.ecore.change.util.ChangeRecorder.notifyChanged(Notification) 一样。您还可以使用 ((Resource.Internal)eObject.eResource()).isLoading() 进行保护。
我选择了第二个选项,使用 isLoading 的守卫,它就像一个魅力。