私は大学のプロジェクト用のEclipseプラグインを作成しています。ユーザーが終了したときにコードを実行できる必要があり、これを行うための正しいリスナーが見つかりません。私が正常に完了したセーブ・イベントをリッスンし、これが発生したときにメソッドを呼び出す、同様のコードの例を以下に示します。Eclipseプラグインでユーザー出口をリッスンするにはどうすればよいですか?
public class ExecutionListener implements IExecutionListener{
private DataCollector dataCollector;
public ExecutionListener(DataCollector dataCollector)
{
this.dataCollector = dataCollector;
}
public void postExecuteSuccess(String action, Object arg1)
{
if (action.equals("org.eclipse.ui.file.save")) {
dataCollector.writeDatabase();
}
}
私がしたいのは、出口イベントを待ち受けて、このようなときにコードを実行するメソッドを呼び出すことができるリスナーです。私は、コードを実行する前に出口が正常に完了していることを確認することはできないだろうと思うが、「退出前の」リスナーは正常に動作するだろう。また、誰かが正しいListenerを知っている場合は、exitイベントに必要なコマンドIDを教えてもらえますか(上記の例のsaveイベントのcommandIdは "org.eclipse.ui.file.save"です)。
おかげで、ヤコブ
EDIT:javamonkey79のご質問にはお答え:
は、私はこのようなリスナーを追加します。
/* Adds a listener to listen for file save events if needed. */
if (executionListener == null) {
ICommandService service = (ICommandService) Activator.getDefault().getWorkbench().
getService(ICommandService.class);
executionListener = new ExecutionListener();
service.addExecutionListener(executionListener);
}
参照http://stackoverflow.com/questions/515993/what-is-the-correct-way-to-add-a-shutdown-hook-for-an-eclipse-rcp-application/671532 – Uri
私が尋ねた質問は、別の問題に育てられています。すなわち、JVMが不規則にシャットダウンしていることを検出する方法。たとえば、強制的にオペレーティングシステムをシャットダウンした結果です。 –
このリスナーをどのように追加しましたか? – javamonkey79