Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/NodePresenters/PipingFailureMechanismNodePresenter.cs =================================================================== diff -u -rb326158bd228dc407858ba620a437a175baf0190 -ra91d476e6523dffd4dd76bb21a53185b8e7e891b --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/NodePresenters/PipingFailureMechanismNodePresenter.cs (.../PipingFailureMechanismNodePresenter.cs) (revision b326158bd228dc407858ba620a437a175baf0190) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/NodePresenters/PipingFailureMechanismNodePresenter.cs (.../PipingFailureMechanismNodePresenter.cs) (revision a91d476e6523dffd4dd76bb21a53185b8e7e891b) @@ -72,19 +72,9 @@ (s, e) => AddCalculation(failureMechanism, node) ); - var validateAllItem = new StrictContextMenuItem( - RingtoetsCommonFormsResources.Validate_all, - RingtoetsCommonFormsResources.Validate_all_ToolTip, - RingtoetsCommonFormsResources.ValidateAllIcon, - (o, args) => ValidateAll(failureMechanism) - ); + var validateAllItem = CreateValidateAllItem(failureMechanism); - var calculateAllItem = new StrictContextMenuItem( - RingtoetsCommonFormsResources.Calculate_all, - RingtoetsCommonFormsResources.Calculate_all_ToolTip, - RingtoetsCommonFormsResources.CalculateAllIcon, - (o, args) => CalculateAll(failureMechanism) - ); + var calculateAllItem = CreateCalculateAllItem(failureMechanism); var clearAllItem = new StrictContextMenuItem( RingtoetsCommonFormsResources.Clear_all_output, @@ -115,6 +105,42 @@ .Build(); } + private StrictContextMenuItem CreateCalculateAllItem(PipingFailureMechanism failureMechanism) + { + var menuItem = new StrictContextMenuItem( + RingtoetsCommonFormsResources.Calculate_all, + RingtoetsCommonFormsResources.Calculate_all_ToolTip, + RingtoetsCommonFormsResources.CalculateAllIcon, + (o, args) => CalculateAll(failureMechanism) + ); + + if (!GetAllPipingCalculationsResursively(failureMechanism).Any()) + { + menuItem.Enabled = false; + menuItem.ToolTipText = PipingFormsResources.PipingFailureMechanismNodePresenter_CreateCalculateAllItem_No_calculations_to_calculate; + } + + return menuItem; + } + + private StrictContextMenuItem CreateValidateAllItem(PipingFailureMechanism failureMechanism) + { + var menuItem = new StrictContextMenuItem( + RingtoetsCommonFormsResources.Validate_all, + RingtoetsCommonFormsResources.Validate_all_ToolTip, + RingtoetsCommonFormsResources.ValidateAllIcon, + (o, args) => ValidateAll(failureMechanism) + ); + + if (!GetAllPipingCalculationsResursively(failureMechanism).Any()) + { + menuItem.Enabled = false; + menuItem.ToolTipText = PipingFormsResources.PipingFailureMechanismNodePresenter_CreateValidateAllItem_No_calculations_to_validate; + } + + return menuItem; + } + private static void ClearAll(PipingFailureMechanism failureMechanism) { if (MessageBox.Show(PipingFormsResources.PipingCalculationGroupContextNodePresenter_GetContextMenu_Are_you_sure_clear_all_output, BaseResources.Confirm, MessageBoxButtons.OKCancel) != DialogResult.OK)