问题标签 [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 投票
3 回答
6547 浏览

java - 如何在激活器中获取 IEclipseContext

我遇到了 Eclipse 4 RCP 应用程序的一个问题。我需要记录一些事件。我需要以某种方式获得对记录器的引用。我知道,如何使用 来做到这一点IEclipseContext,但我无处可寻,如何在IEclipseContext没有依赖注入的情况下获得,我不能在激活器中使用它。请问有大神知道怎么解决这个问题吗?

非常感谢

0 投票
1 回答
565 浏览

eclipse - 如何使window在eclipse 4 rcp中居中?

我使用 e4 创建了一个 eclipse 4 rcp 应用程序,在 eclipse 3.x 中,我们可以修改 ApplicationWorkbenchWindowAdvisor 来实现它,但是在 eclispe 4 中,它没有 ApplicationWorkbenchWindowAdvisor ,那么,如何将窗口设置为居中?

0 投票
1 回答
199 浏览

eclipse - 在 eclipse 4 RCP 应用程序中集成 3.x java 编辑器

需要 eclipse 4 专家帮助决定是否为我的下一个 RCP 应用程序使用 eclipse 4 或 eclipse 3 框架。我已经评估了 eclipse 4 框架,它似乎非常适合我的应用程序,除了我必须在我的应用程序中集成 JDT 的 java 编辑器的一个要求。这里的问题是 JDT 的 java 编辑器本身是在 3.x 上的。因此,是否可以将此 3.x java 编辑器集成到 eclipse e4 框架中。

0 投票
1 回答
198 浏览

java - 如何使用 Jface 同步两个 Eclipse 部件

我在使用数据绑定同步两个 Eclipse 部件时发现了问题,我在两个部件类之间使用了一个模型,其中包含文本框,并且两个类都与该模型绑定。

对于第一部分:

模型:

第 2 部分:

0 投票
1 回答
677 浏览

eclipse - 当最后一部分关闭时,如何使 Eclipse 部分堆栈不消失?

我正在开发一个项目,其主窗口由一个 mpartstack 组成,我在其中从另一个部分动态添加部分。问题是当最后一部分关闭时,mpartstack 消失,而另一部分占用了所有空间。当我尝试添加新零件时,什么也没有发生。

我尝试通过尝试添加新部件来摆弄添加到堆栈中的部件中的 preDestroy 函数。preDestroy 偶尔会起作用,但远不能令人满意。

我已经四处张望,试图找到任何关于该做什么的线索,但除了一些关于此事的错误报告外,我什么也没找到。

那么:mpartstack 可以处于不可关闭的状态,还是有任何教科书的方法来拦截即将关闭的部分?

提前致谢/K

0 投票
0 回答
536 浏览

eclipse - RCP - eclipse4:如何重用来自外部插件的视图

我在 Eclipse SDK 4.3 上,开发基于产品的 E4Application 我正在开发两个插件:“Main”和“External”
Main是带有 application.e4xmi 和产品定义的插件,它取决于 External
External定义了一个视图部分在其中并在 plugin.xml 中声明为扩展名。

view部分当然是按照e4模型开发的(即有注解,不扩展viewPart)。

我的目的是在 Application.e4xmi 中声明视图部分的使用。我已经在应用程序编辑器中指定了类 URI,期望视图部分开箱即用。
但是,这样做会导致依赖注入错误:

当应该在视图的 createControls 方法中注入 Composite 对象时,会产生异常。
我已经使用 DI 一段时间了,没有任何错误,所以我的整体设置没问题。
我认为可能有一些技巧可以重用来自外部插件的视图。
在线搜索并没有提供太多帮助,因为许多问题都是针对通过兼容层重用 eclipse 标准功能的。

有人可以帮忙吗?
提前致谢

0 投票
1 回答
1653 浏览

eclipse-rcp - Eclipse RCP 4.x 显示视图

我在 eclipse 4.x 的库上工作了很短的时间,有人可以告诉我如何从上下文菜单中打开视图?先感谢您。

0 投票
1 回答
2574 浏览

eclipse-rcp - 如何在 Eclipse 4.3 中使用 ParameterizedCommand 注入参数?

我目前正在实现一个 Eclipse 4.3 应用程序并遇到了问题。我尝试将命令参数化以删除特定文件。我的方法对应于Getting parameter of parameterized command in Eclipse RCP 4.2,但我不知何故无法正常工作。

在我的 Application.e4xmi 中,我添加了一个带有参数的命令:

在我的代码中的某一时刻,我创建了命令、设置参数并执行它:

我有一个与命令链接的处理程序,它具有以下执行方法:

一切正常,只是file没有注入,它保持null。当我pcmd在执行之前检查变量时,它告诉我它已将参数正确设置为{cmd0=test}(使用System.out.println(pcmd.getParameterMap());)。当我删除@Optional时,根本不调用执行方法。

某处参数cmd0丢失。我的代码中的错误在哪里?

谢谢!

0 投票
2 回答
733 浏览

java - Eclipse 平台中的 Canvas 是什么

我想开发一款将成为 Eclipse 插件的游戏。但是我还不确定应该使用什么类来绘制 2D 和 3D 对象。随着 Eclipse 转向渲染中性(SWT 或 JavaFX)的 4.x API,这个问题变得更加复杂。

一些旧的 RCP 应用程序列表位于http://www.eclipse.org/community/rcpos.php在 SWT 应用程序中使用 OpenGL 的页面也已经过时,尽管我听说与 OpenGL 的链接有了新的发展。

Eclipse 平台中的现代 Canvas 是什么?

在 Eclipse 插件/应用程序中用于绘制 2D 和 3D 的 API 是什么?

更新:发现http://www.eclipse.org/gef/有 Draw2d http://www.eclipse.org/gef/draw2d/index.php (org.eclipse.draw2d) - 用于显示的布局和渲染工具包SWT 画布上的图形。

0 投票
2 回答
1717 浏览

eclipse - 在 Eclipse E4 RCP 中使用/测试事件服务的正确方法

让我问两个可能归结为一个关于良好应用程序设计的耦合问题;-)

  1. 在 e4 RCP 应用程序中使用基于事件的通信的最佳实践是什么?
  2. 如何为使用依赖注入和 IEventBroker 发送/接收事件的类编写简单的单元测试(使用 JUnit)?

让我们更具体一点:假设我正在开发一个 Eclipse e4 RCP 应用程序,该应用程序由几个需要通信的插件组成。对于通信,我想使用 org.eclipse.e4.core.services.events.IEventBroker 提供的事件服务,以便我的插件保持松散耦合。我使用依赖注入将事件代理注入到调度事件的类中:

在接收方,我有一个类似的方法:

现在的问题:

  1. 为了成功注入 IEventBroker,我的类需要访问当前的 IEclipseContext。我的大多数使用事件服务的类都没有被 e4 应用程序模型引用,因此我必须使用 eg 在实例化时手动注入上下文ContextInjectionFactory.inject(myEventSendingObject, context); 这种方法有效,但我发现自己将大量上下文传递到我使用事件服务的任何地方。这真的是跨 E4 应用程序进行基于事件的通信的正确方法吗?

  2. 如何轻松为使用事件服务(作为发送方或接收方)的类编写 JUnit 测试?显然,由于没有可用的上下文,上述注释都不能单独工作。我理解每个人都相信依赖注入简化了可测试性。但这也适用于像 IEventBroker 这样的注入服务吗?

本文描述了创建您自己的 IEclipseContext 以在测试中包含 DI 的过程。不确定这是否可以解决我的第二个问题,但我也犹豫将所有测试作为 JUnit 插件测试运行,因为为每个单元测试启动 PDE 似乎是不切实际的。也许我只是误解了这种方法。

这篇文章讲的是“简单地模拟 IEventBroker”。是啊,那样最好了!不幸的是,我找不到任何关于如何实现这一点的信息。

这一切让我想知道我是否仍然在正确的轨道上,或者这是否已经是一个糟糕的设计案例?如果是这样,您将如何进行重新设计?将所有与事件相关的操作移动到专用的事件发送器/接收器类或专用插件?