Esempio n. 1
0
        private static void ProcessModelErrorChange(ModelHasError errorLink)
        {
            ModelError error = errorLink.Error;

            // Give the error itself a chance to have an indirect owner.
            // A ModelError can own itself.
            InvalidateIndirectErrorOwnerDisplay(error, null, null);
            DomainClassInfo classInfo = error.GetDomainClass();
            ReadOnlyCollection <DomainRoleInfo> playedMetaRoles = classInfo.AllDomainRolesPlayed;
            int playedMetaRoleCount = playedMetaRoles.Count;

            for (int i = 0; i < playedMetaRoleCount; ++i)
            {
                DomainRoleInfo roleInfo = playedMetaRoles[i];
                if (roleInfo.Id != ModelHasError.ErrorDomainRoleId)
                {
                    LinkedElementCollection <ModelElement> rolePlayers = roleInfo.GetLinkedElements(error);
                    int rolePlayerCount = rolePlayers.Count;
                    for (int j = 0; j < rolePlayerCount; ++j)
                    {
                        ModelElement rolePlayer = rolePlayers[j];
                        InvalidateErrorOwnerDisplay(rolePlayer);
                        InvalidateIndirectErrorOwnerDisplay(rolePlayer, null, null);
                    }
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// DeletingRule: typeof(ORMSolutions.ORMArchitect.Core.ObjectModel.ModelHasError)
        /// </summary>
        private static void ModelErrorDeletingRule(ElementDeletingEventArgs e)
        {
            ModelHasError link = e.ModelElement as ModelHasError;

            if (!link.Model.IsDeleting)
            {
                ProcessModelErrorChange(link);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// ChangeRule: typeof(ORMSolutions.ORMArchitect.Core.ObjectModel.ModelError)
        /// If the state changes on a displayed error, then the displayed error state
        /// needs to change as well.
        /// </summary>
        private static void ModelErrorStateChangedRule(ElementPropertyChangedEventArgs e)
        {
            ModelHasError errorLink;

            if (e.DomainProperty.Id == ModelError.ErrorStateDomainPropertyId &&
                null != (errorLink = ModelHasError.GetLinkToModel((ModelError)e.ModelElement)))
            {
                ProcessModelErrorChange(errorLink);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// DeletingRule: typeof(ORMSolutions.ORMArchitect.Core.ObjectModel.ElementAssociatedWithModelError)
        /// If multiple elements are associated with a model error, then an individual element can be removed
        /// from the collection without deleting the error. This element will not be reachable when the
        /// error itself is removed, and the display will not update.
        /// </summary>
        private static void ModelErrorComponentDeletingRule(ElementDeletingEventArgs e)
        {
            ElementAssociatedWithModelError link = (ElementAssociatedWithModelError)e.ModelElement;
            ModelError error;

            if (!(error = link.ModelError).IsDeleting)
            {
                foreach (DomainRoleInfo roleInfo in link.GetDomainRelationship().DomainRoles)
                {
                    if (!roleInfo.IsSource && roleInfo.IsMany)
                    {
                        ModelHasError errorLink;
                        if (null != (errorLink = ModelHasError.GetLinkToModel(error)))
                        {
                            ProcessModelErrorChange(errorLink);
                        }
                        break;
                    }
                }
            }
        }
Esempio n. 5
0
            /// <summary>
            /// Add all model errors in the specific store that match the specified domain
            /// model to the task provider.
            /// </summary>
            protected sealed override void PhaseCompleted(Store store)
            {
                DomainModelInfo       modelFilter = myDomainModelFilter;
                IList <ModelHasError> errorLinks  = store.ElementDirectory.FindElements <ModelHasError>();
                int linkCount = errorLinks.Count;

                for (int i = 0; i < linkCount; ++i)
                {
                    ModelHasError errorLink = errorLinks[i];
                    ModelError    error     = errorLink.Error;
                    if (!errorLink.IsDeleted &&
                        !error.IsDeleted &&
                        (modelFilter == null || error.GetDomainClass().DomainModel == modelFilter))
                    {
                        // Make sure the error state is correct based on the full error state
                        error.FixupErrorState();
                        // Make sure the text is up to date
                        error.GenerateErrorText();
                        ModelError.AddToTaskProvider(errorLink);
                    }
                }
            }
Esempio n. 6
0
 /// <summary>
 /// Helper function to add an error to the task provider
 /// when the error is attached to the model.
 /// </summary>
 /// <param name="errorLink"></param>
 public static void AddToTaskProvider(ModelHasError errorLink)
 {
     AddToTaskProvider(errorLink.Error);
 }
Esempio n. 7
0
		private static void ProcessModelErrorChange(ModelHasError errorLink)
		{
			ModelError error = errorLink.Error;
			// Give the error itself a change to have an indirect owner.
			// A ModelError can own itself.
			InvalidateIndirectErrorOwnerDisplay(error, null, null);
			DomainClassInfo classInfo = error.GetDomainClass();
			ReadOnlyCollection<DomainRoleInfo> playedMetaRoles = classInfo.AllDomainRolesPlayed;
			int playedMetaRoleCount = playedMetaRoles.Count;
			for (int i = 0; i < playedMetaRoleCount; ++i)
			{
				DomainRoleInfo roleInfo = playedMetaRoles[i];
				if (roleInfo.Id != ModelHasError.ErrorDomainRoleId)
				{
					LinkedElementCollection<ModelElement> rolePlayers = roleInfo.GetLinkedElements(error);
					int rolePlayerCount = rolePlayers.Count;
					for (int j = 0; j < rolePlayerCount; ++j)
					{
						ModelElement rolePlayer = rolePlayers[j];
						InvalidateErrorOwnerDisplay(rolePlayer);
						InvalidateIndirectErrorOwnerDisplay(rolePlayer, null, null);
					}
				}
			}
		}