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(); } } }
private void CurrentParentAsRedNode(List <PSMComponent> redNodes, ChangeInstance changeInstance) { PSMComponent componentNewVersion = changeInstance is IExistingComponentChange ? (PSMComponent)((IExistingComponentChange)changeInstance).ComponentNewVersion : (PSMComponent)((IAdditionChange)changeInstance).ComponentNewVersion; CurrentParentAsRedNode(redNodes, componentNewVersion); }
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); } }
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); } } } } }