RCP開発者の皆様、こんにちは。
ECLIPSE RCPアプリケーションに実装postWindowClose()
したいと考えています。
このメソッドをコーディングする前に、アプリケーションを閉じたときにメソッドが呼び出されるかどうかを確認するための簡単なテストを行ったので、次のようにしました。
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
import org.eclipse.ui.application.WorkbenchWindowAdvisor;
public class MainWindowControl extends WorkbenchWindowAdvisor{
public MainWindowControl(IWorkbenchWindowConfigurer configurer) {
super(configurer);
// TODO Auto-generated constructor stub
}
@Override
public void postWindowClose() {
// TODO Auto-generated method stub
super.postWindowClose();
System.out.println("close");
}
}
close
:がECLIPSEコンソールに表示されることを期待していますが、アプリケーションを閉じた後も空白のままです。
必要なすべてのプラグインが追加され、アプリケーションの起動または終了時にエラーは発生しません。
それで、何か足りないのですか?
このメソッドを実装する理由は次のとおりです。
- メッセージ ボックス :
Are you sure you want to close the application
- 実行中のすべてのスレッド、アプリケーションのアップロード ファイルを強制終了し、実行中のアプリケーションを閉じてもアップロードが続行されます。アプリケーションを閉じるときにそれらを中止したい。
編集 :
私のライフサイクルクラス:
package upload.center.util;
import org.eclipse.e4.ui.workbench.lifecycle.PostContextCreate;
import org.eclipse.e4.ui.workbench.lifecycle.PreSave;
public class WindowLifeCycle {
@PostContextCreate
public void postContextCreate()
{
// TODO start up code here
System.out.println("open");
}
@PreSave
public void preSave()
{
// TODO add shutdown code here
System.out.println("close");
}
}
私の plugin.xml :
<product ....
<property
name="windowLifeCycle"
value="bundleclass://UploadCenter.Source/upload.center.util.WindowLifeCycle">
</property>
...</product>
私が十分に明確であることを願っています。
イスマイル