1

Eclipse ワークベンチの標準的な動作は、呼び出し間で開いているファイルのセットを保持し、再起動時にそれらの同じファイルを再び開くことを試みることです。いずれかのファイルが欠落している場合、欠落しているファイルに関するエラー メッセージを示すプレースホルダ エディタが表示されます。Eclipse RCP アプリケーションの動作を変更して、欠落しているファイルをサイレントにスキップするようにしたいと考えています。

私たちはすでに独自IApplicationWorkbenchAdvisor、 などを書いています。これらのクラスは、さまざまな動作をプラットフォームに注入することができますが、これらのクラスを通じてこれらを達成する方法は見つかりませんでした。望ましい動作をどのように実装できますか?

4

1 に答える 1

2

私がこれを処理した方法は、実際には作成中のエディタにあります: オーバーライドsetInputして、渡された IEditorInput を呼び出して有効性を調べますeditorInput.exists()(FileEditorInput の場合は、ファイルが存在するかどうかを確認します)。カスタム エディター入力、必要なその他の検証を使用します。

editorInput が検証に失敗した場合は、エディターを非同期的に閉じます (Eclipse は、エディターが開き終わる前に閉じることを好みません)。

public void close () {
    Display.getDefault().asyncExec(new Runnable () {
        public void run () {
            getSite().getPage().closeEditor(YourEditorClass.this, false);
        }
    });
} 

この問題を処理する別の方法は、起動時にエディターを再度開くことを無効にすることです。「Eclipse では、次の起動時に自動ロードせずに終了するときに開いているファイル (エディター) を閉じる方法」を参照してください。

于 2012-08-29T21:40:31.710 に答える