Eclipse-“虚拟”资源

Sev*_*öst 5 eclipse eclipse-plugin eclipse-rcp cnf

我正在编写一个使用虚拟树状文件结构的插件。基本上,它的行为就像包含文件的标准文件系统一样,区别在于这些文件实际上并不存在于文件系统中的特定位置,而仅仅是Java对象。

导航器(使用Common Navigator Framework的自定义实现)当前使用SettingProvider支持这些功能,并且与这些对象的交互就像与标准文件的交互一样实现。

但是,现在必须将标记粘贴到这些对象上。据我了解Eclipse框架,标记只能附加到* IResource * s,因此为了实现此目标,我应该创建IResource的实例,而不是使用* SettingProvider * s 。

但是,标准实现只允许从文件系统创建资源。由于存在类似虚拟文件夹的内容,因此必须有可能创建虚拟资源,即在文件系统中没有实际位置的资源。但是我该怎么办呢?我的研究似乎无济于事...

或者,是否有可能以其他方式实现所需的功能(将标记粘贴到CNF导航器中的对象上)?

提前致谢!

Tom*_*del 2

是的,标记只能附加到工作区中的资源。为了实现自定义文件系统,Eclipse 提供了 EFS 机制,以提供“类似文件”的结构,有关详细信息,请参阅http://wiki.eclipse.org/EFS - 在此页面上,您还可以找到示例的链接实现应该让您了解如何实现您自己的文件系统贡献者。但是:恕我直言,在您的场景中使用 Eclipses 标记系统是错误的方法。所有内容都与工作区模型紧密耦合,这与自定义数据模型不能很好地配合。根据我的经验,最好的方法是

  1. 拥有自己的完全适合您的数据模型的标记模型,
  2. 为你的树实现一个装饰器(通过扩展点)
  3. 实现类似问题视图的东西来可视化标记。

虽然实现类似的已经存在的东西听起来有点奇怪,但它会为您省去很多麻烦,因为您的场景不受工作区模型和 API 边界的限制。