如何调整Eclipse 4应用中多插件主工具栏的按钮顺序?
Eclipse e4 工具栏按钮顺序调整与插件分隔实现
针对你提到的多插件fragment.e4xmi维护工具栏的场景,按以下步骤调整顺序并实现插件间虚线分隔:
1. 利用positionInParent属性控制元素顺序
E4的容器元素(比如主工具栏)会根据子元素的positionInParent数值排序,数值越小,显示位置越靠前。操作步骤:
- 打开对应插件的
fragment.e4xmi,找到以主工具栏为父级的子ToolBar元素 - 在Eclipse的属性视图中,找到
positionInParent项,设置自定义数值。比如:- 插件A的子工具栏设为
10 - 插件B的子工具栏设为
20 - 插件C的子工具栏设为
30
- 插件A的子工具栏设为
- 若多个元素使用相同数值,E4会按元素ID的字典序排序,所以尽量给不同插件的子工具栏设置不重复的区间值(比如间隔10),方便后续插入新元素。
2. 添加插件间的虚线分隔
要实现插件按钮组的虚线分隔,有两种方式:
方式一:在主工具栏中插入分隔符
- 打开
Application.e4xmi,找到主工具栏节点 - 右键选择New Child > ToolBarSeparator,创建分隔符元素
- 给分隔符设置
positionInParent数值,放在两个插件子工具栏之间。比如插件A子工具栏是10,分隔符设为15,插件B子工具栏设为20,这样分隔符就会显示在A、B插件按钮组之间。
方式二:在插件子工具栏内部添加分隔符
- 打开插件的
fragment.e4xmi,找到子工具栏节点 - 在子工具栏的开头或结尾添加
ToolBarSeparator元素,设置合适的positionInParent(比如子工具栏内按钮设为10、20,分隔符设为5或25),这样每个插件的按钮组自带前后分隔线。
3. 排查代码干预的情况
如果你的工具栏有自定义处理类(比如动态加载按钮的逻辑),需要确保代码不会覆盖配置的顺序:
- 检查是否有通过
ToolBar.getChildren().add(...)动态添加元素的代码,此时要指定正确的插入索引,或者使用setPositionInParent()方法设置元素的位置属性。 - 若使用
@Inject方式注入工具栏,确保没有自定义排序逻辑干扰默认的positionInParent排序机制。
4. 验证效果
完成配置后,清理项目(Project > Clean),重新构建并启动E4应用,检查工具栏的顺序和分隔符是否符合预期。若顺序仍有问题,排查所有子元素的positionInParent数值是否存在冲突。
内容的提问来源于stack exchange,提问作者Krypt0n112
相关产品推荐
相关产品推荐

