0

我需要在主工具栏中创建动态按钮。我找到了一个解决方案,但我只能创建一个按钮(动态贡献项 - 类扩展ContributionItem)。但是我需要创建多个按钮,但我找不到解决方案。

我正在与创建插件的任务作斗争,该插件解析包含菜单和工具栏结构的 XML 文件。我们已经为 Visual Studio 完成了这个插件。原则上它很容易,但我很快发现,这不适用于 Eclipse。有一个小而关键的他者。插件在 Eclipse 中以声明方式实现。该文件plugin.xml是插件基础设施的要点,Java 代码只是辅助性的。

每当所选项目发生更改时,客户都希望刷新菜单和工具栏。Eclipse 缺少完成任务所需的几个特性。主菜单和主工具栏是在 Eclipse 启动时创建的,然后很难重建。

4

3 回答 3

1

在大多数情况下,在 enabledWhen/visibleWhen 元素中定义的条件足以根据上下文(活动部分、选定对象等)过滤贡献。

如果您需要更多自由,请尝试 E4 ToolControl,它允许您实现自己的 UI 元素:

    @PostConstruct
    public void createControls(Composite parent) {
        //your custom code here
    }

更多细节在这里https://www.vogella.com/tutorials/EclipseRCP/article.html#toolcontrols

于 2019-04-11T12:53:31.423 回答
0

据我了解,您希望根据项目资源管理器的选择在主工具栏上有不同的按钮(例如,1 个项目是 java 项目,另一个是 javascript 等)。首先,您必须为主工具栏做出贡献。我认为有一些可用的教程,所以谷歌会提供帮助。主要步骤是: 1. 创建命令 (org.eclipse.ui.commmands) 2. 使用先前声明的命令 id 创建处理程序 (org.eclipse.ui.handlers) 3. 贡献主工具栏 (org.eclipse .ui.menus),带有 menucontribution 和 commandId,带有以下 locationURI:toolbar:org.eclipse.ui.main.toolbar?after=misc

显示/隐藏、启用/禁用菜单项/按钮也可以以声明方式或“混合”方式完成。声明性地表示例如。使用 enabledWhen/visibleWhen... 混合意味着使用属性测试器 (org.eclipse.core.expressions.propertyTester)。有了这个,您可以在 Java 代码中定义您的“启用逻辑”。

于 2012-04-10T13:05:15.820 回答
0

在 Eclipse e4 中,UI 是从基于 EMF 的模型生成的。Application.e4xmi 作为该模型的基础。对模型的贡献可以通过片段(同样是 XML)或通过处理器来完成。处理器是用 Java 编写的,并使用 e4 服务(如零件服务)在运行时修改模型。

我认为您想编写一个处理器来解析您的自定义 XML 并相应地修改 eclipse e4 模型。

于 2012-11-16T12:18:24.307 回答