检查eclipse编辑器文档是否被其他编辑器更改

时间:2014-11-04 19:59:17

标签: java eclipse eclipse-plugin swt editor

我创建了一个自定义eclipse编辑器(AbstractDecoratedTextEditor),我需要知道另一个编辑器何时修改并保存在编辑器中打开的文件。

例如,我在自定义eclipse编辑器中打开了文档A,并在另一个编辑器中修改并保存了该文档,我需要在发生这种情况时执行一些任务。

我尝试使用侦听器IDocumentListener:

    final IEditorInput input = editor.getEditorInput();
    IDocumentProvider documentProvider = editor.getDocumentProvider();
    IDocument document = documentProvider.getDocument(input);

    document.addDocumentListener(new IDocumentListener() {
        @Override
        public void documentAboutToBeChanged(DocumentEvent arg0) {
            //Empty
        }

        @Override
        public void documentChanged(DocumentEvent arg0) {
            // Do something HERE
            doTask();
        }
    });

但是documentChanged方法执行了2次:

1)当编辑器超出eclipse编辑并保存文件时。 (那是我需要的)

2)当我使用自定义编辑器编辑文档而不需要保存时。 (那是我不需要的)

问题是数字2执行每个打字的字母。我需要documentChanged方法只对数字1执行。

0 个答案:

没有答案