Index: Ringtoets/Common/src/Ringtoets.Common.Forms/PresentationObjects/IFailureMechanismContext.cs =================================================================== diff -u -r743c32ba40bc0d0165d0513d6ca95282b1021e6a -r0a1752d24408af81508bc81d154293be23c9c4ea --- Ringtoets/Common/src/Ringtoets.Common.Forms/PresentationObjects/IFailureMechanismContext.cs (.../IFailureMechanismContext.cs) (revision 743c32ba40bc0d0165d0513d6ca95282b1021e6a) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/PresentationObjects/IFailureMechanismContext.cs (.../IFailureMechanismContext.cs) (revision 0a1752d24408af81508bc81d154293be23c9c4ea) @@ -3,7 +3,7 @@ namespace Ringtoets.Common.Forms.PresentationObjects { /// - /// Interface for a failure mechanism context which wrappes an implementation of the + /// Interface for a failure mechanism context which wraps an implementation of the /// interface. /// /// Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuBuilder.cs =================================================================== diff -u -r4d711e7b0e3a8e91c9afc0339e3f7dadaf619fc3 -r0a1752d24408af81508bc81d154293be23c9c4ea --- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuBuilder.cs (.../RingtoetsContextMenuBuilder.cs) (revision 4d711e7b0e3a8e91c9afc0339e3f7dadaf619fc3) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuBuilder.cs (.../RingtoetsContextMenuBuilder.cs) (revision 0a1752d24408af81508bc81d154293be23c9c4ea) @@ -156,6 +156,22 @@ return this; } + /// + /// Adds an item to the , which performs all calculations in a failure mechanism. + /// + /// The type of the failure mechanism context. + /// The failure mechanism to perform all calculations for. + /// The action that performs all calculations. + /// The itself. + public RingtoetsContextMenuBuilder AddPerformAllCalculationsInFailureMechanismItem( + TFailureMechanismContext failureMechanismContext, + Action calculateAllAction) + where TFailureMechanismContext : IFailureMechanismContext + { + contextMenuBuilder.AddCustomItem(ringtoetsContextMenuItemFactory.CreatePerformAllCalculationsInFailureMechanismItem(failureMechanismContext, calculateAllAction)); + return this; + } + # region Decorated members /// Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuItemFactory.cs =================================================================== diff -u -r4d711e7b0e3a8e91c9afc0339e3f7dadaf619fc3 -r0a1752d24408af81508bc81d154293be23c9c4ea --- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuItemFactory.cs (.../RingtoetsContextMenuItemFactory.cs) (revision 4d711e7b0e3a8e91c9afc0339e3f7dadaf619fc3) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuItemFactory.cs (.../RingtoetsContextMenuItemFactory.cs) (revision 0a1752d24408af81508bc81d154293be23c9c4ea) @@ -206,6 +206,34 @@ return clearAllItem; } + /// + /// Creates a which is bound to the action of performing all calculations in a failure mechanism. + /// + /// The type of the failure mechanism context. + /// The failure mechanism to perform all calculations for. + /// The action that performs all calculations. + /// The created . + public StrictContextMenuItem CreatePerformAllCalculationsInFailureMechanismItem( + TFailureMechanismContext failureMechanismContext, + Action calculateAllAction) + where TFailureMechanismContext : IFailureMechanismContext + { + var performAllItem = new StrictContextMenuItem( + Resources.Calculate_all, + Resources.Calculate_all_ToolTip, + Resources.CalculateAllIcon, + (o, args) => calculateAllAction(failureMechanismContext) + ); + + if (!failureMechanismContext.WrappedData.Calculations.Any()) + { + performAllItem.Enabled = false; + performAllItem.ToolTipText = Resources.FailureMechanism_CreateCalculateAllItem_No_calculations_to_run; + } + + return performAllItem; + } + private static void ClearAllCalculationOutputInFailureMechanism(IFailureMechanism failureMechanism) { if (MessageBox.Show(Resources.FailureMechanism_ContextMenuStrip_Are_you_sure_clear_all_output, BaseResources.Confirm, MessageBoxButtons.OKCancel) != DialogResult.OK) Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs =================================================================== diff -u -r4d711e7b0e3a8e91c9afc0339e3f7dadaf619fc3 -r0a1752d24408af81508bc81d154293be23c9c4ea --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 4d711e7b0e3a8e91c9afc0339e3f7dadaf619fc3) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 0a1752d24408af81508bc81d154293be23c9c4ea) @@ -255,15 +255,13 @@ grassCoverErosionInwardsFailureMechanismContext.WrappedData.NotifyObservers(); }); - var calculateAllItem = CreateCalculateAllItem(grassCoverErosionInwardsFailureMechanismContext); - var builder = new RingtoetsContextMenuBuilder(Gui.Get(grassCoverErosionInwardsFailureMechanismContext, treeViewControl)); return builder .AddOpenItem() .AddSeparator() .AddCustomItem(changeRelevancyItem) .AddSeparator() - .AddCustomItem(calculateAllItem) + .AddPerformAllCalculationsInFailureMechanismItem(grassCoverErosionInwardsFailureMechanismContext, CalculateAll) .AddClearAllCalculationOutputInFailureMechanismItem(grassCoverErosionInwardsFailureMechanismContext.WrappedData) .AddSeparator() .AddImportItem() @@ -287,11 +285,6 @@ .Build(); } - private static IEnumerable GetAllCalculations(GrassCoverErosionInwardsFailureMechanism failureMechanism) - { - return failureMechanism.Calculations.OfType(); - } - private static void AddCalculation(GrassCoverErosionInwardsCalculationGroupContext context) { var calculation = new GrassCoverErosionInwardsCalculation(context.FailureMechanism.GeneralInput) @@ -302,27 +295,9 @@ context.WrappedData.NotifyObservers(); } - private StrictContextMenuItem CreateCalculateAllItem(GrassCoverErosionInwardsFailureMechanismContext context) - { - var menuItem = new StrictContextMenuItem( - RingtoetsCommonFormsResources.Calculate_all, - RingtoetsCommonFormsResources.Calculate_all_ToolTip, - RingtoetsCommonFormsResources.CalculateAllIcon, - (o, args) => CalculateAll(context) - ); - - if (!GetAllCalculations(context.WrappedData).Any()) - { - menuItem.Enabled = false; - menuItem.ToolTipText = RingtoetsCommonFormsResources.FailureMechanism_CreateCalculateAllItem_No_calculations_to_run; - } - - return menuItem; - } - private void CalculateAll(GrassCoverErosionInwardsFailureMechanismContext context) { - CalculateAll(context.WrappedData, GetAllCalculations(context.WrappedData), context.Parent); + CalculateAll(context.WrappedData, context.WrappedData.Calculations.OfType(), context.Parent); } #endregion Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs =================================================================== diff -u -r4d711e7b0e3a8e91c9afc0339e3f7dadaf619fc3 -r0a1752d24408af81508bc81d154293be23c9c4ea --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 4d711e7b0e3a8e91c9afc0339e3f7dadaf619fc3) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 0a1752d24408af81508bc81d154293be23c9c4ea) @@ -288,16 +288,14 @@ var validateAllItem = CreateValidateAllItem(pipingFailureMechanismContext.WrappedData); - var calculateAllItem = CreateCalculateAllItem(pipingFailureMechanismContext.WrappedData); - var builder = new RingtoetsContextMenuBuilder(Gui.Get(pipingFailureMechanismContext, treeViewControl)); return builder .AddOpenItem() .AddSeparator() .AddCustomItem(changeRelevancyItem) .AddSeparator() .AddCustomItem(validateAllItem) - .AddCustomItem(calculateAllItem) + .AddPerformAllCalculationsInFailureMechanismItem(pipingFailureMechanismContext, CalculateAll) .AddClearAllCalculationOutputInFailureMechanismItem(pipingFailureMechanismContext.WrappedData) .AddSeparator() .AddImportItem() @@ -326,24 +324,6 @@ return failureMechanism.Calculations.OfType(); } - private StrictContextMenuItem CreateCalculateAllItem(PipingFailureMechanism failureMechanism) - { - var menuItem = new StrictContextMenuItem( - RingtoetsCommonFormsResources.Calculate_all, - RingtoetsCommonFormsResources.Calculate_all_ToolTip, - RingtoetsCommonFormsResources.CalculateAllIcon, - (o, args) => CalculateAll(failureMechanism) - ); - - if (!GetAllPipingCalculations(failureMechanism).Any()) - { - menuItem.Enabled = false; - menuItem.ToolTipText = RingtoetsCommonFormsResources.FailureMechanism_CreateCalculateAllItem_No_calculations_to_run; - } - - return menuItem; - } - private StrictContextMenuItem CreateValidateAllItem(PipingFailureMechanism failureMechanism) { var menuItem = new StrictContextMenuItem( @@ -370,9 +350,9 @@ } } - private void CalculateAll(PipingFailureMechanism failureMechanism) + private void CalculateAll(PipingFailureMechanismContext failureMechanismContext) { - ActivityProgressDialogRunner.Run(Gui.MainWindow, GetAllPipingCalculations(failureMechanism).Select(calc => new PipingCalculationActivity(calc)).ToList()); + ActivityProgressDialogRunner.Run(Gui.MainWindow, GetAllPipingCalculations(failureMechanismContext.WrappedData).Select(calc => new PipingCalculationActivity(calc)).ToList()); } private object[] FailureMechanismEnabledChildNodeObjects(PipingFailureMechanismContext pipingFailureMechanismContext)