我有一个eclipse rcp应用程序,我在其中创建了一个扩展EditorPart的编辑器。
我想在其close()
编辑器操作中执行一些发布资源工作,因此我想覆盖其关闭操作或在关闭事件之前刚刚采取行动的任何方法。
我曾尝试过dispose()
,但为时尚早。
或者是否有任何特定的听众倾听近似事件。
我想要那样:
@override
public void close()
{
//do something resource release related task.
}
更新:基本上我想拦截编辑器的关闭事件。
答案 0 :(得分:6)
您可以将IPartListener
用于此目的:
public class YourEditor extends EditorPart {
@Override
public void init(IEditorSite site, IEditorInput input) throws PartInitException {
getSite().getPage().addPartListener(new IPartListener() {
@Override
public void partOpened(IWorkbenchPart part) {
// TODO Auto-generated method stub
}
@Override
public void partDeactivated(IWorkbenchPart part) {
// TODO Auto-generated method stub
}
@Override
public void partClosed(IWorkbenchPart part) {
// TODO Auto-generated method stub
}
@Override
public void partBroughtToTop(IWorkbenchPart part) {
// TODO Auto-generated method stub
}
@Override
public void partActivated(IWorkbenchPart part) {
// TODO Auto-generated method stub
}
});
}
}
答案 1 :(得分:1)
只需覆盖disposeListener()。
parent.addDisposeListener(new DisposeListener() {
@Override
public void widgetDisposed(DisposeEvent e) {
releaseAllResource();
}
});