From 0dfbb677cd5ed7d294548de53f7d626091122882 Mon Sep 17 00:00:00 2001 From: Alexander Diewald <diewald@fortiss.org> Date: Fri, 24 Feb 2017 16:31:33 +0000 Subject: [PATCH] - Avoid annotation view updates during the DSE. --- .../alg/dse/backend/opt4j/Opt4JExplorerBackend.java | 7 +++++++ .../base/TransformationStrategyBase.java | 7 ------- .../alg/dse/sysmodel/arch/af3/AF3SystemModelAdapter.java | 7 +++++++ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/Opt4JExplorerBackend.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/Opt4JExplorerBackend.java index de04cd42..0da294ac 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/Opt4JExplorerBackend.java +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/Opt4JExplorerBackend.java @@ -44,6 +44,7 @@ import org.fortiss.af3.exploration.model.ExplorationTarget; import org.fortiss.af3.exploration.moea.model.DseSpecification; import org.fortiss.af3.exploration.moea.model.feature.SafetyExploration; import org.fortiss.af3.exploration.moea.model.parameters.EAOptimizer; +import org.fortiss.tooling.base.ui.annotation.view.AnnotationViewPartBase; import org.opt4j.core.common.completer.IndividualCompleterModule; import org.opt4j.core.config.Task; import org.opt4j.core.config.TaskStateListener; @@ -244,6 +245,9 @@ public class Opt4JExplorerBackend extends ExplorerBackendBase<EAOptimizer> { progressMonitor.beginTask("EA optimization", opt4JParameters.getIterations()); } + // Disable any Annotation view update + AnnotationViewPartBase.setUpdateEnabled(false); + CompositeExplorationSolution<?> rval = null; Exception ex = null; try { @@ -264,6 +268,9 @@ public class Opt4JExplorerBackend extends ExplorerBackendBase<EAOptimizer> { rval = validate(rval, archExplorationProblemModule.getEvaluators()); } opt4JTask.close(); + + // Disable any Annotation view update + AnnotationViewPartBase.setUpdateEnabled(true); } if(ex != null) { diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/base/TransformationStrategyBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/base/TransformationStrategyBase.java index d8f874ab..fe7ad292 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/base/TransformationStrategyBase.java +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/base/TransformationStrategyBase.java @@ -19,7 +19,6 @@ package org.fortiss.af3.exploration.alg.dse.modeltransformation.base; import static java.util.Collections.sort; import static org.fortiss.af3.exploration.alg.util.ExplorationAlgUtils.pickInstanceOf; -import static org.fortiss.tooling.base.ui.annotation.view.AnnotationViewPartBase.setUpdateEnabled; import java.util.ArrayList; import java.util.Arrays; @@ -102,9 +101,6 @@ public abstract class TransformationStrategyBase<T extends EObject> extends ExplorationEncodingMap<IExplorationEncoding> explorationEncodings, SubClassToInstanceMap<N> transformedModels, EObject outputModel) throws TransformationModuleException { - // Disable any Annotation view update - setUpdateEnabled(false); - if(transformedModels == null) { throw new TransformationModuleException(this, "The map which will contain all transformed models must be passed."); @@ -128,9 +124,6 @@ public abstract class TransformationStrategyBase<T extends EObject> extends doSetModelName(); - // Re-enable Annotation view updates - setUpdateEnabled(true); - encEntryModelElemAssoc.clear(); origToGenAssocMap.clear(); genToOrigAssocMap.clear(); diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3SystemModelAdapter.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3SystemModelAdapter.java index cc3d399c..3f85da67 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3SystemModelAdapter.java +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/AF3SystemModelAdapter.java @@ -27,6 +27,7 @@ import static org.fortiss.af3.exploration.alg.util.ExplorationAlgUtils.getDeploy import static org.fortiss.af3.platform.utils.PlatformArchitectureUtils.getPhysicalPlatformArchitecture; import static org.fortiss.af3.platform.utils.PlatformArchitectureUtils.getReferencedElementsWithType; import static org.fortiss.af3.schedule.utils.MathUtils.gcdDoubleCollection; +import static org.fortiss.tooling.base.ui.annotation.view.AnnotationViewPartBase.setUpdateEnabled; import static org.fortiss.tooling.kernel.utils.EcoreUtils.getChildrenWithType; import static org.fortiss.tooling.kernel.utils.EcoreUtils.pickFirstInstanceOf; import static org.fortiss.tooling.kernel.utils.EcoreUtils.pickInstanceOf; @@ -145,6 +146,9 @@ public class AF3SystemModelAdapter putInputModel(ComponentArchitecture.class, componentArchitecture); putInputModel(PlatformArchitecture.class, platformArchitecture); + // Disable any annotation view update. + setUpdateEnabled(false); + // Determine the associated hardware platform given the platform architecture is a a model // of a virtual platform. hardwarePlatformArchitecture = getPhysicalPlatformArchitecture(platformArchitecture); @@ -205,6 +209,9 @@ public class AF3SystemModelAdapter setupEmittedMessages(); setupPlatformGraph(); createAbstractTaskGraphEncoding(); + + // Re-enable annotation view updates. + setUpdateEnabled(true); } /** Determines whether the current AF3 version supports multicast channels. */ -- GitLab