Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Suaridze2014-11-18 14:02:42 +0000
committerGeorge Suaridze2014-11-18 14:02:42 +0000
commit84b075b220c855c2a60e1a3a0f1345678d45cfda (patch)
tree07e0efeb311b21c6d6cef420b4243954f9bb1c51
parent26bc2cdf09db40bac28cf57bbd195076bdddb1b3 (diff)
downloadorg.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.java22
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)
{

Back to the top