代码之家  ›  专栏  ›  技术社区  ›  GreenKiwi

如何阻止Eclipse编辑器在RCP中关闭

  •  3
  • GreenKiwi  · 技术社区  · 16 年前

    我正在开发一个基于Eclipse的RCP。我们需要防止用户关闭其中一个打开的编辑器。

    期望的行为是:

    1. 用户单击编辑器窗口中的X或“CTRL+W”
    2. 弹出一个对话框:“如果您关闭此编辑器,您的活动将停止。你想去吗?”

    哦,是的,这可能吗?

    谢谢

    3 回复  |  直到 16 年前
        1
  •  6
  •   Community Mohan Dere    9 年前

    你可以用一个 org.eclipse.ui.ISaveablePart2 ,更具体地说是方法 promptToSaveOnClose() .

    但是,如中所说, this thread

    请参见本节中的示例 SaveableHelper.java source file

    另见文章 Prevent that a RCP Editor is closed ,这说明了此方法的工作原理:

    alt text

        2
  •  4
  •   Geniedesalpages    15 年前

    @Override
    public void doSave(IProgressMonitor monitor) {
    

    打电话

    monitor.setCanceled(true);
    

        3
  •  1
  •   Florian Ribon    14 年前

    没有直接关系,但我正在寻找一种方法,以防止编辑被关闭,并发现了这个小黑客,希望它能有所帮助。

    page.addPartListener(new IPartListener2() {
        // [...]
        @Override
        public void partClosed(IWorkbenchPartReference partRef) {
            try {
                page.openEditor(input, id);
            } catch (PartInitException e) {
                e.printStackTrace();
            }
        }
    });