Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs =================================================================== diff -u -rc3031f6290e2975c6a136b4b9327ae7fbd64c6b1 -rb6993e964bc966bd9fa07dc8962dca7f6fbaab70 --- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs (.../CalculationTreeNodeInfoFactory.cs) (revision c3031f6290e2975c6a136b4b9327ae7fbd64c6b1) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs (.../CalculationTreeNodeInfoFactory.cs) (revision b6993e964bc966bd9fa07dc8962dca7f6fbaab70) @@ -30,6 +30,7 @@ using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Common.Forms.Properties; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; +using BaseResources = Core.Common.Base.Properties.Resources; namespace Ringtoets.Common.Forms.TreeNodeInfos { @@ -115,6 +116,39 @@ builder.AddCustomItem(createCalculationItem); } + /// + /// This method adds a context menu item for clearing the output of all calculations in the calculation group. + /// + /// The builder to add the context menu item to. + /// The calculation group involved. + public static void AddClearAllCalculationOutputInGroupItem(IContextMenuBuilder builder, CalculationGroup calculationGroup) + { + var clearAllItem = new StrictContextMenuItem( + Resources.Clear_all_output, + Resources.CalculationGroup_ClearOutput_ToolTip, + Resources.ClearIcon, (o, args) => + { + if (MessageBox.Show(Resources.CalculationGroup_ClearOutput_Are_you_sure_clear_all_output, BaseResources.Confirm, MessageBoxButtons.OKCancel) != DialogResult.OK) + { + return; + } + + foreach (var calc in calculationGroup.GetCalculations().Where(c => c.HasOutput)) + { + calc.ClearOutput(); + calc.NotifyObservers(); + } + }); + + if (!calculationGroup.GetCalculations().Any(c => c.HasOutput)) + { + clearAllItem.Enabled = false; + clearAllItem.ToolTipText = Resources.CalculationGroup_ClearOutput_No_calculation_with_output_to_clear; + } + + builder.AddCustomItem(clearAllItem); + } + # region Helper methods for CreateCalculationGroupContextTreeNodeInfo private static bool IsNestedGroup(object parentData)