X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.diagram%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Fhandler%2FPaster.java;h=75b0473a1bc4991be688799f7a23799a5136457e;hb=321aade94bd9bc11feba162f96648bdf5df98aa8;hp=03edda6bdbc428762fc84516f52404c1eeb2aea2;hpb=e84008c029ef2336cf55ad371256c9a12a889e98;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.diagram/src/org/simantics/diagram/handler/Paster.java b/bundles/org.simantics.diagram/src/org/simantics/diagram/handler/Paster.java index 03edda6bd..75b0473a1 100644 --- a/bundles/org.simantics.diagram/src/org/simantics/diagram/handler/Paster.java +++ b/bundles/org.simantics.diagram/src/org/simantics/diagram/handler/Paster.java @@ -28,6 +28,7 @@ import org.simantics.db.common.utils.CommonDBUtils; import org.simantics.db.common.utils.NameUtils; import org.simantics.db.common.utils.OrderedSetUtils; import org.simantics.db.exception.DatabaseException; +import org.simantics.db.layer0.util.Layer0Utils; import org.simantics.db.layer0.util.RemoverUtil; import org.simantics.db.request.Write; import org.simantics.diagram.content.ConnectionUtil; @@ -274,7 +275,7 @@ public class Paster { return noParentElementReturnValue; } - private void cut() throws Exception { + protected void cut() throws Exception { final GraphLayerManager glm = targetContext.get(GraphSynchronizationHints.GRAPH_LAYER_MANAGER); final THashSet cutElements = new THashSet(); @@ -748,7 +749,7 @@ public class Paster { } }; - private void copy() throws Exception { + protected void copy() throws Exception { nodeMap = new NodeMap(); CommonDBUtils.selectClusterSet(graph, targetDiagram); @@ -863,6 +864,11 @@ public class Paster { graph.claim(copy, L0.ConsistsOf, L0.PartOf, relationCopy); graph.claim(copy, MOD.HasReferenceRelation, MOD.HasReferenceRelation_Inverse, relationCopy); + // #7348: renew reference relation GUID identifiers properly + Layer0Utils.renewIdentifier(graph, relationCopy); + for (Resource invRel : graph.getObjects(relationCopy, L0.ConsistsOf)) + Layer0Utils.renewIdentifier(graph, invRel); + return copy; } @@ -1360,5 +1366,12 @@ public class Paster { public NodeMap getNodeMap() { return nodeMap; } - + + protected PasteOperation getOperation() { + return op; + } + + public WriteGraph getGraph() { + return graph; + } }