Eclipse 月食-“;虚拟的;资源
我正在编写一个插件,它使用一个虚拟的树状文件结构。基本上,它就像一个包含文件的标准文件系统,不同之处在于这些文件实际上并不存在于文件系统中的特定位置,而是仅仅是java对象 目前,使用SettingProvider的navigator(使用公共navigator框架的自定义实现)支持这些对象,并且与这些对象的交互就像与标准文件的交互一样实现 但是,现在有必要将标记粘贴到这些对象上。根据我对Eclipse框架的理解,标记只能附加到*IResource*s,因此为了实现这一目标,我应该创建IResource的实例,而不是使用*SettingProvider*s 但是,标准实现只允许从文件系统创建资源。由于存在虚拟文件夹之类的东西,因此必须有可能创建虚拟资源,即在文件系统中没有实际位置的资源。 但是我该怎么做呢?我的研究似乎毫无结果 或者,是否有可能以不同的方式实现所需的功能(将标记粘贴到CNF navigator中的对象上)Eclipse 月食-“;虚拟的;资源,eclipse,eclipse-plugin,eclipse-rcp,cnf,Eclipse,Eclipse Plugin,Eclipse Rcp,Cnf,我正在编写一个插件,它使用一个虚拟的树状文件结构。基本上,它就像一个包含文件的标准文件系统,不同之处在于这些文件实际上并不存在于文件系统中的特定位置,而是仅仅是java对象 目前,使用SettingProvider的navigator(使用公共navigator框架的自定义实现)支持这些对象,并且与这些对象的交互就像与标准文件的交互一样实现 但是,现在有必要将标记粘贴到这些对象上。根据我对Eclipse框架的理解,标记只能附加到*IResource*s,因此为了实现这一目标,我应该创建IReso
提前谢谢 对,标记只能附加到工作区中的资源。为了实现自定义文件系统,Eclipse提供了EFS机制,提供了“类似文件”的结构,有关更多信息,请参阅-在本页上,您还可以找到指向示例实现的链接,这些链接应该可以让您了解如何实现自己的文件系统贡献者。 但是:依我看,在你的场景中使用日食标记系统是错误的。所有的东西都与工作空间模型紧密耦合,而工作空间模型与自定义数据模型不兼容。根据我的经验,最好的办法是
虽然实现已经存在的类似功能听起来有点奇怪,但它会为您节省很多麻烦,因为您的场景不受工作区模型和api的限制。实现自定义标记系统听起来确实最合理。非常感谢。@Tom Seidel建议不要使用eclipse标记,因为通常的概念是重用eclipse功能。我有类似的东西,在
EditorPart
中有一个TableViewer
和一个编辑器部分,它从文件中获取输入。我可以使用该资源创建一个标记,然后使用IGotoMarker
收听此标记的选择(例如在标记视图中),并将选择设置为TableViewer
。我现在如何向人们解释不使用这种方式来使用eclipse默认视图?在一直鼓吹相反的观点之后。未来会出现什么样的问题?@2c00L好吧,我的信息就是要把这些概念用在它的初衷中。如果不在对象模型中处理IResource
s,则不应添加额外的代码来满足概念和接口,尽管这是不同的。例如,绑定到IResource
的EditorPart
是重用eclipse标记功能的典型场景。