取消关闭事件

时间:2010-08-11 13:27:26

标签: eclipse

我在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;
            }
          }

1 个答案:

答案 0 :(得分:2)

thread points out本身没有结束事件。

  

Eclipse主要提供活动后事件,即在IPartListener2上,partClosed(*)是a   结束后的活动。

     

您可以在关闭时提供自己的对话框,但只有在显示时才会显示   编辑器在关闭时很脏。见ISaveablePart2.promptToSaveOnClose()

(如Prevent that a RCP Editor is closed中所示)

  

但请注意,实施ISaveablePart2可能会导致在关闭多个编辑器时打开许多对话框。