/// <summary> /// Constructor /// </summary> /// <param name="OwnerComposition">Composition owning this Concept.</param> /// <param name="Definitor">Definitor of the Concept.</param> /// <param name="Name">Name of the Concept.</param> /// <param name="TechName">Technical Name of the Concept.</param> /// <param name="Summary">Summary of the Concept.</param> /// <param name="Pictogram">Image representing the Concept.</param> public Concept(Composition OwnerComposition, ConceptDefinition Definitor, string Name, string TechName, string Summary = "", ImageSource Pictogram = null) : base(OwnerComposition, Name, TechName, Summary, Pictogram) { this.ConceptDefinitor = Definitor.Assign(); this.CompositeContentDomain = Definitor.CompositeContentDomain ?? Definitor.OwnerDomain; if (this.OwnerComposition != null && this.OwnerComposition.UsedDomains != null) // UsedDomains will only be null when creating the Composition (which is a Concept also) { this.OwnerComposition.UsedDomains.AddNew(Definitor.OwnerDomain); } }
// --------------------------------------------------------------------------------------------------------------------------------------------------------- /// <summary> /// Changes the underlying definition to the specified one and propagate the necessary changes. /// </summary> public void ApplyConceptDefinitionChange(ConceptDefinition NewDefinition) { var PreviousDefinitor = this.ConceptDefinitor.Value; if (PreviousDefinitor.IsEqual(NewDefinition)) { return; } this.ConceptDefinitor = NewDefinition.Assign(); this.ApplyIdeaDefinitionChange(PreviousDefinitor); // Must be last, because updates graphics }