问题标签 [e4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
646 浏览

java - Eclipse e4 RCP 访问插件之间的服务

我目前正在使用 Eclipse 4.2M6 开发我的第一个 Eclipse e4 RCP 应用程序。我正在开发一个主插件,它具有我的应用程序的核心代码,并将许多服务定义为扩展,以允许其他插件/片段连接到应用程序以添加新功能。

我的主要服务具有其他插件应该使用的方法来注册新功能,并以编程方式添加到主应用程序的模型中。但是,我不确定如何让这些插件在插件启动时查找服务并注册自己。

一个例子:

我在主插件中的服务界面:

我在第二个插件中想要什么:

0 投票
2 回答
2751 浏览

eclipse - Eclipse e4 上下文菜单

我正在尝试使用 Eclipse 4.2 构建 RCP 应用程序。

第一个问题;我有一个TreeViewer. 在树查看器中选择一个项目时,我需要MParts显示两个堆叠的项目之一。如何在 e4 中激活零件堆栈中的零件?

第二; 我有一个与我的部件之一关联的上下文菜单。我需要仅在右键单击某些复合材料时才出现菜单。我有一个鼠标按下处理程序,它正在将一个包含我需要的所有数据的对象添加到当前上下文(IEclipseContext)中,但我不知道如何从 a 访问它CoreExpression(这似乎是控制菜单)。鼠标向上时,该对象将从上下文中删除。说我的课是RightClickData。如何编写核心表达式来测试RightClickData当前上下文中是否存在 的实例?

编辑,我的一部分Application.e4xmi

0 投票
1 回答
5862 浏览

eclipse - e4 动态菜单贡献

这个功能从 Kepler M4 开始就已经实现了,关于使用的详细信息见我的博客

我想实现对位于视图工具栏中的处理程序菜单的完全动态菜单贡献。在 Eclipse 3 中,可以添加“动态”作为 org.eclipse.ui.menus 对菜单的贡献!

我已经发现www.vogella.com/blog/2010/10/26/processors-e4-model解释了如何通过处理器模型扩展动态地为菜单做出贡献,但我正在谈论一个完全动态的菜单实现,它会改变在每次通话时。子菜单。如前所述,在 Eclipse 3.x 中通过动态菜单贡献和将 isDynamic() 设置为 true 来实现这一点是没有问题的。

我已经尝试了几种方法:

开放的、未经尝试的解决方案

  • 插入 ToolControl 以尝试 SWT 方法 -> 相当复杂但可能有效

我已经有一段时间了,但似乎无法理解 E4 中这个问题的正确实现。

-- 这个问题也在Eclipse 论坛中被问到 - 动态菜单贡献

- - - 更新

到目前为止,我尝试了一种不同的方法:

我在菜单中添加了一个 HandledToolItem(请参见下图)

片段命令方法

并且使用以下代码,我试图干扰菜单的构建方式,代码由相应的调用。图像中引用的命令处理程序。

可以看到,一旦创建菜单,就会查询此代码,以确定该命令是否可执行。从 1 到 2 的所有代码都是为了找到正确的 MMenu 元素来处理。2 - 3 中的代码创建一个 MenuItem 并在该字段中增加一个计数器。

但是在 3 我第一次打开菜单时遇到了java.util.ConcurrentModificationException !我假设此时菜单正在遍历 elemMenu.getChildren() 并且我不允许启用!

那么关于整个 e4 模型一直在变化的所有模糊之处是什么;)(开个玩笑,我知道这是一个 baaaad hack !!!)

问题是:我真的认为添加完全动态菜单部分的可能性是最好的可用性工具之一,如果不能像在 E3 中那样在 E4 中实现它,这是一种非常严重的可能性下降!!!

- 更新

已为此https://bugs.eclipse.org/bugs/show_bug.cgi?id=389063提交了一个 Eclipse 错误

0 投票
1 回答
1022 浏览

eclipse - 如何使用 E4 编程模型创建视图作为 Eclipse 4.2 或更高版本的插件?

大多数现有的 Eclipse 插件都使用 的扩展注册表和子类ViewPart,再加上兼容层。因此,编写一个新视图(尤其是使用 PDE 中的新插件向导)会生成如下所示的插件:

是否可以利用 E4 编程模型来创建如下视图:

并将其连接到现有的 Eclipse 4.2 实例中,以便它显示在“显示视图”菜单中?如果是这样,它是如何以声明方式连接的(因为它LegacyIDE.e4xmi是不可变的并且无法添加)。

0 投票
2 回答
1603 浏览

eclipse - Eclipse 4 e4 - 关于对话框

我正在构建一个 Eclipse 4 应用程序,并且我想创建一个从 Eclipse 3 已知的关于对话框。我使用了 Menu Spy 并学习了以下内容:

活跃的贡献位置 URI:

活动动作定义标识符:

活跃贡献项目类:

贡献插件:

问题: 我能否以某种方式使用此操作在我的应用程序中打开或扩展关于对话框?

0 投票
4 回答
3276 浏览

eclipse-rcp - 如何重新启动 e4 RCP 应用程序

如果 IApplication.start 返回 IApplication.EXIT_RESTART,则将重新启动基于 3.* 的 RCP 应用程序。E4Application 类似乎总是返回 EXIT_OK。

org.eclipse.ui.IWorkbench 也有重启方法,org.eclipse.e4.ui.workbench.IWorkbench 没有。

那么如何重新启动 e4 RCP 应用程序呢?

0 投票
2 回答
849 浏览

eclipse-rcp - 手动触发Eclipse4(e4)类的方法,使用注入?

我有一个类,它注入了一个 MApplication 。它是一个处理程序。我想手动触发处理程序的方法。

问题:当我从另一个类手动实例化处理程序时 - MApplication 为空。我触发 Handler 的类已经注入了一个 MApplication,所以这不是生命周期问题。

问题:如何触发类中具有@Inject 注释方法的方法?

0 投票
1 回答
1431 浏览

java - Eclipse 4 RCP Part 类最佳实践

我正在学习新的 Eclipse 4 RCP 平台,但遇到了一个有趣的问题。

MPart假设我正在为我的 Application.e4xmi 中定义的一个零件类设计:

我正在使用 WindowBuilder 来创建 ui,但我希望它没有任何行为代码,所以我创建了一个类来处理这样的交互:

这是一个好习惯还是我在这里重新发明轮子并且e4已经为此提供了一些解决方案?如果不是,我如何将这些类连接在一起?我想避免在 Eclipse 上下文之外创建实例。由于官方的 e4 文档相当稀疏,如果有人可以链接我一本详尽的书或参考手册,我可以在其中找到答案,那就太好了。

0 投票
2 回答
934 浏览

e4 - 以编程方式加载 e4 应用程序模型

我正在尝试以编程方式加载 e4 应用程序模型,以便能够迭代模型元素。目前我面临的问题是,我不知道如何正确加载它。

鉴于Application.e4xmi我尝试使用简单加载现有模型来简单地加载文件,但这并没有导致填充资源(null)。

然后我发现org.eclipse.e4.tools.emf.ui.common.XMIModelResource,但是我无法使用以下代码实例化模型

当我得到Package with uri 'http://www.eclipse.org/ui/2010/UIModel/application' not found.这个ecore但是位于已经导入的org.eclipse.e4.ui.model.workbench

有人对此有提示吗?谢谢!

0 投票
1 回答
1446 浏览

java - 如何为我的 Eclipse RCP 4 应用程序创建自定义命令?

我正在编写一个 e4 应用程序,我正在尝试创建一个自定义命令,但文档不知何故缺乏细节。我有一个带有检查按钮的工具栏,我想要实现的是有一个命令,它有一个布尔参数,告诉我的处理程序是否检查了检查按钮。

我尝试了可视化模型编辑器,但我只能在那里硬编码参数。我必须实现MCommand接口还是有一些更简单的解决方案?你能为我指出正确的方向吗?