private static void FixUpDomainClassInTreeView(DomainClass domainClass) { // add embedding relationships foreach (DomainRole role in domainClass.RolesPlayed) { if (role.Relationship.Source == role && role.Relationship is EmbeddingRelationship) { EmbeddingRelationship emb = role.Relationship as EmbeddingRelationship; if (emb.Target.RolePlayer.DomainModelTreeNodes.Count > 0) { ModelTreeHelper.AddNewEmbeddingRS(emb, emb.Source.RolePlayer as DomainClass, emb.Target.RolePlayer, false); } else { ModelTreeHelper.AddNewEmbeddingRS(emb, emb.Source.RolePlayer as DomainClass, emb.Target.RolePlayer, true); FixUpDomainClassInTreeView(emb.Target.RolePlayer as DomainClass); emb.Target.RolePlayer.DomainModelTreeNodes[0].IsEmbeddingTreeExpanded = true; emb.Target.RolePlayer.DomainModelTreeNodes[0].IsReferenceTreeExpanded = true; emb.Target.RolePlayer.DomainModelTreeNodes[0].IsInheritanceTreeExpanded = true; emb.Target.RolePlayer.DomainModelTreeNodes[0].IsShapeMappingTreeExpanded = true; } } } }
private void FinalizeEmbeddingRelationshipsMerge(ModelProtoElement protoElement, ModelProtoGroupMerger groupMerger, bool bCreateSInfo) { EmbeddingRelationship embRel = this.Store.ElementDirectory.FindElement(groupMerger.GetIdMapping(protoElement.ElementId)) as EmbeddingRelationship; if (bCreateSInfo) { SerializationDomainRelationshipAddRule.OnEmbeddingRelationshipAdded(embRel); } if (embRel == null) { return; } ModelTreeHelper.AddNewEmbeddingRS(embRel, embRel.Source.RolePlayer as DomainClass, embRel.Target.RolePlayer, false); }