/// <summary> /// Constuctor. /// </summary> /// <param name="viewModelStore">The store this view model belongs to.</param> /// <param name="serializedRelationship">SerializedRelationship.</param> /// <param name="referencedElement">Element that is referenced by the serialization element. Can be null.</param> protected SerializedRelationshipViewModel(ViewModelStore viewModelStore, SerializedRelationship serializedRelationship, DomainRelationship referencedElement, SerializationClassViewModel parent) : base(viewModelStore, serializedRelationship, referencedElement, parent) { if (this.SerializationElement != null) { // subscribe this.EventManager.GetEvent <ModelElementPropertyChangedEvent>().Subscribe(this.SerializationElement.Id, new Action <ElementPropertyChangedEventArgs>(OnSerializationRelationshipropertyChanged)); if (this.SerializationElement.SerializedDomainRoles.Count > 0) { sourceRoleVM = new SerializedDomainRoleViewModel(this.ViewModelStore, this.SerializationElement.SerializedDomainRoles[0], referencedElement, this); this.AddChild(sourceRoleVM); } if (this.SerializationElement.SerializedDomainRoles.Count > 1) { targetRoleVM = new SerializedDomainRoleViewModel(this.ViewModelStore, this.SerializationElement.SerializedDomainRoles[1], referencedElement, this); if (targetRoleVM.SerializationElement.SerializationClass is SerializedDomainClass) { targetClassVM = new SerializedDomainClassViewModel(this.ViewModelStore, targetRoleVM.SerializationElement.SerializationClass as SerializedDomainClass, this); } else if (targetRoleVM.SerializationElement.SerializationClass is SerializedReferenceRelationship) { targetClassVM = new SerializedReferenceRelationshipViewModel(this.ViewModelStore, targetRoleVM.SerializationElement.SerializationClass as SerializedReferenceRelationship, this); } this.AddChild(targetRoleVM); } } }
/// <summary> /// Constuctor. /// </summary> /// <param name="viewModelStore">The store this view model belongs to.</param> /// <param name="serializedRelationship">SerializedRelationship.</param> /// <param name="referencedElement">Element that is referenced by the serialization element. Can be null.</param> protected SerializedRelationshipViewModel(ViewModelStore viewModelStore, SerializedRelationship serializedRelationship, DomainRelationship referencedElement, SerializationClassViewModel parent) : base(viewModelStore, serializedRelationship, referencedElement, parent) { if (this.SerializationElement != null) { // subscribe this.EventManager.GetEvent<ModelElementPropertyChangedEvent>().Subscribe(this.SerializationElement.Id, new Action<ElementPropertyChangedEventArgs>(OnSerializationRelationshipropertyChanged)); if (this.SerializationElement.SerializedDomainRoles.Count > 0) { sourceRoleVM = new SerializedDomainRoleViewModel(this.ViewModelStore, this.SerializationElement.SerializedDomainRoles[0], referencedElement, this); this.AddChild(sourceRoleVM); } if (this.SerializationElement.SerializedDomainRoles.Count > 1) { targetRoleVM = new SerializedDomainRoleViewModel(this.ViewModelStore, this.SerializationElement.SerializedDomainRoles[1], referencedElement, this); if (targetRoleVM.SerializationElement.SerializationClass is SerializedDomainClass) targetClassVM = new SerializedDomainClassViewModel(this.ViewModelStore, targetRoleVM.SerializationElement.SerializationClass as SerializedDomainClass, this); else if (targetRoleVM.SerializationElement.SerializationClass is SerializedReferenceRelationship) targetClassVM = new SerializedReferenceRelationshipViewModel(this.ViewModelStore, targetRoleVM.SerializationElement.SerializationClass as SerializedReferenceRelationship, this); this.AddChild(targetRoleVM); } } }