Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs =================================================================== diff -u -r5f48c2f099a9ffd0e55b86aea0b356a226a1918f -r1f53a54d4b93ca002ae0ec0905c0dab16fa7ae6a --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs (.../StabilityPointStructuresPlugin.cs) (revision 5f48c2f099a9ffd0e55b86aea0b356a226a1918f) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs (.../StabilityPointStructuresPlugin.cs) (revision 1f53a54d4b93ca002ae0ec0905c0dab16fa7ae6a) @@ -25,6 +25,7 @@ using System.Windows.Forms; using Core.Common.Base; using Core.Common.Controls.TreeView; +using Core.Common.Gui; using Core.Common.Gui.ContextMenu; using Core.Common.Gui.Forms.ProgressDialog; using Core.Common.Gui.Plugin; @@ -672,15 +673,20 @@ return childNodes.ToArray(); } - private ContextMenuStrip CalculationContextContextMenuStrip(StabilityPointStructuresCalculationContext context, object parentData, TreeViewControl treeViewControl) + private ContextMenuStrip CalculationContextContextMenuStrip(StabilityPointStructuresCalculationContext context, + object parentData, + TreeViewControl treeViewControl) { var builder = new RingtoetsContextMenuBuilder(Gui.Get(context, treeViewControl)); + var inquiryHelper = new DialogBasedInquiryHelper(Gui.MainWindow); StructuresCalculation calculation = context.WrappedData; - return builder.AddExportItem() .AddSeparator() .AddRenameItem() + .AddUpdateForeshoreProfileOfCalculationItem(calculation, + inquiryHelper, + UpdateForeshoreProfileDerivedCalculationInput) .AddSeparator() .AddValidateCalculationItem( context, @@ -702,6 +708,8 @@ .Build(); } + private static void UpdateForeshoreProfileDerivedCalculationInput(ICalculation calculation) {} + private static string ValidateAllDataAvailableAndGetErrorMessage(StabilityPointStructuresCalculationContext context) { return ValidateAllDataAvailableAndGetErrorMessage(context.AssessmentSection, context.FailureMechanism); Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/TreeNodeInfos/StabilityPointStructuresCalculationContextTreeNodeInfoTest.cs =================================================================== diff -u -rff948d4633181ead2677ab35467a93b4118c6751 -r1f53a54d4b93ca002ae0ec0905c0dab16fa7ae6a --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/TreeNodeInfos/StabilityPointStructuresCalculationContextTreeNodeInfoTest.cs (.../StabilityPointStructuresCalculationContextTreeNodeInfoTest.cs) (revision ff948d4633181ead2677ab35467a93b4118c6751) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/TreeNodeInfos/StabilityPointStructuresCalculationContextTreeNodeInfoTest.cs (.../StabilityPointStructuresCalculationContextTreeNodeInfoTest.cs) (revision 1f53a54d4b93ca002ae0ec0905c0dab16fa7ae6a) @@ -55,9 +55,10 @@ [TestFixture] public class StabilityPointStructuresCalculationContextTreeNodeInfoTest : NUnitFormTest { - private const int contextMenuValidateIndex = 4; - private const int contextMenuCalculateIndex = 5; - private const int contextMenuClearIndex = 7; + private const int contextMenuUpdateForeshoreProfileIndex = 3; + private const int contextMenuValidateIndex = 5; + private const int contextMenuCalculateIndex = 6; + private const int contextMenuClearIndex = 8; private readonly string testDataPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Common.IO, "HydraulicBoundaryDatabaseImporter"); private MockRepository mocks; @@ -184,6 +185,7 @@ menuBuilderMock.Expect(mb => mb.AddExportItem()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddRenameItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); @@ -202,6 +204,7 @@ { var gui = mocks.Stub(); gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilderMock); + gui.Stub(cmp => cmp.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); plugin.Gui = gui; @@ -235,6 +238,7 @@ { var gui = mocks.Stub(); gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(cmp => cmp.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); plugin.Gui = gui; @@ -243,8 +247,14 @@ using (ContextMenuStrip menu = info.ContextMenuStrip(nodeData, assessmentSection, treeViewControl)) { // Assert - Assert.AreEqual(14, menu.Items.Count); + Assert.AreEqual(15, menu.Items.Count); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuUpdateForeshoreProfileIndex, + "&Bijwerken voorlandprofiel...", + "Er moet een voorlandprofiel geselecteerd zijn.", + RingtoetsCommonFormsResources.UpdateItemIcon, + false); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuValidateIndex, "&Valideren", "Valideer de invoer voor deze berekening.", @@ -277,6 +287,7 @@ { var gui = mocks.Stub(); gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); + gui.Stub(cmp => cmp.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); plugin.Gui = gui; @@ -316,6 +327,7 @@ { var gui = mocks.Stub(); gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); + gui.Stub(cmp => cmp.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); plugin.Gui = gui; @@ -362,6 +374,7 @@ { var gui = mocks.Stub(); gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); + gui.Stub(cmp => cmp.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); plugin.Gui = gui; @@ -406,6 +419,7 @@ { var gui = mocks.Stub(); gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); + gui.Stub(cmp => cmp.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); plugin.Gui = gui; @@ -545,6 +559,7 @@ { var gui = mocks.Stub(); gui.Stub(g => g.Get(calculationContext, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); + gui.Stub(cmp => cmp.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); plugin.Gui = gui;