「org.eclipse.ui.startup」拡張ポイントを拡張しようとしています。しかし、それはEclipse e4のようで、呼び出されることさえありません。この拡張機能は Eclipse e4(Juno) で壊れていますか?
質問する
1238 次
2 に答える
1
私は同じ問題を抱えていて、答えを見つけることができませんでしたが、その過程で、私の目的にさらに適した LifeCycleHandler を発見しました。それはあなたにとっても良い選択肢かもしれません。
startup-extension と同様に、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/
于 2012-12-28T17:06:57.357 に答える
1
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
}
}
Application Startup Complete でイベントを処理するためのフックを追加します
@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
}
});
}
于 2016-02-05T11:03:13.797 に答える