有没有办法从IResourceDelta获取IJavaElementDelta对象?

时间:2017-01-19 15:20:19

标签: java eclipse-plugin eclipse-jdt

我正在开发一个支持可追溯性的Eclipse插件。我正在实现一个通知系统,告诉用户每当被跟踪的项目发生更改(被删除,重命名或编辑)时,为此我实现了一个IResourceChangeListener,但这并没有给我所有对Java元素的支持。

例如,当我在.java文件中重命名Java方法时,它只告诉我哪个文件已被编辑,但我也希望获得有关该方法的信息。我知道这可以通过实现IElementChangedListener来实现,但它有什么办法吗?我是否真的必须实现两个侦听器(其他文件的ResourceListener和仅用于java元素的ElementChangedListener)或者我可以以某种方式从IResourceDelta获取IJavaElementDelta(通常从ElementChangedListener获取)?谢谢!

2 个答案:

答案 0 :(得分:2)

这两个增量完全不相关。您需要使用两个侦听器。

答案 1 :(得分:0)

尝试检查link example 5。这种描述有一些方法:

  

IResourceDelta及其子项转换为     相应的IJavaElementDelta s。     返回delta是否对应于类路径上的资源。     如果它不是类路径上的资源,则它将作为非java添加     这种方法的发件人的资源。

所以我认为这是可能的。

链接会引导here,你应该检查一下。方法public void processJavaDelta(IJavaElementDelta delta)