diff options
author | George Suaridze | 2014-11-18 14:02:42 +0000 |
---|---|---|
committer | George Suaridze | 2014-11-18 14:02:42 +0000 |
commit | 84b075b220c855c2a60e1a3a0f1345678d45cfda (patch) | |
tree | 07e0efeb311b21c6d6cef420b4243954f9bb1c51 | |
parent | 26bc2cdf09db40bac28cf57bbd195076bdddb1b3 (diff) | |
download | org.eclipse.handly-84b075b220c855c2a60e1a3a0f1345678d45cfda.tar.gz org.eclipse.handly-84b075b220c855c2a60e1a3a0f1345678d45cfda.tar.xz org.eclipse.handly-84b075b220c855c2a60e1a3a0f1345678d45cfda.zip |
Bug 452101 - Notification of model listeners in HandlyXtextDocument
should be aware of IXtextModelListenerExtension
-rw-r--r-- | org.eclipse.handly.xtext.ui/src/org/eclipse/handly/xtext/ui/editor/HandlyXtextDocument.java | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/org.eclipse.handly.xtext.ui/src/org/eclipse/handly/xtext/ui/editor/HandlyXtextDocument.java b/org.eclipse.handly.xtext.ui/src/org/eclipse/handly/xtext/ui/editor/HandlyXtextDocument.java index 80a7047f..e3f47d1f 100644 --- a/org.eclipse.handly.xtext.ui/src/org/eclipse/handly/xtext/ui/editor/HandlyXtextDocument.java +++ b/org.eclipse.handly.xtext.ui/src/org/eclipse/handly/xtext/ui/editor/HandlyXtextDocument.java @@ -7,6 +7,7 @@ * * Contributors: * Vladimir Piskarev (1C) - initial API and implementation + * George Suaridze (1C) - ongoing maintenance *******************************************************************************/ package org.eclipse.handly.xtext.ui.editor; @@ -44,6 +45,7 @@ import org.eclipse.xtext.ui.editor.DirtyStateEditorSupport; import org.eclipse.xtext.ui.editor.model.DocumentTokenSource; import org.eclipse.xtext.ui.editor.model.IXtextDocumentContentObserver.Processor; import org.eclipse.xtext.ui.editor.model.IXtextModelListener; +import org.eclipse.xtext.ui.editor.model.IXtextModelListenerExtension; import org.eclipse.xtext.ui.editor.model.XtextDocument; import org.eclipse.xtext.ui.editor.model.edit.ITextEditComposer; import org.eclipse.xtext.ui.editor.reconciler.CancelIndicatorBasedProgressMonitor; @@ -230,7 +232,25 @@ public class HandlyXtextDocument { try { - listener.modelChanged(resource); + if (isOutdated()) + { + return; + } + if (listener instanceof IXtextModelListenerExtension) + { + ((IXtextModelListenerExtension)listener).modelChanged( + resource, new CancelIndicator() + { + public boolean isCanceled() + { + return isOutdated(); + } + }); + } + else + { + listener.modelChanged(resource); + } } catch (Exception e) { |