如何将纯E4Editor与文件结尾相关联? 我创建了一个包含一些插件的功能,其中实现了编辑器。我通过p2 updatesite安装我的功能,将我的功能贡献给传统的E4应用程序。 我在哪里可以为我的编辑器定义文件关联。我可以在fragment.xmi中或以编程方式定义吗?
提前致谢, 塞巴斯蒂安。
答案 0 :(得分:0)
如评论中所述,纯e4应用程序不包含Eclipse RCP 3提供的任何编辑器功能。因此,如果您希望将文件扩展名与编辑器关联,那么您首先必须携带在文件类型和编辑的概念!
虽然自己在E4中实现这些功能并不是很难。 Tom Schindl在他称之为The Simple e4 IDE的演示中完成了这项工作。您可以找到源代码right here。
基本上,假设您已经实现了导航器(也在Tom的演示中!),您将首先引入编辑器的概念。在e4中,编辑器只是标准的e4部分,可以保存。您可以使用e4提供的@Persist
注释!
现在要将您的编辑器与某种文件类型相关联,您必须提供扩展机制。 Tom创建了一个新的EditPartDescriptor
,允许您直接在应用程序模型中注册带有特定文件扩展的编辑器。如果您对此更熟悉,也可以像以前一样使用简单的Eclipse扩展点。
现在您已找到一种方法将编辑器与一个或多个文件扩展连接起来,您只需要一种方法来打开这些编辑器,最好使用e4 Command
和关联的Handler
。
Tom简单地将此逻辑放在simpleide/navigator/internal/ResourceNavigator.java
中,相关代码是180到200行。在这里,他只是循环遍历所有已注册的EditorPartDescriptors
检查文件名和{{1 }}。虽然我建议使用ParameterizedCommand
来选择文件,然后在ISelectionService
或甚至是单独的服务中确定并打开正确的编辑器。
希望我已经提供了足够的信息来帮助您开始实施所需的功能。看看Simple e4 IDE演示,我已经设法在我自己的应用程序中实现类似的功能。这也是了解e4的好方法!
我很高兴提供我自己实施的示例,或者在Tom的代码中指出正确的方向,因为我已经因为自己的事业而变得非常熟悉它。但是,由于我们是否在谈论e4或3.x兼容性代码存在一点混淆,我现在就把它关掉。
P.S。一旦我有足够的声誉,我还会添加更多相关文档的链接。