动态工具栏项目

时间:2012-04-06 12:10:43

标签: eclipse-rcp eclipse-plugin

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

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

客户希望在更改所选项目时刷新菜单和工具栏。 Eclipse缺少完成任务所需的几个功能。主菜单和主工具栏在Eclipse的初创公司中被重置,然后很难重建。

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

如果您需要更多自由,请尝试使用E4 ToolControl来实现自己的UI元素:

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

更多详细信息,请点击https://www.vogella.com/tutorials/EclipseRCP/article.html#toolcontrols