从Eclipse 3迁移至Eclipse 4,如何在插件中自定义工作台?
Eclipse 3 → Eclipse 4 自定义透视图头部迁移方案
疑问1:如何创建、配置e4xmi文件添加顶部透视图头部
- 第一步:添加E4依赖
在插件的MANIFEST.MF中引入必要的E4工作台相关bundle:org.eclipse.e4.ui.workbench;bundle-version="1.7.0", org.eclipse.e4.ui.model.workbench;bundle-version="1.2.0", org.eclipse.e4.ui.di;bundle-version="1.2.0", org.eclipse.e4.core.contexts;bundle-version="1.8.0" - 第二步:创建e4xmi模型文件
在插件资源目录(如src/main/resources)下新建e4xmi文件(例:custom-perspective-header.e4xmi),核心配置:- 根节点选择
Application,依次添加Window→TrimBars→Top Trim节点 - 在Top Trim下添加
TrimContribution,设置唯一ID(如com.yourplugin.perspective.header.trim),并关联你的自定义控件类
- 根节点选择
- 第三步:改造自定义控件类
将原CustomPerspectiveHeader适配E4依赖注入模式,用@PostConstruct注解初始化SWT控件:public class CustomPerspectiveHeader { @Inject public void postConstruct(Composite parent, EPartService partService, IPerspectiveService perspectiveService) { // 原createWindowContents中的SWT控件创建逻辑迁移至此 // 通过partService、perspectiveService获取透视图列表、当前透视图信息 // 实现用户名、角色展示逻辑 } } - 第四步:注册模型到插件
在plugin.xml中扩展org.eclipse.e4.ui.workbench.model扩展点,指定e4xmi文件路径:<extension point="org.eclipse.e4.ui.workbench.model"> <fragment uri="platform:/plugin/com.yourplugin/custom-perspective-header.e4xmi"> </fragment> </extension>
疑问2:能否仅在现有布局基础上添加头部,还是需完整布局?
可以仅在现有布局基础上添加透视图头部,无需重新定义完整工作台布局:
- Eclipse4支持**模型片段(Model Fragments)**机制,允许你只定义需要新增的UI部分(如顶部Trim贡献),注册后E4工作台会自动将片段合并到原有应用模型中
- 无需覆盖整个Application或Window结构,只需在e4xmi中定义
TrimContribution或ToolControl,并通过模型片段扩展指定附加到现有窗口的Top Trim区域 - 如果是基于Eclipse4兼容模式运行原Eclipse3 RCP应用,还可以在
WorkbenchWindowAdvisor的postWindowCreate()方法中,通过E4模型API动态添加Trim贡献,避免完全重构原有布局
内容的提问来源于stack exchange,提问作者YogiWatcher
相关产品推荐
相关产品推荐

