]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.diagram/src/org/simantics/diagram/handler/Paster.java
Fixed diagram copy/paste implementations to re-identify diagram elements
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / handler / Paster.java
index 6672599073b1b18e717bd1f79c36f6e3ac0bdb78..75b0473a1bc4991be688799f7a23799a5136457e 100644 (file)
@@ -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.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;
 import org.simantics.db.layer0.util.RemoverUtil;
 import org.simantics.db.request.Write;
 import org.simantics.diagram.content.ConnectionUtil;
@@ -863,6 +864,11 @@ public class Paster {
                 graph.claim(copy, L0.ConsistsOf, L0.PartOf, relationCopy);
                 graph.claim(copy, MOD.HasReferenceRelation, MOD.HasReferenceRelation_Inverse, relationCopy);
 
                 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;
             }
 
                 return copy;
             }