Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs =================================================================== diff -u -r7343a55e81349863d0e5d7bec5c7f0b3577adf65 -r9643d7e5bbb27a7782b5d939b029a70a1c023138 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 7343a55e81349863d0e5d7bec5c7f0b3577adf65) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 9643d7e5bbb27a7782b5d939b029a70a1c023138) @@ -127,6 +127,15 @@ } /// + /// Looks up a localized string similar to Weet u zeker dat u de uitvoer van deze berekening wilt wissen?. + /// + public static string Calculation_ContextMenuStrip_Are_you_sure_clear_output { + get { + return ResourceManager.GetString("Calculation_ContextMenuStrip_Are_you_sure_clear_output", resourceCulture); + } + } + + /// /// Looks up a localized string similar to &Berekening toevoegen. /// public static string CalculationGroup_Add_Calculation { @@ -255,6 +264,24 @@ } /// + /// Looks up a localized string similar to &Wis uitvoer.... + /// + public static string Clear_output { + get { + return ResourceManager.GetString("Clear_output", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Wis de uitvoer van deze berekening.. + /// + public static string Clear_output_ToolTip { + get { + return ResourceManager.GetString("Clear_output_ToolTip", resourceCulture); + } + } + + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// public static System.Drawing.Bitmap ClearIcon { @@ -265,6 +292,15 @@ } /// + /// Looks up a localized string similar to Deze berekening heeft geen uitvoer om te wissen.. + /// + public static string ClearOutput_No_output_to_clear { + get { + return ResourceManager.GetString("ClearOutput_No_output_to_clear", resourceCulture); + } + } + + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// public static System.Drawing.Bitmap DatabaseErrorIcon { Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx =================================================================== diff -u -r7343a55e81349863d0e5d7bec5c7f0b3577adf65 -r9643d7e5bbb27a7782b5d939b029a70a1c023138 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision 7343a55e81349863d0e5d7bec5c7f0b3577adf65) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision 9643d7e5bbb27a7782b5d939b029a70a1c023138) @@ -301,4 +301,16 @@ Resultaat + + Deze berekening heeft geen uitvoer om te wissen. + + + &Wis uitvoer... + + + Wis de uitvoer van deze berekening. + + + Weet u zeker dat u de uitvoer van deze berekening wilt wissen? + \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs =================================================================== diff -u -r3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356 -r9643d7e5bbb27a7782b5d939b029a70a1c023138 --- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs (.../CalculationTreeNodeInfoFactory.cs) (revision 3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs (.../CalculationTreeNodeInfoFactory.cs) (revision 9643d7e5bbb27a7782b5d939b029a70a1c023138) @@ -224,6 +224,37 @@ builder.AddCustomItem(calculateItem); } + /// + /// This method adds a context menu item for clearing the output of a calculation. + /// + /// The builder to add the context menu item to. + /// The calculation involved. + public static void AddClearCalculationOutputItem(IContextMenuBuilder builder, ICalculation calculation) + { + var clearOutputItem = new StrictContextMenuItem( + 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; + } + + calculation.ClearOutput(); + calculation.NotifyObservers(); + }); + + if (!calculation.HasOutput) + { + clearOutputItem.Enabled = false; + clearOutputItem.ToolTipText = Resources.ClearOutput_No_output_to_clear; + } + + builder.AddCustomItem(clearOutputItem); + } + # region Helper methods for CreateCalculationGroupContextTreeNodeInfo private static bool IsNestedGroup(object parentData) Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs =================================================================== diff -u -r3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356 -r9643d7e5bbb27a7782b5d939b029a70a1c023138 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs (.../CalculationTreeNodeInfoFactoryTest.cs) (revision 3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs (.../CalculationTreeNodeInfoFactoryTest.cs) (revision 9643d7e5bbb27a7782b5d939b029a70a1c023138) @@ -480,8 +480,141 @@ // Assert Assert.AreEqual(1, counter); + mocks.VerifyAll(); } + [Test] + public void AddClearCalculationOutputItem_CalculationWithOutput_CreatesDecoratedAndEnabledClearItem() + { + // Setup + var mocks = new MockRepository(); + var applicationFeatureCommandHandler = mocks.Stub(); + var exportImportHandler = mocks.Stub(); + var viewCommandsHandler = mocks.StrictMock(); + var treeViewControl = mocks.StrictMock(); + var calculationWithOutput = mocks.StrictMock(); + + calculationWithOutput.Expect(c => c.HasOutput).Return(true); + + mocks.ReplayAll(); + + var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationWithOutput, treeViewControl); + + // Call + CalculationTreeNodeInfoFactory.AddClearCalculationOutputItem(menuBuilder, calculationWithOutput); + + // Assert + TestHelper.AssertContextMenuStripContainsItem(menuBuilder.Build(), 0, + RingtoetsFormsResources.Clear_output, + RingtoetsFormsResources.Clear_output_ToolTip, + RingtoetsFormsResources.ClearIcon); + mocks.VerifyAll(); + } + + [Test] + public void AddClearCalculationOutputItem_CalculationWithoutOutput_CreatesDecoratedAndDisabledClearItem() + { + // Setup + var mocks = new MockRepository(); + var applicationFeatureCommandHandler = mocks.Stub(); + var exportImportHandler = mocks.Stub(); + var viewCommandsHandler = mocks.StrictMock(); + var treeViewControl = mocks.StrictMock(); + var calculationWithOutput = mocks.StrictMock(); + + calculationWithOutput.Expect(c => c.HasOutput).Return(false); + + mocks.ReplayAll(); + + var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationWithOutput, treeViewControl); + + // Call + CalculationTreeNodeInfoFactory.AddClearCalculationOutputItem(menuBuilder, calculationWithOutput); + + // Assert + TestHelper.AssertContextMenuStripContainsItem(menuBuilder.Build(), 0, + RingtoetsFormsResources.Clear_output, + RingtoetsFormsResources.ClearOutput_No_output_to_clear, + RingtoetsFormsResources.ClearIcon, + false); + mocks.VerifyAll(); + } + + [Test] + public void AddClearCalculationOutputItem_PerformClickOnCreatedItemAndConfirmChange_CalculationOutputClearedAndObserversNotified() + { + var messageBoxText = ""; + var messageBoxTitle = ""; + var mocks = new MockRepository(); + var applicationFeatureCommandHandler = mocks.Stub(); + var exportImportHandler = mocks.Stub(); + var viewCommandsHandler = mocks.StrictMock(); + var treeViewControl = mocks.StrictMock(); + var calculationWithOutput = mocks.StrictMock(); + + calculationWithOutput.Stub(c => c.HasOutput).Return(true); + + calculationWithOutput.Expect(c => c.ClearOutput()); + calculationWithOutput.Expect(c => c.NotifyObservers()); + + mocks.ReplayAll(); + + DialogBoxHandler = (name, wnd) => + { + var messageBox = new MessageBoxTester(wnd); + messageBoxText = messageBox.Text; + messageBoxTitle = messageBox.Title; + + messageBox.ClickOk(); + }; + + var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationWithOutput, treeViewControl); + + CalculationTreeNodeInfoFactory.AddClearCalculationOutputItem(menuBuilder, calculationWithOutput); + var contextMenuItem = menuBuilder.Build().Items[0]; + + // Call + contextMenuItem.PerformClick(); + + // Assert + Assert.AreEqual(BaseResources.Confirm, messageBoxTitle); + Assert.AreEqual(RingtoetsFormsResources.Calculation_ContextMenuStrip_Are_you_sure_clear_output, messageBoxText); + + mocks.VerifyAll(); + } + + [Test] + public void AddClearCalculationOutputItem_PerformClickOnCreatedItemAndCancelChange_CalculationOutputNotCleared() + { + var mocks = new MockRepository(); + var applicationFeatureCommandHandler = mocks.Stub(); + var exportImportHandler = mocks.Stub(); + var viewCommandsHandler = mocks.StrictMock(); + var treeViewControl = mocks.StrictMock(); + var calculationWithOutput = mocks.StrictMock(); + + calculationWithOutput.Stub(c => c.HasOutput).Return(true); + + mocks.ReplayAll(); + + DialogBoxHandler = (name, wnd) => + { + var messageBox = new MessageBoxTester(wnd); + + messageBox.ClickCancel(); + }; + + var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationWithOutput, treeViewControl); + + CalculationTreeNodeInfoFactory.AddClearCalculationOutputItem(menuBuilder, calculationWithOutput); + var contextMenuItem = menuBuilder.Build().Items[0]; + + // Call + contextMenuItem.PerformClick(); + + mocks.VerifyAll(); + } + # region CreateCalculationGroupContextTreeNodeInfo [Test] Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs =================================================================== diff -u -r3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356 -r9643d7e5bbb27a7782b5d939b029a70a1c023138 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 9643d7e5bbb27a7782b5d939b029a70a1c023138) @@ -362,21 +362,11 @@ GrassCoverErosionInwardsCalculation calculation = nodeData.WrappedData; - CalculationTreeNodeInfoFactory.AddPerformCalculationItem(builder, calculation, null); + CalculationTreeNodeInfoFactory.AddPerformCalculationItem(builder, calculation, null); //TODO: Actualy connect the calculation + CalculationTreeNodeInfoFactory.AddClearCalculationOutputItem(builder, calculation); builder.AddSeparator(); -// var clearOutputItem = new StrictContextMenuItem(PipingFormsResources.Clear_output, -// PipingFormsResources.Clear_output_ToolTip, -// RingtoetsCommonFormsResources.ClearIcon, -// (o, args) => ClearOutput(calculation)); -// -// if (!calculation.HasOutput) -// { -// clearOutputItem.Enabled = false; -// clearOutputItem.ToolTipText = PipingFormsResources.ClearOutput_No_output_to_clear; -// } return builder -// .AddCustomItem(clearOutputItem) .AddRenameItem() .AddDeleteItem() .AddSeparator() Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs =================================================================== diff -u -r3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356 -r9643d7e5bbb27a7782b5d939b029a70a1c023138 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs) (revision 3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs) (revision 9643d7e5bbb27a7782b5d939b029a70a1c023138) @@ -23,6 +23,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.Framework; using Rhino.Mocks; @@ -33,6 +34,7 @@ using Ringtoets.GrassCoverErosionInwards.Forms.PresentationObjects; using Ringtoets.GrassCoverErosionInwards.Plugin; using GrassCoverErosionInwardsFormsResources = Ringtoets.GrassCoverErosionInwards.Forms.Properties.Resources; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; namespace Ringtoets.GrassCoverErosionInwards.Forms.Test.TreeNodeInfos { @@ -77,11 +79,12 @@ [Test] public void ChildNodeObjects_WithOutputData_ReturnOutputChildNode() - { - var calculation = mocks.StrictMock(new GeneralGrassCoverErosionInwardsInput()); + { var assessmentSectionMock = mocks.StrictMock(); mocks.ReplayAll(); + var calculation = new GrassCoverErosionInwardsCalculation(new GeneralGrassCoverErosionInwardsInput()); + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); var calculationContext = new GrassCoverErosionInwardsCalculationContext(calculation, failureMechanism, assessmentSectionMock); @@ -99,6 +102,7 @@ var emptyOutput = (EmptyGrassCoverErosionInwardsOutput) children[2]; Assert.IsNotNull(emptyOutput); + mocks.VerifyAll(); } [Test] @@ -110,6 +114,7 @@ var menuBuilderMock = mocks.Stub(); menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddRenameItem()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddDeleteItem()).Return(menuBuilderMock); @@ -125,7 +130,7 @@ var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); var assessmentSectionMock = mocks.StrictMock(); - var calculation = mocks.StrictMock(new GeneralGrassCoverErosionInwardsInput()); + var calculation = new GrassCoverErosionInwardsCalculation(new GeneralGrassCoverErosionInwardsInput()); var nodeData = new GrassCoverErosionInwardsCalculationContext(calculation, failureMechanism, assessmentSectionMock); @@ -141,5 +146,65 @@ // Assert mocks.VerifyAll(); // Expect no calls on arguments } + + [Test] + public void ContextMenuStrip_PipingCalculationWithoutOutput_ContextMenuItemClearOutputDisabled() + { + // Setup + var gui = mocks.StrictMock(); + var treeViewControlMock = mocks.StrictMock(); + + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); + var calculation = new GrassCoverErosionInwardsCalculation(new GeneralGrassCoverErosionInwardsInput()); + + var nodeData = new GrassCoverErosionInwardsCalculationContext(calculation, failureMechanism, assessmentSectionMock); + + gui.Expect(cmp => cmp.Get(nodeData, treeViewControlMock)).Return(new CustomItemsOnlyContextMenuBuilder()); + + mocks.ReplayAll(); + + plugin.Gui = gui; + + // Call + var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControlMock); + + // Assert + mocks.VerifyAll(); // Expect no calls on arguments + + TestHelper.AssertContextMenuStripContainsItem(contextMenu, 0, RingtoetsCommonFormsResources.Calculate, RingtoetsCommonFormsResources.Calculate_ToolTip, RingtoetsCommonFormsResources.CalculateIcon); + TestHelper.AssertContextMenuStripContainsItem(contextMenu, 1, RingtoetsCommonFormsResources.Clear_output, RingtoetsCommonFormsResources.ClearOutput_No_output_to_clear, RingtoetsCommonFormsResources.ClearIcon, false); + } + + [Test] + public void ContextMenuStrip_PipingCalculationWithOutput_ContextMenuItemClearOutputEnabled() + { + var gui = mocks.StrictMock(); + var treeViewControlMock = mocks.StrictMock(); + + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); + var calculation = new GrassCoverErosionInwardsCalculation(new GeneralGrassCoverErosionInwardsInput()) + { + Output = new GrassCoverErosionInwardsOutput(0, 0, 0, 0, 0) + }; + + var nodeData = new GrassCoverErosionInwardsCalculationContext(calculation, failureMechanism, assessmentSectionMock); + + gui.Expect(cmp => cmp.Get(nodeData, treeViewControlMock)).Return(new CustomItemsOnlyContextMenuBuilder()); + + mocks.ReplayAll(); + + plugin.Gui = gui; + + // Call + var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControlMock); + + // Assert + mocks.VerifyAll(); // Expect no calls on arguments + + TestHelper.AssertContextMenuStripContainsItem(contextMenu, 0, RingtoetsCommonFormsResources.Calculate, RingtoetsCommonFormsResources.Calculate_ToolTip, RingtoetsCommonFormsResources.CalculateIcon); + TestHelper.AssertContextMenuStripContainsItem(contextMenu, 1, RingtoetsCommonFormsResources.Clear_output, RingtoetsCommonFormsResources.Clear_output_ToolTip, RingtoetsCommonFormsResources.ClearIcon); + } } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.Designer.cs =================================================================== diff -u -r7343a55e81349863d0e5d7bec5c7f0b3577adf65 -r9643d7e5bbb27a7782b5d939b029a70a1c023138 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 7343a55e81349863d0e5d7bec5c7f0b3577adf65) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 9643d7e5bbb27a7782b5d939b029a70a1c023138) @@ -160,33 +160,6 @@ } /// - /// Looks up a localized string similar to &Wis uitvoer.... - /// - public static string Clear_output { - get { - return ResourceManager.GetString("Clear_output", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Wis de uitvoer van deze berekening.. - /// - public static string Clear_output_ToolTip { - get { - return ResourceManager.GetString("Clear_output_ToolTip", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Deze berekening heeft geen uitvoer om te wissen.. - /// - public static string ClearOutput_No_output_to_clear { - get { - return ResourceManager.GetString("ClearOutput_No_output_to_clear", resourceCulture); - } - } - - /// /// Looks up a localized string similar to De representatieve waarde die gebruikt wordt door de berekening.. /// public static string DesignVariableTypeConverter_DesignValue_Description { @@ -577,15 +550,6 @@ } /// - /// Looks up a localized string similar to Weet u zeker dat u de uitvoer van deze berekening wilt wissen?. - /// - public static string PipingCalculationContext_ContextMenuStrip_Are_you_sure_clear_output { - get { - return ResourceManager.GetString("PipingCalculationContext_ContextMenuStrip_Are_you_sure_clear_output", resourceCulture); - } - } - - /// /// Looks up a localized string similar to Piping. /// public static string PipingCalculationContextProperties_DisplayName { Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.resx =================================================================== diff -u -r7343a55e81349863d0e5d7bec5c7f0b3577adf65 -r9643d7e5bbb27a7782b5d939b029a70a1c023138 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.resx (.../Resources.resx) (revision 7343a55e81349863d0e5d7bec5c7f0b3577adf65) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.resx (.../Resources.resx) (revision 9643d7e5bbb27a7782b5d939b029a70a1c023138) @@ -376,15 +376,6 @@ ..\Resources\table.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Deze berekening heeft geen uitvoer om te wissen. - - - &Wis uitvoer... - - - Er zijn geen berekeningen met uitvoer om te wissen. - Lognormaal @@ -454,21 +445,12 @@ Voeg een nieuwe berekening toe aan deze berekeningsmap. - - Valideer en voer alle berekeningen binnen deze berekeningsmap uit. - Weet u zeker dat u alle uitvoer wilt wissen? Valideer alle berekeningen binnen deze berekeningsmap. - - Weet u zeker dat u de uitvoer van deze berekening wilt wissen? - - - Wis de uitvoer van deze berekening. - Er zijn geen berekeningen om te valideren. @@ -721,4 +703,10 @@ De berekening + + Valideer en voer alle berekeningen binnen deze berekeningsmap uit. + + + Er zijn geen berekeningen met uitvoer om te wissen. + \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs =================================================================== diff -u -r3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356 -r9643d7e5bbb27a7782b5d939b029a70a1c023138 --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 9643d7e5bbb27a7782b5d939b029a70a1c023138) @@ -433,22 +433,9 @@ builder.AddCustomItem(validateItem); CalculationTreeNodeInfoFactory.AddPerformCalculationItem(builder, calculation, PerformCalculation); + CalculationTreeNodeInfoFactory.AddClearCalculationOutputItem(builder, calculation); + builder.AddSeparator(); - var clearOutputItem = new StrictContextMenuItem(PipingFormsResources.Clear_output, - PipingFormsResources.Clear_output_ToolTip, - RingtoetsCommonFormsResources.ClearIcon, - (o, args) => ClearOutput(calculation)); - - if (!calculation.HasOutput) - { - clearOutputItem.Enabled = false; - clearOutputItem.ToolTipText = PipingFormsResources.ClearOutput_No_output_to_clear; - } - - builder - .AddCustomItem(clearOutputItem) - .AddSeparator(); - return builder .AddRenameItem() .AddDeleteItem() @@ -504,17 +491,6 @@ } } - private static void ClearOutput(PipingCalculation calculation) - { - if (MessageBox.Show(PipingFormsResources.PipingCalculationContext_ContextMenuStrip_Are_you_sure_clear_output, BaseResources.Confirm, MessageBoxButtons.OKCancel) != DialogResult.OK) - { - return; - } - - calculation.ClearOutput(); - calculation.NotifyObservers(); - } - private void PerformCalculation(ICalculation calculation) { ActivityProgressDialogRunner.Run(Gui.MainWindow, new PipingCalculationActivity((PipingCalculation)calculation)); Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationScenarioContextTreeNodeInfoTest.cs =================================================================== diff -u -r6b43c39e0f54d1054729aaed5aa6dc19149ef72a -r9643d7e5bbb27a7782b5d939b029a70a1c023138 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationScenarioContextTreeNodeInfoTest.cs (.../PipingCalculationScenarioContextTreeNodeInfoTest.cs) (revision 6b43c39e0f54d1054729aaed5aa6dc19149ef72a) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationScenarioContextTreeNodeInfoTest.cs (.../PipingCalculationScenarioContextTreeNodeInfoTest.cs) (revision 9643d7e5bbb27a7782b5d939b029a70a1c023138) @@ -173,7 +173,7 @@ TestHelper.AssertContextMenuStripContainsItem(contextMenu, 0, RingtoetsCommonFormsResources.Validate, RingtoetsCommonFormsResources.Validate_ToolTip, RingtoetsCommonFormsResources.ValidateIcon); TestHelper.AssertContextMenuStripContainsItem(contextMenu, 1, RingtoetsCommonFormsResources.Calculate, RingtoetsCommonFormsResources.Calculate_ToolTip, RingtoetsCommonFormsResources.CalculateIcon); - TestHelper.AssertContextMenuStripContainsItem(contextMenu, 2, PipingFormsResources.Clear_output, PipingFormsResources.ClearOutput_No_output_to_clear, RingtoetsCommonFormsResources.ClearIcon, false); + TestHelper.AssertContextMenuStripContainsItem(contextMenu, 2, RingtoetsCommonFormsResources.Clear_output, RingtoetsCommonFormsResources.ClearOutput_No_output_to_clear, RingtoetsCommonFormsResources.ClearIcon, false); } [Test] @@ -207,7 +207,7 @@ TestHelper.AssertContextMenuStripContainsItem(contextMenu, 0, RingtoetsCommonFormsResources.Validate, RingtoetsCommonFormsResources.Validate_ToolTip, RingtoetsCommonFormsResources.ValidateIcon); TestHelper.AssertContextMenuStripContainsItem(contextMenu, 1, RingtoetsCommonFormsResources.Calculate, RingtoetsCommonFormsResources.Calculate_ToolTip, RingtoetsCommonFormsResources.CalculateIcon); - TestHelper.AssertContextMenuStripContainsItem(contextMenu, 2, PipingFormsResources.Clear_output, PipingFormsResources.Clear_output_ToolTip, RingtoetsCommonFormsResources.ClearIcon); + TestHelper.AssertContextMenuStripContainsItem(contextMenu, 2, RingtoetsCommonFormsResources.Clear_output, RingtoetsCommonFormsResources.Clear_output_ToolTip, RingtoetsCommonFormsResources.ClearIcon); } [Test]