使用IElementChangedListener获取更改java文件的路径

时间:2014-02-20 08:23:01

标签: java eclipse-rcp eclipse-plugin

我正在使用IElementChangedListener来监听我正在制作的eclipse插件中的Java模型的变化。

有什么办法可以使用这个Listener来获取更改过的java文件的路径,还是应该尝试不同的Listener?

任何建议或链接都​​表示赞赏。 谢谢

2 个答案:

答案 0 :(得分:1)

IJavaElementDelta事件中提供的ElementChangedEvent使用getElement()方法返回IJavaElement

IJavaElement有一个getPath()方法,它'返回包含此元素的最内层资源的路径'。

您可能需要查看增量中已添加/受影响/已更改的子项以获取所有更改。

答案 1 :(得分:0)

尝试以下方法:

elementChangedListener.elementChanged(ElementChangedEvent event) {
    IJavaElementDelta delta = ElementChangedEvent.getDelta();
    int kind = delta.getKind();
    int flags = delta.getFlags();
    // flags -> F_ARCHIVE_CONTENT_CHANGED, F_ADDED_TO_CLASSPATH, F_CLASSPATH_REORDER, F_REMOVED_FROM_CLASSPATH
    if ((delta.getFlags() & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) != 0) {
        // The contents of an archive has changed in some way
    }
}

请参阅org.eclipse.jdt.core.IJavaElementDelta

的文档