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)
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.Designer.cs
===================================================================
diff -u -r844b6342be08ffe7faa053883960c09f6e46fafa -ra91d476e6523dffd4dd76bb21a53185b8e7e891b
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 844b6342be08ffe7faa053883960c09f6e46fafa)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision a91d476e6523dffd4dd76bb21a53185b8e7e891b)
@@ -480,6 +480,26 @@
}
///
+ /// Looks up a localized string similar to Er zijn geen berekeningen om te berekenen..
+ ///
+ public static string PipingFailureMechanismNodePresenter_CreateCalculateAllItem_No_calculations_to_calculate {
+ get {
+ return ResourceManager.GetString("PipingFailureMechanismNodePresenter_CreateCalculateAllItem_No_calculations_to_cal" +
+ "culate", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Er zijn geen berekeningen om te valideren..
+ ///
+ public static string PipingFailureMechanismNodePresenter_CreateValidateAllItem_No_calculations_to_validate {
+ get {
+ return ResourceManager.GetString("PipingFailureMechanismNodePresenter_CreateValidateAllItem_No_calculations_to_vali" +
+ "date", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
public static System.Drawing.Bitmap PipingIcon {
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.resx
===================================================================
diff -u -r844b6342be08ffe7faa053883960c09f6e46fafa -ra91d476e6523dffd4dd76bb21a53185b8e7e891b
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.resx (.../Resources.resx) (revision 844b6342be08ffe7faa053883960c09f6e46fafa)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.resx (.../Resources.resx) (revision a91d476e6523dffd4dd76bb21a53185b8e7e891b)
@@ -526,4 +526,10 @@
Wis de uitvoer van deze berekening.
+
+ Er zijn geen berekeningen om te valideren.
+
+
+ Er zijn geen berekeningen om te berekenen.
+
\ No newline at end of file
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/NodePresenters/PipingFailureMechanismNodePresenterTest.cs
===================================================================
diff -u -rd7da4fd9051547085f0cbbec790eda9cb8ca7f14 -ra91d476e6523dffd4dd76bb21a53185b8e7e891b
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/NodePresenters/PipingFailureMechanismNodePresenterTest.cs (.../PipingFailureMechanismNodePresenterTest.cs) (revision d7da4fd9051547085f0cbbec790eda9cb8ca7f14)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/NodePresenters/PipingFailureMechanismNodePresenterTest.cs (.../PipingFailureMechanismNodePresenterTest.cs) (revision a91d476e6523dffd4dd76bb21a53185b8e7e891b)
@@ -37,6 +37,7 @@
private const int contextMenuAddFolderIndex = 0;
private const int contextMenuAddCalculationIndex = 1;
+ private const int contextMenuValidateAllIndex = 3;
private const int contextMenuCalculateAllIndex = 4;
private const int contextMenuClearIndex = 5;
@@ -548,7 +549,38 @@
mockRepository.VerifyAll(); // Expect no calls on arguments
}
+
+ [Test]
+ public void GetContextMenu_PipingFailureMechanismWithNoCalculations_ValidateAndCalculateAllDisabled()
+ {
+ // Setup
+ var menuBuilder = new CustomItemsOnlyContextMenuBuilder();
+ var nodeMock = new TreeNode(null);
+ var dataMock = new PipingFailureMechanism();
+ var contextMenuBuilderProviderMock = mockRepository.StrictMock();
+
+ contextMenuBuilderProviderMock.Expect(cmp => cmp.Get(nodeMock)).Return(menuBuilder);
+
+ mockRepository.ReplayAll();
+
+ var nodePresenter = new PipingFailureMechanismNodePresenter(contextMenuBuilderProviderMock);
+ dataMock.CalculationsGroup.Children.Clear();
+
+ // Call
+ ContextMenuStrip contextMenu = nodePresenter.GetContextMenu(nodeMock, dataMock);
+
+ // Assert
+ ToolStripItem validateItem = contextMenu.Items[contextMenuValidateAllIndex];
+ ToolStripItem calculateItem = contextMenu.Items[contextMenuCalculateAllIndex];
+ Assert.IsFalse(validateItem.Enabled);
+ Assert.IsFalse(calculateItem.Enabled);
+ Assert.AreEqual(PipingFormsResources.PipingFailureMechanismNodePresenter_CreateCalculateAllItem_No_calculations_to_calculate, calculateItem.ToolTipText);
+ Assert.AreEqual(PipingFormsResources.PipingFailureMechanismNodePresenter_CreateValidateAllItem_No_calculations_to_validate, validateItem.ToolTipText);
+
+ mockRepository.VerifyAll(); // Expect no calls on arguments
+ }
+
[Test]
public void GetContextMenu_Always_CallsContextMenuBuilderMethods()
{