Как остановить редактор Eclipse от закрытия в RCP - PullRequest
3 голосов
/ 28 января 2010

Я работаю над RCP на основе Eclipse. Нам нужно предотвратить закрытие пользователем одного из открытых редакторов.

Желаемое поведение:

  1. пользователь нажимает X в окне редактора или "CTRL + W"
  2. всплывает диалоговое окно, в котором говорится: «Если вы закроете этот редактор, ваша деятельность остановится. Хотите?»
  3. если они нажимают да, он закрывается, если нет, он остается открытым.

Ах да, а это вообще возможно?

Спасибо, дк

Ответы [ 3 ]

6 голосов
/ 28 января 2010

Вы можете использовать org.eclipse.ui.ISaveablePart2, точнее, метод promptToSaveOnClose().

Однако, как сказано в этой теме ,

будет отображаться, только если редактор загрязнен во время его закрытия.

См. Пример в этом SaveableHelper.java исходном файле .

См. Также статью Предотвращение закрытия редактора RCP , в котором объясняется, как работает этот метод:

alt text

4 голосов
/ 02 сентября 2010

Вы также можете отменить сохранение в

@Override
public void doSave(IProgressMonitor monitor) {

по телефону

monitor.setCanceled(true);

В EditorPart реализация

1 голос
/ 04 июля 2012

Не имеет прямого отношения, но я искал способ предотвратить закрытие редактора и нашел этот небольшой взлом, надеюсь, он поможет

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