我在Eclipse中有一个编辑器。当用户选择关闭它时,会出现一个包含多个选项的对话框。其中一个是“取消”,应该取消关闭事件。我怎么能这样做?
到目前为止我的部分代码:
...
IEditorPart openEditor = page.openEditor(input, CS_STRINGEDITOR_ID);
openEditor.getEditorSite().getPage()
.addPartListener(new IPartListener() {
public void partOpened(IWorkbenchPart part) {}
public void partDeactivated(IWorkbenchPart part) {}
public void partClosed(IWorkbenchPart part) {
Shell sh = new Shell(cv.getViewSite().getShell());
// My MessageDialog with the options, one being "cancel"
CloseDialog closeDialog = new CloseDialog(sh);
closeDialog.open();
int returnCode = closeDialog.getReturnCode();
switch (returnCode) {
case CloseDialog.CANCEL_ID:
// Abort the close event and keep the editor alive
break;
}
}
答案 0 :(得分:2)
此thread points out本身没有结束事件。
Eclipse主要提供活动后事件,即在
IPartListener2
上,partClosed(*)
是a 结束后的活动。您可以在关闭时提供自己的对话框,但只有在显示时才会显示 编辑器在关闭时很脏。见
ISaveablePart2.promptToSaveOnClose()
(如Prevent that a RCP Editor is closed中所示)
但请注意,实施
ISaveablePart2
可能会导致在关闭多个编辑器时打开许多对话框。