From: Tuukka Lehtonen Date: Thu, 24 May 2018 22:29:31 +0000 (+0300) Subject: Fixed ComponentCopyAdvisor to account for L0.TypeWithIdentifier properly X-Git-Tag: v1.43.0~136^2~476 X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=commitdiff_plain;h=8daf1d98d61e83fc6450ddac8e800476a9d52ab3;ds=sidebyside Fixed ComponentCopyAdvisor to account for L0.TypeWithIdentifier properly The previous fix done for the same problem in Simantics redmine issue 7842 and commits c912edf13bf5a91b2f6dc855f54d8728aa0a64f5, 803c42fd316859809eaeb3dc6a88b22cbf86b4b6 and 0cfc6a9b8b186ba432bc6758c089726b1471fd1f was simply wrong. Using ModelingUtils.needsIdentifier is the most proper way to fix this. gitlab #10 Change-Id: Id7cdc32a6596588154913fced742d751ce6ba864 (cherry picked from commit 290c3cfc8bf5a7b2cc6e8532f124512e0bf10517) --- diff --git a/bundles/org.simantics.modeling/src/org/simantics/modeling/mapping/ComponentCopyAdvisor.java b/bundles/org.simantics.modeling/src/org/simantics/modeling/mapping/ComponentCopyAdvisor.java index b7ed06795..3e6e9c1b9 100644 --- a/bundles/org.simantics.modeling/src/org/simantics/modeling/mapping/ComponentCopyAdvisor.java +++ b/bundles/org.simantics.modeling/src/org/simantics/modeling/mapping/ComponentCopyAdvisor.java @@ -12,7 +12,6 @@ package org.simantics.modeling.mapping; import java.util.Map; -import java.util.Set; import org.simantics.Simantics; import org.simantics.databoard.Bindings; @@ -29,6 +28,7 @@ import org.simantics.diagram.synchronization.graph.GraphCopyAdvisor; import org.simantics.diagram.synchronization.graph.GraphSynchronizationHints; import org.simantics.layer0.Layer0; import org.simantics.modeling.ComponentUtils; +import org.simantics.modeling.ModelingUtils; import org.simantics.modeling.services.ComponentNamingUtil; import org.simantics.modeling.services.NamingException; import org.simantics.project.IProject; @@ -59,23 +59,13 @@ public class ComponentCopyAdvisor extends GraphCopyAdvisor { public Object copy(ISynchronizationContext context, WriteGraph graph, Resource source, Resource sourceContainer, Resource targetContainer, Map map) throws DatabaseException { StructuralResource2 STR = StructuralResource2.getInstance(graph); - Resource copy = null; - Set types = graph.getTypes(source); - if (types.contains(STR.Connection)) { - // Configuration connections are not named, can't use TG copy for - // them at the moment. - copy = CopyAdvisorUtil.copy2(graph, source, null, map); - } else { -// Resource model = graph.syncRequest(new PossibleModel(targetContainer)); -// copy = CopyAdvisorUtil.copy4(graph, source, model); - copy = CopyAdvisorUtil.copy2(graph, source, null, map); - } + Resource copy = CopyAdvisorUtil.copy2(graph, source, null, map); Layer0 L0 = Layer0.getInstance(graph); if (graph.hasStatement(sourceContainer, L0.ConsistsOf, source)) graph.claim(targetContainer, L0.ConsistsOf, copy); - if (types.contains(L0.TypeWithIdentifier)) + if (ModelingUtils.needsIdentifier(graph, source)) Layer0Utils.claimNewIdentifier(graph, copy, false); if (context.get(SynchronizationHints.NO_RENAME) == null) renameComponent(context, graph, source, copy, sourceContainer, targetContainer);