0

「org.eclipse.ui.startup」拡張ポイントを拡張しようとしています。しかし、それはEclipse e4のようで、呼び出されることさえありません。この拡張機能は Eclipse e4(Juno) で壊れていますか?

4

2 に答える 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
                }
            });

}

(#1) org.eclipse.ui.startup 拡張ドキュメント

于 2016-02-05T11:03:13.797 に答える