我试图扩大“org.eclipse.ui.startup”增广点。 但似乎在eclipse E4,它甚至不获取调用。 被这个扩展是Eclipse E4破碎(朱诺)
Answer 1:
我有同样的问题,但没有找到一个答案,但在这个过程中,我发现了LifeCycleHandler这甚至对我的目的更好。 这可能是你一个不错的选择也是如此。
正如启动扩展您可以从您的plugin.xml引用的处理程序:
<property name="lifeCycleURI" value="platform:/plugin/<plug-in-id>/<path-to-handler-class>" />
在处理程序中您可以使用标注来标记要调用以及依赖注入的方法:
public class StartupHandler {
@Inject
Foo bar;
@PostContextCreate
public void startup(IEclipseContext context) {
// do something
}
}
你可以在这里找到一个详细的例子: https://marcteufel.wordpress.com/2011/05/05/231/
Answer 2:
IStartup#earlyStartup()需要的相容性层,因此它不会在纯E4应用工作。 (参见#1 )
要在纯E4应用程序启动过程中,你应该使用一个生命周期挂钩。 所以:
从plugin.xml中引用您的ApplicationLifecycle处理程序类
<property name="lifeCycleURI" value="platform:/plugin/<plug-in-id>/<path-to-handler-class>" />
写你的生命周期处理程序类
public class ApplicationLifecycleHandler {
@PostContextCreate
public void startup(IEclipseContext context) {
// do initialization
}
}
添加挂钩以处理应用程序启动完成事件
@PostContextCreate
public void postContextCreate(final IEventBroker eventBroker, etc .. ) {
//
eventBroker.subscribe(UIEvents.UILifeCycle.APP_STARTUP_COMPLETE,
new EventHandler() {
@Override
public void handleEvent(Event event) {
// Your code executed at startup,
// after application startup is completed
}
});
}
(#1) org.eclipse.ui.startup扩展文档
文章来源: Eclipse e4 : IStartup extension not working