我正在为Eclipse编写多标签编辑器。这个插件有几个选项卡,最后一个是文本源 - 类似于PDE中的plugin.xml编辑器。
它背后有一些模型,用于在选项卡中显示一些信息,这些信息基于文本源中的数据。用户可以编辑源,当他/她切换到另一个选项卡时,模型会更新。这很好。
问题在于有人在外部编辑器中编辑源文件。然后刷新项目,模型也应该刷新。但是我怎么能实现这个目标呢?
我尝试使用addResourceChangeListener
,它通知我的预刷新事件,但如果我的文件将要更新它不包含信息(例如,如果有人试图刷新整个项目,则只包含项目资源)。
我有其他想法是在预刷新事件发生时添加文档侦听器并在更改后处理程序中删除它。但是问题在于,如果文件没有更改并且没有更新,则不会发送更改后的事件,因此我会留下不必要的文档侦听器,这将通知用户在上一个(源)选项卡中完成的所有编辑
我将不胜感激。
答案 0 :(得分:1)
刷新当找到更改的文件时,会将其报告为已更改。您可能需要收听http://www.eclipse.org/articles/Article-Resource-deltas/resource-deltas.html所示的POST_CHANGE通知。