From 2ec433bc3e1195182baff766e98aed7674bba0d6 Mon Sep 17 00:00:00 2001
From: Alexander Diewald <diewald@fortiss.org>
Date: Wed, 15 Mar 2017 10:31:31 +0000
Subject: [PATCH] - Disable AnnotationView updates if a model transformation
 has been requested from the DSE by some external entity.

---
 .../ExplorationTransformationService.java       | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationTransformationService.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationTransformationService.java
index b466ad13..590e7175 100644
--- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationTransformationService.java
+++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationTransformationService.java
@@ -18,6 +18,8 @@ $Id: ExplorationTransformationService.java 3730 2016-10-19 15:43:43Z diewald $
 package org.fortiss.af3.exploration.alg.service.internal;
 
 import static org.fortiss.af3.exploration.alg.util.ExplorationAlgUtils.pickSubTypesOf;
+import static org.fortiss.tooling.base.ui.annotation.view.AnnotationViewPartBase.isUpdateEnabled;
+import static org.fortiss.tooling.base.ui.annotation.view.AnnotationViewPartBase.setUpdateEnabled;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -90,6 +92,9 @@ public class ExplorationTransformationService<T extends ITransformationModule<?>
 	/** The {@link ITransformationModule} class attribute name. */
 	private static final String HANDLER_CLASS_ATTRIBUTE_NAME = "module";
 
+	/** Cache the Annotation View's update status. */
+	private boolean annotationUpdateEnabled;
+
 	/** Constructor. */
 	private ExplorationTransformationService() {
 		// Prevent direct instantiation.
@@ -264,6 +269,13 @@ public class ExplorationTransformationService<T extends ITransformationModule<?>
 			((ITransformationStrategy<?>)moduleInstance).setModelContext(modelContext);
 			((ITransformationStrategy<?>)moduleInstance).setModelName(transformedModelName);
 		}
+
+		// Disable any Annotation view update
+		if(isUpdateEnabled()) {
+			annotationUpdateEnabled = true;
+			setUpdateEnabled(false);
+		}
+
 		SubClassToInstanceMap<U> transformedModels = MutableSubClassToInstanceMap.create();
 		moduleInstance.transform(TransformationState.INITIALIZING, context, baseModels,
 				solutionEncodings, transformedModels, null);
@@ -284,6 +296,11 @@ public class ExplorationTransformationService<T extends ITransformationModule<?>
 			((ITransformationStrategy<?>)moduleInstance).addModelToProject(fp, modelContext);
 		}
 
+		// Disable any Annotation view update
+		if(annotationUpdateEnabled) {
+			setUpdateEnabled(true);
+		}
+
 		ClassToInstanceMap<U> retModels = MutableClassToInstanceMap.create();
 		for(Class<? extends EObject> retType : transformedModelTypes) {
 			assert (transformedModels.get(retType) != null);
-- 
GitLab