コード例 #1
0
        private void MakeHighlightsForChangeInstance(ChangeInstance change)
        {
            if (DiagramNewVersion != null)
            {
                if (change.Component.ExistsInVersion(DiagramNewVersion.Version))
                {
                    MainWindow.FocusComponent(change.Component, false);
                }
                else
                {
                    DiagramView.ClearSelection();
                }
            }

            if (DiagramViewOldVersion != null)
            {
                if (change.Component.ExistsInVersion(DiagramOldVersion.Version))
                {
                    MainWindow.FocusComponent(change.Component.GetInVersion(DiagramOldVersion.Version), false);
                }
                else
                {
                    DiagramViewOldVersion.ClearSelection();
                }
            }
        }
コード例 #2
0
        private void CurrentParentAsRedNode(List <PSMComponent> redNodes, ChangeInstance changeInstance)
        {
            PSMComponent componentNewVersion = changeInstance is IExistingComponentChange ?
                                               (PSMComponent)((IExistingComponentChange)changeInstance).ComponentNewVersion :
                                               (PSMComponent)((IAdditionChange)changeInstance).ComponentNewVersion;

            CurrentParentAsRedNode(redNodes, componentNewVersion);
        }
コード例 #3
0
        private void FormerParentAsRedNode(List <PSMComponent> redNodes, ChangeInstance changeInstance)
        {
            PSMComponent componentOldVersion = changeInstance is IExistingComponentChange ?
                                               (PSMComponent)((IExistingComponentChange)changeInstance).ComponentOldVersion :
                                               (PSMComponent)((IRemovalChange)changeInstance).ComponentOldVersion;

            PSMComponent formerParent =
                componentOldVersion is PSMAssociation ? ((PSMAssociation)componentOldVersion).Parent : ModelIterator.GetPSMParent(componentOldVersion, true);

            PSMComponent formerParentNewVersion = formerParent.GetInVersion(changeInstance.NewVersion);

            if (formerParentNewVersion != null)
            {
                redNodes.AddIfNotContained(formerParentNewVersion);
            }
        }
コード例 #4
0
 private static void testConstructs <TPSMComponent>(IEnumerable <TPSMComponent> components,
                                                    Version oldVersion, Version newVersion, DetectedChangeInstancesSet changeInstancesSet, EChangePredicateScope scope)
     where TPSMComponent : ExolutioObject
 {
     foreach (TPSMComponent component in components)
     {
         if (changePredicatesByScope.ContainsKey(scope))
         {
             foreach (Type type in changePredicatesByScope[scope])
             {
                 object[] testParams = new object[] { component, oldVersion, newVersion };
                 bool     result     = (bool)testMethods[type].Invoke(null, testParams);
                 if (result)
                 {
                     changeInstancesSet.CreateSubCollectionIfNeeded(type);
                     ChangeInstance instance = (ChangeInstance)createInstanceMethods[type].Invoke(null, testParams);
                     changeInstancesSet[type].Add(instance);
                 }
             }
         }
     }
 }