Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs =================================================================== diff -u -r4cc73327b5db5355b456dc0c51846213ad0ea566 -rded51ed5be07b08a299605abbeaed5ba70a7f89c --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 4cc73327b5db5355b456dc0c51846213ad0ea566) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision ded51ed5be07b08a299605abbeaed5ba70a7f89c) @@ -321,6 +321,15 @@ } /// + /// Looks up a localized string similar to Er is geen Hydraulische randvoorwaarden database beschikbaar om de toetspeilen te bereken.. + /// + public static string Toetspeil_No_HRD_To_Calculate { + get { + return ResourceManager.GetString("Toetspeil_No_HRD_To_Calculate", resourceCulture); + } + } + + /// /// Looks up a localized string similar to &Valideren. /// public static string Validate { Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx =================================================================== diff -u -r4cc73327b5db5355b456dc0c51846213ad0ea566 -rded51ed5be07b08a299605abbeaed5ba70a7f89c --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision 4cc73327b5db5355b456dc0c51846213ad0ea566) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision ded51ed5be07b08a299605abbeaed5ba70a7f89c) @@ -220,4 +220,7 @@ Database op pad {0} gekoppeld + + Er is geen Hydraulische randvoorwaarden database beschikbaar om de toetspeilen te bereken. + \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs =================================================================== diff -u -r4cc73327b5db5355b456dc0c51846213ad0ea566 -rded51ed5be07b08a299605abbeaed5ba70a7f89c --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision 4cc73327b5db5355b456dc0c51846213ad0ea566) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision ded51ed5be07b08a299605abbeaed5ba70a7f89c) @@ -377,13 +377,27 @@ RingtoetsCommonFormsResources.HydraulicBoundaryDatabase_Connect_ToolTip, RingtoetsCommonFormsResources.DatabaseIcon, (sender, args) => { SelectDatabaseFile(nodeData); }); + var toetsPeilItem = new StrictContextMenuItem( + RingtoetsCommonFormsResources.Toetspeil_Calculate, + RingtoetsCommonFormsResources.Toetspeil_Calculate_ToolTip, + RingtoetsFormsResources.FailureMechanismIcon, + null); + + if (string.IsNullOrEmpty(nodeData.BoundaryDatabase.FilePath)) + { + toetsPeilItem.Enabled = false; + toetsPeilItem.ToolTipText = RingtoetsCommonFormsResources.Toetspeil_No_HRD_To_Calculate; + } + return Gui.Get(nodeData, treeViewControl) .AddOpenItem() .AddSeparator() .AddCustomItem(connectionItem) .AddImportItem() .AddExportItem() .AddSeparator() + .AddCustomItem(toetsPeilItem) + .AddSeparator() .AddPropertiesItem() .Build(); } @@ -427,7 +441,7 @@ ImportSelectedFile(nodeData, hydraulicBoundaryLocationsImporter, selectedFile, newVersion); } - private static void ShowCleanDialog(HydraulicBoundaryDatabaseContext nodeData, + private static void ShowCleanDialog(HydraulicBoundaryDatabaseContext nodeData, HydraulicBoundaryLocationsImporter hydraulicBoundaryLocationsImporter, string filePath, string version) @@ -456,7 +470,7 @@ } } - private static void ImportSelectedFile(HydraulicBoundaryDatabaseContext nodeData, + private static void ImportSelectedFile(HydraulicBoundaryDatabaseContext nodeData, HydraulicBoundaryLocationsImporter hydraulicBoundaryLocationsImporter, string selectedFile, string newVersion) Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs =================================================================== diff -u -rca282ef689ea9be0eaa4a7bc3c2276b904d2afb8 -rded51ed5be07b08a299605abbeaed5ba70a7f89c --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs (.../HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs) (revision ca282ef689ea9be0eaa4a7bc3c2276b904d2afb8) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs (.../HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs) (revision ded51ed5be07b08a299605abbeaed5ba70a7f89c) @@ -2,6 +2,7 @@ using Core.Common.Controls.TreeView; using Core.Common.Gui; using Core.Common.Gui.ContextMenu; +using Core.Common.Gui.TestUtil.ContextMenu; using Core.Common.TestUtil; using NUnit.Extensions.Forms; using NUnit.Framework; @@ -11,6 +12,8 @@ using Ringtoets.Integration.Data.HydraulicBoundary; using Ringtoets.Integration.Forms.Properties; using Ringtoets.Integration.Plugin; +using RingtoetsFormsResources = Ringtoets.Integration.Forms.Properties.Resources; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; namespace Ringtoets.Integration.Forms.Test.TreeNodeInfos { @@ -112,6 +115,8 @@ menuBuilderMock.Expect(mb => mb.AddImportItem()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddExportItem()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddPropertiesItem()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.Build()).Return(null); @@ -127,5 +132,58 @@ // Assert mocks.VerifyAll(); } + + [Test] + public void ContextMenuStrip_NoHydraulicBoundaryDatabaseSet_ContextMenuItemCalculateToetspeilenDisabled() + { + // Setup + var guiMock = mocks.StrictMock(); + var treeViewControlMock = mocks.StrictMock(); + var hydraulicBoundaryDatabaseMock = mocks.StrictMock(); + var assessmentSectionMock = mocks.StrictMock(); + + var nodeData = new HydraulicBoundaryDatabaseContext(hydraulicBoundaryDatabaseMock, assessmentSectionMock); + + guiMock.Expect(cmp => cmp.Get(nodeData, treeViewControlMock)).Return(new CustomItemsOnlyContextMenuBuilder()); + + mocks.ReplayAll(); + + plugin.Gui = guiMock; + + // Call + var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControlMock); + + // Assert + mocks.VerifyAll(); // Expect no calls on arguments + + TestHelper.AssertContextMenuStripContainsItem(contextMenu, 3, RingtoetsCommonFormsResources.Toetspeil_Calculate, RingtoetsCommonFormsResources.Toetspeil_No_HRD_To_Calculate, RingtoetsFormsResources.FailureMechanismIcon, false); + } + + [Test] + public void ContextMenuStrip_HydraulicBoundaryDatabaseSet_ContextMenuItemCalculateToetspeilenEnabled() + { + // Setup + var guiMock = mocks.StrictMock(); + var treeViewControlMock = mocks.StrictMock(); + var hydraulicBoundaryDatabaseMock = mocks.StrictMock(); + var assessmentSectionMock = mocks.StrictMock(); + + var nodeData = new HydraulicBoundaryDatabaseContext(hydraulicBoundaryDatabaseMock, assessmentSectionMock); + + guiMock.Expect(cmp => cmp.Get(nodeData, treeViewControlMock)).Return(new CustomItemsOnlyContextMenuBuilder()); + + mocks.ReplayAll(); + + plugin.Gui = guiMock; + + // Call + nodeData.BoundaryDatabase.FilePath = testDataPath; + var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControlMock); + + // Assert + mocks.VerifyAll(); // Expect no calls on arguments + + TestHelper.AssertContextMenuStripContainsItem(contextMenu, 3, RingtoetsCommonFormsResources.Toetspeil_Calculate, RingtoetsCommonFormsResources.Toetspeil_Calculate_ToolTip, RingtoetsFormsResources.FailureMechanismIcon); + } } } \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationContextTreeNodeInfoTest.cs =================================================================== diff -u -rf98cc7191a717793f69485dad2923cd34f6d48de -rded51ed5be07b08a299605abbeaed5ba70a7f89c --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationContextTreeNodeInfoTest.cs (.../PipingCalculationContextTreeNodeInfoTest.cs) (revision f98cc7191a717793f69485dad2923cd34f6d48de) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationContextTreeNodeInfoTest.cs (.../PipingCalculationContextTreeNodeInfoTest.cs) (revision ded51ed5be07b08a299605abbeaed5ba70a7f89c) @@ -244,6 +244,7 @@ [Test] public void ContextMenuStrip_PipingCalculationWithoutOutput_ContextMenuItemClearOutputDisabled() { + // Setup var gui = mocks.StrictMock(); var treeViewControlMock = mocks.StrictMock(); var calculation = new PipingCalculation();