Пример #1
0
        public void TestCanAddPredecessor()
        {
            var t1 = new KAction()
            {
                Label = "T1", WBS = "1"
            };
            var g1 = new KAction()
            {
                Label = "G1", WBS = "2"
            };
            var t2 = new KAction()
            {
                Label = "T2", WBS = "2.1"
            };
            var t3 = new KAction()
            {
                Label = "T3", WBS = "2.2"
            };
            var t4 = new KAction()
            {
                Label = "T4", WBS = "3"
            };
            var t5 = new KAction()
            {
                Label = "T5", WBS = "4"
            };

            var actions = new List <KAction>()
            {
                t1, g1, t2, t3, t4, t5
            };

            t3.Predecessors.Add(t1);
            t3.Predecessors.Add(t2);
            t4.Predecessors.Add(t3);
            t5.Predecessors.Add(t3);

            var collection = new BulkObservableCollection <DataTreeGridItem>();

            var manager = new GridActionsManager(collection, null, null);

            manager.ChangeView(GanttGridView.WBS, null);

            manager.RegisterInitialActions(actions);

            Assert.IsFalse(ActionsTimingsMoveManagement.CheckCanAddPredecessor(manager.GetActionsSortedByWBS(), t1, t1));
            Assert.IsFalse(ActionsTimingsMoveManagement.CheckCanAddPredecessor(manager.GetActionsSortedByWBS(), t1, t3));
            Assert.IsFalse(ActionsTimingsMoveManagement.CheckCanAddPredecessor(manager.GetActionsSortedByWBS(), g1, t3));

            Assert.IsTrue(ActionsTimingsMoveManagement.CheckCanAddPredecessor(manager.GetActionsSortedByWBS(), t4, t1));
            Assert.IsTrue(ActionsTimingsMoveManagement.CheckCanAddPredecessor(manager.GetActionsSortedByWBS(), t5, t1));
            Assert.IsTrue(ActionsTimingsMoveManagement.CheckCanAddPredecessor(manager.GetActionsSortedByWBS(), t2, t1));
        }
Пример #2
0
        /// <summary>
        /// Détermine si un lien peut être ajouté.
        /// </summary>
        /// <param name="item">L'élément.</param>
        /// <param name="predecessor">Le prédécesseur.</param>
        /// <returns><c>true</c> si le lien peut être ajouté.</returns>
        public bool DependencyCreationValidatorProvider(GanttChartItem item, GanttChartItem predecessor)
        {
            if (!DefaultDependencyCreationValidatorProvider(item, predecessor))
            {
                return(false);
            }

            var actionItem      = item as ActionGanttItem;
            var predecessorItem = predecessor as ActionGanttItem;

            if (actionItem == null || predecessorItem == null)
            {
                return(false);
            }

            return(ActionsTimingsMoveManagement.CheckCanAddPredecessor(base.GetActionsSortedByWBS(), actionItem.Action, predecessorItem.Action));
        }