【发布时间】:2011-01-10 13:13:09
【问题描述】:
我正在开发基于 Eclipse 的 RCP。我们需要防止已打开的编辑器之一被用户关闭。
期望的行为是:
- 用户单击编辑器窗口中的 X 或“CTRL+W”
- 会弹出一个对话框:“如果您关闭此编辑器,您的活动将停止。您想要吗?”
- 如果他们点击是,它会关闭,如果不是,它会保持打开状态。
哦,是的,这甚至可能吗?
谢谢, gk
【问题讨论】:
标签: eclipse eclipse-rcp
我正在开发基于 Eclipse 的 RCP。我们需要防止已打开的编辑器之一被用户关闭。
期望的行为是:
哦,是的,这甚至可能吗?
谢谢, gk
【问题讨论】:
标签: eclipse eclipse-rcp
您可以使用org.eclipse.ui.ISaveablePart2,更具体地说是方法promptToSaveOnClose()。
但是,正如this thread 中所说,
只有在关闭时编辑器脏了才会显示。
查看SaveableHelper.java source file 中的示例。
另请参阅文章Prevent that a RCP Editor is closed,其中解释了此方法的工作原理:
【讨论】:
你也可以在
中取消保存@Override
public void doSave(IProgressMonitor monitor) {
通过调用
monitor.setCanceled(true);
在EditorPart实现中
【讨论】:
没有直接关系,但我正在寻找一种方法来防止编辑器被关闭,并发现了这个小技巧,希望它可以提供帮助。
page.addPartListener(new IPartListener2() {
// [...]
@Override
public void partClosed(IWorkbenchPartReference partRef) {
try {
page.openEditor(input, id);
} catch (PartInitException e) {
e.printStackTrace();
}
}
});
【讨论】: