Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Fasani2021-04-28 14:09:02 +0000
committerLaurent Fasani2021-04-28 14:09:02 +0000
commit6731a5bc6bf2482e7fd55b8aa76f817359319d03 (patch)
tree4a34bacf25a8b3674bc05609feac78ad12044b66 /plugins/org.eclipse.sirius.diagram/src-core/org
parentf4c2c6304df8f0ca74f42ea5a83e5b5820f895db (diff)
downloadorg.eclipse.sirius-6731a5bc6bf2482e7fd55b8aa76f817359319d03.tar.gz
org.eclipse.sirius-6731a5bc6bf2482e7fd55b8aa76f817359319d03.tar.xz
org.eclipse.sirius-6731a5bc6bf2482e7fd55b8aa76f817359319d03.zip
[572828] Update participant to unset originalStyle featurev6.5.0rc1
Before this commit, only dangling originalStyle features were unset. Now all originalStyle features are unset. Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=572828 Change-Id: Ie9aa87ba47cd57d8a34511cda6897fee681995a9 Signed-off-by: Laurent Fasani <laurent.fasani@obeo.fr>
Diffstat (limited to 'plugins/org.eclipse.sirius.diagram/src-core/org')
-rw-r--r--plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/business/internal/migration/UnsetOriginalStyleFeatureMigrationParticipant.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/business/internal/migration/UnsetOriginalStyleFeatureMigrationParticipant.java b/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/business/internal/migration/UnsetOriginalStyleFeatureMigrationParticipant.java
index 017add79dd..8eed5c1ab5 100644
--- a/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/business/internal/migration/UnsetOriginalStyleFeatureMigrationParticipant.java
+++ b/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/business/internal/migration/UnsetOriginalStyleFeatureMigrationParticipant.java
@@ -25,9 +25,17 @@ import org.eclipse.emf.ecore.resource.Resource.Diagnostic;
import org.eclipse.emf.ecore.xmi.UnresolvedReferenceException;
import org.eclipse.emf.ecore.xmi.XMLResource;
import org.eclipse.sirius.business.api.migration.AbstractRepresentationsFileMigrationParticipant;
+import org.eclipse.sirius.business.api.query.DViewQuery;
+import org.eclipse.sirius.diagram.DDiagram;
+import org.eclipse.sirius.diagram.DDiagramElementContainer;
+import org.eclipse.sirius.diagram.DEdge;
+import org.eclipse.sirius.diagram.DNode;
+import org.eclipse.sirius.diagram.DNodeListElement;
import org.eclipse.sirius.diagram.DiagramPackage;
import org.eclipse.sirius.diagram.DiagramPlugin;
import org.eclipse.sirius.diagram.Messages;
+import org.eclipse.sirius.diagram.business.api.query.DDiagramQuery;
+import org.eclipse.sirius.viewpoint.DAnalysis;
import org.osgi.framework.Version;
/**
@@ -66,6 +74,37 @@ public class UnsetOriginalStyleFeatureMigrationParticipant extends AbstractRepre
return super.getValue(object, feature, value, loadedVersion);
}
+ /**
+ * This method is overridden to unset originalStyle features.<br/>
+ * It is not sufficient to implement {@code getValue(EObject , EStructuralFeature , Object , String )} method for
+ * not dangling features.
+ *
+ * @see org.eclipse.sirius.business.api.migration.AbstractRepresentationsFileMigrationParticipant#postLoad(org.eclipse.sirius.viewpoint.DAnalysis,
+ * org.osgi.framework.Version)
+ */
+ @Override
+ protected void postLoad(DAnalysis dAnalysis, Version loadedVersion) {
+ if (loadedVersion.compareTo(MIGRATION_VERSION) < 0) {
+ //@formatter:off
+ dAnalysis.getOwnedViews().stream()
+ .flatMap(dView -> new DViewQuery(dView).getLoadedRepresentations().stream())
+ .filter(DDiagram.class::isInstance)
+ .flatMap(diagram -> new DDiagramQuery((DDiagram) diagram).getAllDiagramElements().stream())
+ .forEach(diagElement -> {
+ if (diagElement instanceof DNode) {
+ ((DNode) diagElement).setOriginalStyle(null);
+ } else if (diagElement instanceof DEdge) {
+ ((DEdge) diagElement).setOriginalStyle(null);
+ } else if (diagElement instanceof DDiagramElementContainer) {
+ ((DDiagramElementContainer) diagElement).setOriginalStyle(null);
+ } else if (diagElement instanceof DNodeListElement) {
+ ((DNodeListElement) diagElement).setOriginalStyle(null);
+ }
+ });
+ //@formatter:on
+ }
+ }
+
@Override
public void postLoad(XMLResource resource, String loadedVersion) {
Iterator<Diagnostic> iterator = resource.getErrors().iterator();

Back to the top