我正在开发一个支持可追溯性的Eclipse插件。我正在实现一个通知系统,告诉用户每当被跟踪的项目发生更改(被删除,重命名或编辑)时,为此我实现了一个IResourceChangeListener,但这并没有给我所有对Java元素的支持。
例如,当我在.java文件中重命名Java方法时,它只告诉我哪个文件已被编辑,但我也希望获得有关该方法的信息。我知道这可以通过实现IElementChangedListener来实现,但它有什么办法吗?我是否真的必须实现两个侦听器(其他文件的ResourceListener和仅用于java元素的ElementChangedListener)或者我可以以某种方式从IResourceDelta获取IJavaElementDelta(通常从ElementChangedListener获取)?谢谢!
答案 0 :(得分:2)
这两个增量完全不相关。您需要使用两个侦听器。
答案 1 :(得分:0)
尝试检查link example 5。这种描述有一些方法:
将
IResourceDelta
及其子项转换为 相应的IJavaElementDelta
s。 返回delta是否对应于类路径上的资源。 如果它不是类路径上的资源,则它将作为非java添加 这种方法的发件人的资源。
所以我认为这是可能的。
链接会引导here,你应该检查一下。方法public void processJavaDelta(IJavaElementDelta delta)