Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/ContextMenuItemFactory.cs =================================================================== diff -u -rb47c41dd3741ada477388e6c8a9224ecb66291e7 -r34a892d5a6359899794f3fb44fcc5a900abaf697 --- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/ContextMenuItemFactory.cs (.../ContextMenuItemFactory.cs) (revision b47c41dd3741ada477388e6c8a9224ecb66291e7) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/ContextMenuItemFactory.cs (.../ContextMenuItemFactory.cs) (revision 34a892d5a6359899794f3fb44fcc5a900abaf697) @@ -49,15 +49,7 @@ Resources.CalculationGroup_Add_CalculationGroup, Resources.CalculationGroup_Add_CalculationGroup_Tooltip, Resources.AddFolderIcon, - (o, args) => - { - var calculation = new CalculationGroup - { - Name = NamingHelper.GetUniqueName(calculationGroup.Children, RingtoetsCommonDataResources.CalculationGroup_DefaultName, c => c.Name) - }; - calculationGroup.Children.Add(calculation); - calculationGroup.NotifyObservers(); - }); + (o, args) => CreateCalculationGroup(calculationGroup)); builder.AddCustomItem(createCalculationGroupItem); } @@ -75,7 +67,7 @@ Resources.CalculationGroup_Add_Calculation, Resources.CalculationGroup_Add_Calculation_Tooltip, Resources.FailureMechanismIcon, - (o, args) => { addCalculation(calculationGroupContext); }); + (o, args) => addCalculation(calculationGroupContext)); builder.AddCustomItem(createCalculationItem); } @@ -90,21 +82,10 @@ 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; - } + Resources.ClearIcon, + (o, args) => ClearAllCalculationOutputInGroup(calculationGroup)); - foreach (var calc in calculationGroup.GetCalculations().Where(c => c.HasOutput)) - { - calc.ClearOutput(); - calc.NotifyObservers(); - } - }); - - if (!calculationGroup.GetCalculations().Any(c => c.HasOutput)) + if (!calculationGroup.HasOutput()) { clearAllItem.Enabled = false; clearAllItem.ToolTipText = Resources.CalculationGroup_ClearOutput_No_calculation_with_output_to_clear; @@ -127,7 +108,8 @@ var performAllItem = new StrictContextMenuItem( Resources.Calculate_all, Resources.CalculationGroup_CalculateAll_ToolTip, - Resources.CalculateAllIcon, (o, args) => { calculateAll(calculationGroup, context); }); + Resources.CalculateAllIcon, + (o, args) => calculateAll(calculationGroup, context)); if (!calculationGroup.GetCalculations().Any()) { @@ -154,7 +136,7 @@ Resources.Calculate, Resources.Calculate_ToolTip, Resources.CalculateIcon, - (o, args) => { calculate(calculation, context); }); + (o, args) => calculate(calculation, context)); builder.AddCustomItem(calculateItem); } @@ -170,17 +152,8 @@ Resources.Clear_output, Resources.Clear_output_ToolTip, Resources.ClearIcon, - (o, args) => - { - if (MessageBox.Show(Resources.Calculation_ContextMenuStrip_Are_you_sure_clear_output, BaseResources.Confirm, MessageBoxButtons.OKCancel) != DialogResult.OK) - { - return; - } + (o, args) => ClearCalculationOutput(calculation)); - calculation.ClearOutput(); - calculation.NotifyObservers(); - }); - if (!calculation.HasOutput) { clearOutputItem.Enabled = false; @@ -202,13 +175,44 @@ Resources.FailureMechanismContextMenuStrip_Is_relevant, Resources.FailureMechanismContextMenuStrip_Is_relevant_Tooltip, Resources.Checkbox_empty, - (sender, args) => + (o, args) => { failureMechanismContext.WrappedData.IsRelevant = true; failureMechanismContext.WrappedData.NotifyObservers(); }); builder.AddCustomItem(changeRelevancyItem); } + + private static void CreateCalculationGroup(CalculationGroup calculationGroup) + { + calculationGroup.Children.Add(new CalculationGroup + { + Name = NamingHelper.GetUniqueName(calculationGroup.Children, RingtoetsCommonDataResources.CalculationGroup_DefaultName, c => c.Name) + }); + + calculationGroup.NotifyObservers(); + } + + private static void ClearAllCalculationOutputInGroup(CalculationGroup calculationGroup) + { + if (MessageBox.Show(Resources.CalculationGroup_ClearOutput_Are_you_sure_clear_all_output, BaseResources.Confirm, MessageBoxButtons.OKCancel) != DialogResult.OK) + { + return; + } + + calculationGroup.ClearCalculationOutput(); + } + + private static void ClearCalculationOutput(ICalculation calculation) + { + if (MessageBox.Show(Resources.Calculation_ContextMenuStrip_Are_you_sure_clear_output, BaseResources.Confirm, MessageBoxButtons.OKCancel) != DialogResult.OK) + { + return; + } + + calculation.ClearOutput(); + calculation.NotifyObservers(); + } } } \ No newline at end of file