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)); }
/// <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)); }