我正在为 Eclipse 编写多选项卡编辑器。这个插件有几个选项卡,最后一个是文本源——类似于 PDE 中的 plugin.xml 编辑器。
它背后有一些模型,用于在选项卡中显示一些信息,这些信息基于文本源中的数据。用户可以编辑源,当他/她切换到另一个选项卡时,模型会更新。这很好用。
问题是当有人在外部编辑器中编辑源文件时。然后刷新项目,模型也应该刷新。但我怎样才能做到这一点?
我尝试使用addResourceChangeListener
,它通过预刷新事件通知我,但它不包含我的文件是否要更新的信息(例如,如果有人试图刷新整个项目,则只有项目资源)。
我的另一个想法是在预刷新事件发生时添加文档侦听器,并在更改后处理程序中将其删除。但是这里的问题是,如果文件未更改且未更新,则不会发送更改后事件,因此我将保留不必要的文档侦听器,该侦听器将被告知用户在最后一个(源)选项卡中所做的所有编辑.
我将不胜感激。