Пример #1
0
        public IEnumerable <ExolutioVersionedObject> AnotherOpenedVersions(ExolutioVersionedObject item)
        {
            List <ExolutioVersionedObject> result = null;

            if (item is Diagram)
            {
                foreach (DocumentContent d in MainWindow.dockManager.Documents)
                {
                    if (d is DiagramTab && d.IsActiveInItsGroup())
                    {
                        Diagram diagram = ((DiagramTab)d).DiagramView.Diagram;
                        if (item != diagram && diagram.Project.VersionManager.AreItemsLinked(item, diagram))
                        {
                            if (result == null)
                            {
                                result = new List <ExolutioVersionedObject>();
                            }
                            result.Add(diagram);
                        }
                    }
                }
            }
            if (result != null)
            {
                return(result);
            }
            else
            {
                return(new Diagram[0]);
            }
        }
Пример #2
0
        public IEnumerable <ExolutioVersionedObject> AnotherOpenedVersions(ExolutioVersionedObject item)
        {
            List <ExolutioVersionedObject> result = null;

            if (item is Diagram)
            {
                foreach (TabItem d in this.DockManager.Items)
                {
                    if (d is DiagramTab)
                    {
                        Diagram diagram = ((DiagramTab)d).DiagramView.Diagram;
                        if (item != diagram && diagram.Project.VersionManager.AreItemsLinked(item, diagram))
                        {
                            if (result == null)
                            {
                                result = new List <ExolutioVersionedObject>();
                            }
                            result.Add(diagram);
                        }
                    }
                }
            }
            if (result != null)
            {
                return(result);
            }
            else
            {
                return(new Diagram[0]);
            }
        }
Пример #3
0
        internal override CommandBase.OperationResult UndoOperation()
        {
            ExolutioVersionedObject item1 = (ExolutioVersionedObject)Project.TranslateComponent(Item1ID);
            ExolutioVersionedObject item2 = (ExolutioVersionedObject)Project.TranslateComponent(Item2ID);

            Project.VersionManager.RegisterVersionLink(item1.Version, item2.Version, item1, item2);
            return(OperationResult.OK);
        }
Пример #4
0
        internal override void CommandOperation()
        {
            ExolutioVersionedObject item1 = (ExolutioVersionedObject)Project.TranslateComponent(Item1ID);
            ExolutioVersionedObject item2 = (ExolutioVersionedObject)Project.TranslateComponent(Item2ID);

            Project.VersionManager.UnregisterVersionLink(item1, item2);
            Report = new CommandReport("Version link removed between {0}#{1} and {2}#{3}", item1.Version, item1, item2.Version, item2);
        }
Пример #5
0
        public override bool CanExecute()
        {
            if (Project.UsesVersioning && Item1ID != Guid.Empty && Item2ID != Guid.Empty)
            {
                ExolutioVersionedObject item1 = (ExolutioVersionedObject)Project.TranslateComponent(Item1ID);
                ExolutioVersionedObject item2 = (ExolutioVersionedObject)Project.TranslateComponent(Item2ID);

                if (item1.Version != item2.Version &&
                    item1.GetType() == item2.GetType() && Project.VersionManager.AreItemsLinked(item1, item2))
                {
                    return(true);
                }
            }
            return(false);
        }
Пример #6
0
        public override bool CanExecute()
        {
            if (Project.UsesVersioning && Item1ID != Guid.Empty && Item2ID != Guid.Empty)
            {
                ExolutioVersionedObject item1 = (ExolutioVersionedObject)Project.TranslateComponent(Item1ID);
                ExolutioVersionedObject item2 = (ExolutioVersionedObject)Project.TranslateComponent(Item2ID);

                if (item1.Version != item2.Version &&
                    item1.GetType() == item2.GetType() &&
                    !item1.ExistsInVersion(item2.Version) &&
                    !item2.ExistsInVersion(item1.Version))
                {
                    return(true);
                }
            }
            return(false);
        }
Пример #7
0
        public virtual void Verify()
        {
            ExolutioVersionedObject verifiedElement = Component;

            //if (this is ISubelementAditionChange)
            //{
            //    verifiedElement = ((ISubelementAditionChange)this).ChangedSubelement;
            //}
            //else if (this is ISubelementRemovalChange)
            //{
            //    verifiedElement = ((ISubelementRemovalChange)this).ChangedSubelement;
            //}
            //else
            //{
            //    verifiedElement = Element;
            //}

            if (Category.IsAmong(EChangeCategory.Addition, EChangeCategory.Migratory, EChangeCategory.Sedentary))
            {
                Debug.Assert(NewVersion != null);
                Debug.Assert(verifiedElement.GetInVersion(NewVersion) != null);
            }

            if (Category.IsAmong(EChangeCategory.Removal, EChangeCategory.Migratory, EChangeCategory.Sedentary))
            {
                Debug.Assert(OldVersion != null);
                Debug.Assert(verifiedElement.ExistsInVersion(OldVersion));
            }

            if (Category == EChangeCategory.Addition)
            {
                Debug.Assert(NewVersion != null);
                Debug.Assert(verifiedElement.GetInVersion(OldVersion) == null);
            }

            if (Category == EChangeCategory.Removal)
            {
                Debug.Assert(OldVersion != null);
                Debug.Assert(verifiedElement.GetInVersion(NewVersion) == null);
            }
        }