如何阻止Eclipse编辑器关闭RCP

时间:2010-01-28 18:45:41

标签: eclipse eclipse-rcp

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

理想的行为是:

  1. 用户在编辑器窗口中单击X或“CTRL + W”
  2. 弹出一个对话框说:“如果你关闭这个编辑器,你的活动就会停止。你想要吗?”
  3. 如果他们点击是,则关闭,如果不是,则保持打开状态。
  4. 哦,是的,这甚至可能吗?

    谢谢, GK

3 个答案:

答案 0 :(得分:6)

您可以使用org.eclipse.ui.ISaveablePart2,更具体地说,使用方法promptToSaveOnClose()

但是,如this thread所述,

  

只有编辑器在关闭时是脏的才会显示。

请参阅此SaveableHelper.java source file中的示例。

另请参阅文章Prevent that a RCP Editor is closed,该文章解释了此方法的工作原理:

alt text

答案 1 :(得分:4)

您也可以取消

中的保存
@Override
public void doSave(IProgressMonitor monitor) {

致电

monitor.setCanceled(true);

EditorPart 实现中

答案 2 :(得分:1)

没有直接相关但我正在寻找一种方法来阻止编辑关闭并找到这个小黑客,希望它可以帮助。

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