Esempio n. 1
0
        /// <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);
            }
        }
Esempio n. 2
0
        // ---------------------------------------------------------------------------------------------------------------------------------------------------------
        /// <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
        }