Tag: e4

如何在E4中使用Eclipse 3.x视图?

我对Eclipse 3.x开发很有经验,现在想开发一个E4应用程序。 因此,我测试了一个简单的例子,以便开始使用新的东西。 我一步一步地遵循本教程但是导致了同样的错误。 但是,他没有得到这些错误。 我正在使用Eclipse Luna(4.4.2)并安装了E4 Tools(0.17) 。 我已经创建了一个新的Eclipse 4应用程序,并使用Import 3x – > View as CompatibilityView将Common.e4xmi作为共享部件添加到Common Resource Navigator(Project Explorer)。 然后我添加了一个引用共享部分的占位符 。 我已将所有必要的插件添加到产品的依赖项中。 我还添加了兼容性插件。 但是,当我启动应用程序时,我在InjectorImpl#internalMake()#331获得了一个InjectionException ,它只是: if (unresolved(actualArgs) != -1) continue; 调试unresolved()让我到以下几点( InjectorImpl#489 ): Creatable creatableAnnotation = desiredClass.getAnnotation(Creatable.class); 其中desiredClass是类org.eclipse.ui.internal.ViewReference 。 然后函数返回1,导致继续大写和exception。 stacktrace是以下( 在这里完整 ): !ENTRY org.eclipse.e4.ui.workbench 4 0 2015-05-06 13:00:05.899 !MESSAGE Unable to create class […]

使用p2更新Eclipse E4应用程序

我正在Eclipse E4应用程序中添加更新function。 为此,我使用了Lars Vogel的源代码和教程 。 当我测试我的应用程序时,provisioningJob始终为null。 它在运行Eclipse时应该只为null。 但是当我尝试更新导出的应用程序时,provisioningJob仍然为null。 我做错了什么? public class UpdateHandler { private static final String REPOSITORY_LOC = System.getProperty(“UpdateHandler.Repo”, “file:////updateServer/repository”); @Execute public void execute(final IProvisioningAgent agent, final Shell shell, final UISynchronize sync, final IWorkbench workbench) { Job updateJob = new Job(“Update Job”) { @Override protected IStatus run(final IProgressMonitor monitor) { return checkForUpdates(agent, shell, sync, […]

在E4中打开编辑器部分

在E3中,这是一个基本用例:我们想要基于某个模型对象打开一个编辑器(或视图或部件,无论你想要什么),然后包装在IEditorInput 。 在E4中,这似乎是在没有替换的情况下被删除的function之一。 但是你可以重新发明轮子: public static final String DATA_MODEL = “model”; @Inject private EPartService partService; @Inject private EPartService partService; @Inject private MApplication application; public void open(String editorId, Object editorInput) { MPart part = this.partService.createPart(editorId); part.getTransientData().put(DATA_MODEL, editorInput); this.partService.showPart(part, PartState.ACTIVATE); PartStack editorStack = (MPartStack) this.modelService.find(“org.acme.application.stack”, this.application); editorStack.setVisible(true); editorStack.getChildren().add(part); } (如果我错了,请纠正我。这似乎是丑陋和过于复杂的方式,是正确的方式™。) 那么,如果已有编辑器输入怎么办? 在E3中,编辑器刚刚被带到顶部并被激活。 在E4 ……好吧,由于没有编辑器,应用程序无法处理这种情况也就不足为奇了。 所以我们在上面的方法的顶部添加了以下内容: for (final […]

Eclipse e3到e4的迁移/改编(首选) – 建议

我得到了什么 我得到了一个近乎完成的e3应用程序,但需要e4的dependency injectionfunction,因此我转移到开普勒。 现在在e4中,如果我将我的应用程序作为e3应用程序运行,那么e3插件正在运行。 但是,如果我更改为Application.e4xmi ,系统将失败。 (不知何故预料到这一点) 问题 如何将我的e3插件移动到e4以便我的观点和视图正常工作(我有很多人!我无法删除它们 – 如果添加了插件,我需要扩展它们!)还有菜单贡献,处理程序/命令需要工作( 片段中没有任何东西.4xmi被添加到gui) 我到现在为止做了什么 我将api更改为e4,因此我不再使用IWorkbench或PlatformUI,也不再使用ViewPart接口(还有一段路要走,只能在一个插件中进行测试) 将我的plugin.xml (e3代码)转换为e4 片段 .e4xmi(但是找到了(链接到stackoverflow) ,在e4中打破了贡献的视图/透视图。) 我在我的plugin.xml中添加了fragment.e4xmi作为扩展名并删除了其他所有内容(e3-style) 资源 堆栈溢出 Lars Vogel 乔纳斯赫尔明 编辑/更新 错误376486 – Eclipse 4 IDE无法通过片段或处理器扩展 – 所以如何扩展您的e4应用程序 – 如果它不通过片段或处理器工作? 提高解决方案的可能性我将问题分开并在此处描述了一个部分

如何在Eclipse E4应用程序中启动时创建一些东西?

我想在E4 RCP应用程序启动后运行一些东西。 怎么做?

Eclipse e4 RCP:核心表达式 – 更少的XML-hell?

我正在开发一个E4 RCP应用程序,并且有一个上下文菜单,根据选择,菜单项是否可见。 我发现这样做的方法是使用plugin.xml中定义的核心表达式,如下所示: 这样可以工作,如果所选项目是Class1或Class2的实例,则会显示菜单项。 这一切似乎都是一种非常讨厌的做事方式! 当添加其中许多时,它将成为维护和调试的噩梦。 任何人都可以表现出更少的XML-ish方式吗? Java中纯粹的编程方法会很棒!

如何在激活器中获取IEclipseContext

我遇到了Eclipse 4 RCP应用程序的一个问题。 我需要记录一些事件。 我需要以某种方式获得对记录器的引用。 我知道,如何使用IEclipseContext做到这IEclipseContext ,但我无处可寻,如何在没有dependency injection的情况下获取IEclipseContext ,我无法在激活器中使用。 你有谁知道,请问如何解决这个问题? 非常感谢

PropertyTester的触发器评估

两年前的代码必须升级到E4,现在一堆东西不再起作用了。 其中一个是IEvaluationService如果这样使用: IEvaluationService service = (IEvaluationService) PlatformUI.getWorkbench().getService(IEvaluationService.class); service.requestEvaluation(“org.acme.printable”); 我如何(重新)触发PropertyTester的评估? 由于E4实际上还没有准备好生产,我需要针对E3(兼容层)的解决方法。 相关问题 – 但是这个用户在E4中搜索等效的,而我需要一个在E3中工作的用户。 有趣的是,如果我用替换标签就行了。 在那种情况下, IEventBroker#post和IEventBroker#send工作。 这是一个类似的问题 。 该用户使用Eclipse 4.2 – 我用4.5,4.6和4.7测试了该问题。