/// <summary> /// Adds a new element view model for the given element. /// </summary> /// <param name="element">Element.</param> public void AddChild(SerializationElement element) { if (!HasLoadedChildren) { if (!HasDummyChild) this.childrenVMs.Add(DummyChild); return; } // verify that node hasnt been added yet foreach (SerializationElementViewModel viewModel in this.childrenVMs) if (viewModel.SerializationElement.Id == element.Id) return; if (element is SerializedDomainClass) { SerializedDomainClassViewModel vm = new SerializedDomainClassViewModel(this.ViewModelStore, element as SerializedDomainClass, this); this.childrenVMs.Add(vm); } else if (element is SerializedEmbeddingRelationship) { SerializedEmbeddingRelationshipViewModel vm = new SerializedEmbeddingRelationshipViewModel(this.ViewModelStore, element as SerializedEmbeddingRelationship, this); this.childrenVMs.Add(vm); } else if (element is SerializedReferenceRelationship) { SerializedReferenceRelationshipViewModel vm = new SerializedReferenceRelationshipViewModel(this.ViewModelStore, element as SerializedReferenceRelationship, this); this.childrenVMs.Add(vm); } else if (element is SerializedDomainProperty) { SerializedDomainPropertyViewModel vm = new SerializedDomainPropertyViewModel(this.ViewModelStore, element as SerializedDomainProperty, this); this.childrenVMs.Add(vm); } OnPropertyChanged("HasChildren"); }