Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuBuilder.cs =================================================================== diff -u -r37fdad457c3ca89b8d5483bf2796b1ccb11ffdd5 -r0bb125b90287c712f303d231c1083fc79ef45a9a --- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuBuilder.cs (.../RingtoetsContextMenuBuilder.cs) (revision 37fdad457c3ca89b8d5483bf2796b1ccb11ffdd5) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuBuilder.cs (.../RingtoetsContextMenuBuilder.cs) (revision 0bb125b90287c712f303d231c1083fc79ef45a9a) @@ -166,13 +166,15 @@ /// The type of the failure mechanism context. /// The failure mechanism to perform all calculations for. /// The action that performs all calculations. + /// The func that checks if the item is enabled. /// The itself. public RingtoetsContextMenuBuilder AddPerformAllCalculationsInFailureMechanismItem( TFailureMechanismContext failureMechanismContext, - Action calculateAllAction) + Action calculateAllAction, + Func isEnabledFunc) where TFailureMechanismContext : IFailureMechanismContext { - contextMenuBuilder.AddCustomItem(RingtoetsContextMenuItemFactory.CreatePerformAllCalculationsInFailureMechanismItem(failureMechanismContext, calculateAllAction)); + contextMenuBuilder.AddCustomItem(RingtoetsContextMenuItemFactory.CreatePerformAllCalculationsInFailureMechanismItem(failureMechanismContext, calculateAllAction, isEnabledFunc)); return this; } Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuItemFactory.cs =================================================================== diff -u -r4d9751a5458228080891025ab500ae7f2ef8301f -r0bb125b90287c712f303d231c1083fc79ef45a9a --- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuItemFactory.cs (.../RingtoetsContextMenuItemFactory.cs) (revision 4d9751a5458228080891025ab500ae7f2ef8301f) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuItemFactory.cs (.../RingtoetsContextMenuItemFactory.cs) (revision 0bb125b90287c712f303d231c1083fc79ef45a9a) @@ -227,19 +227,28 @@ /// The type of the failure mechanism context. /// The failure mechanism to perform all calculations for. /// The action that performs all calculations. + /// The func that checks if the item is enabled. /// The created . public static StrictContextMenuItem CreatePerformAllCalculationsInFailureMechanismItem( TFailureMechanismContext failureMechanismContext, - Action calculateAllAction) + Action calculateAllAction, + Func isEnabledFunc) where TFailureMechanismContext : IFailureMechanismContext { var performAllItem = new StrictContextMenuItem( Resources.Calculate_all, Resources.Calculate_all_ToolTip, Resources.CalculateAllIcon, - (o, args) => calculateAllAction(failureMechanismContext) - ); + (o, args) => calculateAllAction(failureMechanismContext)) + { + Enabled = isEnabledFunc(failureMechanismContext) + }; + if (!performAllItem.Enabled) + { + return performAllItem; + } + if (!failureMechanismContext.WrappedData.Calculations.Any()) { performAllItem.Enabled = false; Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Ringtoets.Common.Forms.Test.csproj =================================================================== diff -u -re13aad684439fe0ce56760077b13a7c5b03674de -r0bb125b90287c712f303d231c1083fc79ef45a9a --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Ringtoets.Common.Forms.Test.csproj (.../Ringtoets.Common.Forms.Test.csproj) (revision e13aad684439fe0ce56760077b13a7c5b03674de) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Ringtoets.Common.Forms.Test.csproj (.../Ringtoets.Common.Forms.Test.csproj) (revision 0bb125b90287c712f303d231c1083fc79ef45a9a) @@ -102,6 +102,10 @@ {d749ee4c-ce50-4c17-bf01-9a953028c126} Core.Common.TestUtil + + {C540E627-B95B-4CC0-A1B6-A0BDF74936C7} + Ringtoets.GrassCoverErosionInwards.Forms + {d4200f43-3f72-4f42-af0a-8ced416a38ec} Ringtoets.Common.Data Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuBuilderTest.cs =================================================================== diff -u -r4d9751a5458228080891025ab500ae7f2ef8301f -r0bb125b90287c712f303d231c1083fc79ef45a9a --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuBuilderTest.cs (.../RingtoetsContextMenuBuilderTest.cs) (revision 4d9751a5458228080891025ab500ae7f2ef8301f) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuBuilderTest.cs (.../RingtoetsContextMenuBuilderTest.cs) (revision 0bb125b90287c712f303d231c1083fc79ef45a9a) @@ -340,7 +340,7 @@ var ringtoetsContextMenuBuilder = new RingtoetsContextMenuBuilder(contextMenuBuilder); // Call - var result = ringtoetsContextMenuBuilder.AddPerformAllCalculationsInFailureMechanismItem(failureMechanismContextMock, null).Build(); + var result = ringtoetsContextMenuBuilder.AddPerformAllCalculationsInFailureMechanismItem(failureMechanismContextMock, null, context => true).Build(); // Assert Assert.IsInstanceOf(result); @@ -372,7 +372,7 @@ var ringtoetsContextMenuBuilder = new RingtoetsContextMenuBuilder(contextMenuBuilder); // Call - var result = ringtoetsContextMenuBuilder.AddPerformAllCalculationsInFailureMechanismItem(failureMechanismContextMock, null).Build(); + var result = ringtoetsContextMenuBuilder.AddPerformAllCalculationsInFailureMechanismItem(failureMechanismContextMock, null, context => true).Build(); // Assert Assert.IsInstanceOf(result); @@ -551,6 +551,76 @@ } [Test] + public void AddPerformAllCalculationsInFailureMechanismItem_WhenBuildWithAllValidData_ItemAddedToContextmenuEnabled() + { + // Setup + var mocks = new MockRepository(); + var applicationFeatureCommandsMock = mocks.StrictMock(); + var exportImportHandlerMock = mocks.StrictMock(); + var viewCommandsMock = mocks.StrictMock(); + var treeViewControlMock = mocks.StrictMock(); + var failureMechanismMock = mocks.StrictMock(); + failureMechanismMock.Expect(fm => fm.Calculations).Return(new[] + { + new TestCalculation() + }); + + var failureMechanismContextMock = mocks.StrictMock>(); + failureMechanismContextMock.Expect(fmc => fmc.WrappedData).Return(failureMechanismMock); + + mocks.ReplayAll(); + + var contextMenuBuilder = new ContextMenuBuilder(applicationFeatureCommandsMock, exportImportHandlerMock, viewCommandsMock, failureMechanismContextMock, treeViewControlMock); + var ringtoetsContextMenuBuilder = new RingtoetsContextMenuBuilder(contextMenuBuilder); + + // Call + var result = ringtoetsContextMenuBuilder.AddPerformAllCalculationsInFailureMechanismItem(failureMechanismContextMock, null, context => true).Build(); + + // Assert + Assert.IsInstanceOf(result); + Assert.AreEqual(1, result.Items.Count); + + TestHelper.AssertContextMenuStripContainsItem(result, 0, + RingtoetsFormsResources.Calculate_all, + RingtoetsFormsResources.Calculate_all_ToolTip, + RingtoetsFormsResources.CalculateAllIcon); + + mocks.VerifyAll(); + } + + [Test] + public void AddPerformAllCalculationsInFailureMechanismItem_WhenBuildWithoutAllValidData_ItemAddedToContextmenuDisabled() + { + // Setup + var mocks = new MockRepository(); + var applicationFeatureCommandsMock = mocks.StrictMock(); + var exportImportHandlerMock = mocks.StrictMock(); + var viewCommandsMock = mocks.StrictMock(); + var treeViewControlMock = mocks.StrictMock(); + var failureMechanismContextMock = mocks.StrictMock>(); + + mocks.ReplayAll(); + + var contextMenuBuilder = new ContextMenuBuilder(applicationFeatureCommandsMock, exportImportHandlerMock, viewCommandsMock, failureMechanismContextMock, treeViewControlMock); + var ringtoetsContextMenuBuilder = new RingtoetsContextMenuBuilder(contextMenuBuilder); + + // Call + var result = ringtoetsContextMenuBuilder.AddPerformAllCalculationsInFailureMechanismItem(failureMechanismContextMock, null, context => false).Build(); + + // Assert + Assert.IsInstanceOf(result); + Assert.AreEqual(1, result.Items.Count); + + TestHelper.AssertContextMenuStripContainsItem(result, 0, + RingtoetsFormsResources.Calculate_all, + RingtoetsFormsResources.Calculate_all_ToolTip, + RingtoetsFormsResources.CalculateAllIcon, + false); + + mocks.VerifyAll(); + } + + [Test] public void AddRenameItem_ContextMenuBuilder_CorrectlyDecorated() { // Setup Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuItemFactoryTest.cs =================================================================== diff -u -r4d9751a5458228080891025ab500ae7f2ef8301f -r0bb125b90287c712f303d231c1083fc79ef45a9a --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuItemFactoryTest.cs (.../RingtoetsContextMenuItemFactoryTest.cs) (revision 4d9751a5458228080891025ab500ae7f2ef8301f) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuItemFactoryTest.cs (.../RingtoetsContextMenuItemFactoryTest.cs) (revision 0bb125b90287c712f303d231c1083fc79ef45a9a) @@ -31,6 +31,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Common.Forms.TreeNodeInfos; +using Ringtoets.GrassCoverErosionInwards.Forms.PresentationObjects; using BaseResources = Core.Common.Base.Properties.Resources; using RingtoetsDataResources = Ringtoets.Common.Data.Properties.Resources; using RingtoetsFormsResources = Ringtoets.Common.Forms.Properties.Resources; @@ -597,7 +598,7 @@ var failureMechanismContext = new TestFailureMechanismContext(failureMechanismMock, assessmentSectionMock); // Call - var toolStripItem = RingtoetsContextMenuItemFactory.CreatePerformAllCalculationsInFailureMechanismItem(failureMechanismContext, null); + var toolStripItem = RingtoetsContextMenuItemFactory.CreatePerformAllCalculationsInFailureMechanismItem(failureMechanismContext, null, context => true); // Assert Assert.AreEqual(RingtoetsFormsResources.Calculate_all, toolStripItem.Text); @@ -619,7 +620,7 @@ var failureMechanismContext = new TestFailureMechanismContext(failureMechanismMock, assessmentSectionMock); // Call - var toolStripItem = RingtoetsContextMenuItemFactory.CreatePerformAllCalculationsInFailureMechanismItem(failureMechanismContext, null); + var toolStripItem = RingtoetsContextMenuItemFactory.CreatePerformAllCalculationsInFailureMechanismItem(failureMechanismContext, null, context => true); // Assert Assert.AreEqual(RingtoetsFormsResources.Calculate_all, toolStripItem.Text); @@ -644,7 +645,7 @@ calculationMock }); var failureMechanismContext = new TestFailureMechanismContext(failureMechanism, assessmentSectionMock); - var toolStripItem = RingtoetsContextMenuItemFactory.CreatePerformAllCalculationsInFailureMechanismItem(failureMechanismContext, (fmContext) => counter++); + var toolStripItem = RingtoetsContextMenuItemFactory.CreatePerformAllCalculationsInFailureMechanismItem(failureMechanismContext, (fmContext) => counter++, context => true); // Call toolStripItem.PerformClick(); @@ -876,6 +877,55 @@ mocks.VerifyAll(); } + [Test] + public void CreatePerformAllCalculationsInFailureMechanismItem_IsEnabledFuncTrue_CreatesDecoratedAndEnabledItem() + { + // Setup + var mocks = new MockRepository(); + var assessmentSectionMock = mocks.StrictMock(); + var failureMechanismMock = mocks.StrictMock(); + failureMechanismMock.Expect(fm => fm.Calculations).Return(new[] { new TestCalculation() }); + + var failureMechanismContextMock = mocks.StrictMock>(failureMechanismMock, assessmentSectionMock); + + mocks.ReplayAll(); + + // Call + var toolStripItem = RingtoetsContextMenuItemFactory.CreatePerformAllCalculationsInFailureMechanismItem(failureMechanismContextMock, null, context => true); + + // Assert + Assert.AreEqual(RingtoetsFormsResources.Calculate_all, toolStripItem.Text); + Assert.AreEqual(RingtoetsFormsResources.Calculate_all_ToolTip, toolStripItem.ToolTipText); + TestHelper.AssertImagesAreEqual(RingtoetsFormsResources.CalculateAllIcon, toolStripItem.Image); + Assert.IsTrue(toolStripItem.Enabled); + + mocks.VerifyAll(); + } + + [Test] + public void CreatePerformAllCalculationsInFailureMechanismItem_IsEnabledFuncFalse_CreatesDecoratedAndEnabledItem() + { + // Setup + var mocks = new MockRepository(); + var assessmentSectionMock = mocks.StrictMock(); + var failureMechanismMock = mocks.StrictMock(); + + var failureMechanismContextMock = mocks.StrictMock>(failureMechanismMock, assessmentSectionMock); + + mocks.ReplayAll(); + + // Call + var toolStripItem = RingtoetsContextMenuItemFactory.CreatePerformAllCalculationsInFailureMechanismItem(failureMechanismContextMock, null, context => false); + + // Assert + Assert.AreEqual(RingtoetsFormsResources.Calculate_all, toolStripItem.Text); + Assert.AreEqual(RingtoetsFormsResources.Calculate_all_ToolTip, toolStripItem.ToolTipText); + TestHelper.AssertImagesAreEqual(RingtoetsFormsResources.CalculateAllIcon, toolStripItem.Image); + Assert.IsFalse(toolStripItem.Enabled); + + mocks.VerifyAll(); + } + # region Nested types private class TestFailureMechanismContext : FailureMechanismContext Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs =================================================================== diff -u -r37fdad457c3ca89b8d5483bf2796b1ccb11ffdd5 -r0bb125b90287c712f303d231c1083fc79ef45a9a --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 37fdad457c3ca89b8d5483bf2796b1ccb11ffdd5) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 0bb125b90287c712f303d231c1083fc79ef45a9a) @@ -118,11 +118,6 @@ var sectionLength = failureMechanismSection.GetSectionLength(); var inwardsInput = calculation.InputParameters; - if (calculation.Output == null) - { - calculation.Output = new GrassCoverErosionInwardsOutput(double.NaN, double.NaN, double.NaN, double.NaN, double.NaN); - } - return HydraRingActivityFactory.Create( calculation.Name, hlcdDirectory, @@ -142,7 +137,7 @@ ParseForeshore(inwardsInput), ParseBreakWater(inwardsInput) ), - output => { ParseHydraRingOutput(calculation.Output, output); }); + output => { ParseHydraRingOutput(calculation, output); }); } private static HydraRingBreakWater ParseBreakWater(GrassCoverErosionInwardsInput input) @@ -183,11 +178,11 @@ } } - private static void ParseHydraRingOutput(GrassCoverErosionInwardsOutput grassCoverErosionInwardsOutput, ExceedanceProbabilityCalculationOutput output) + private static void ParseHydraRingOutput(GrassCoverErosionInwardsCalculation calculation, ExceedanceProbabilityCalculationOutput output) { if (output != null) { - grassCoverErosionInwardsOutput.Probability = (RoundedDouble) output.Beta; + calculation.Output = new GrassCoverErosionInwardsOutput(double.NaN, double.NaN, (RoundedDouble)output.Beta, double.NaN, double.NaN); } else { @@ -266,7 +261,7 @@ .AddSeparator() .AddCustomItem(changeRelevancyItem) .AddSeparator() - .AddPerformAllCalculationsInFailureMechanismItem(grassCoverErosionInwardsFailureMechanismContext, CalculateAll) + .AddPerformAllCalculationsInFailureMechanismItem(grassCoverErosionInwardsFailureMechanismContext, CalculateAll, EnablePerformAllCalculationsInFailureMechanism) .AddClearAllCalculationOutputInFailureMechanismItem(grassCoverErosionInwardsFailureMechanismContext.WrappedData) .AddSeparator() .AddImportItem() @@ -279,6 +274,11 @@ .Build(); } + private static bool EnablePerformAllCalculationsInFailureMechanism(GrassCoverErosionInwardsFailureMechanismContext context) + { + return AllDataAvailable(context.Parent, context.WrappedData); + } + private ContextMenuStrip FailureMechanismDisabledContextMenuStrip(GrassCoverErosionInwardsFailureMechanismContext grassCoverErosionInwardsFailureMechanismContext, object parentData, TreeViewControl treeViewControl) { var builder = new RingtoetsContextMenuBuilder(Gui.Get(grassCoverErosionInwardsFailureMechanismContext, treeViewControl)); Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs =================================================================== diff -u -r266b001fc7fcb405383d2411a970efa735e3c66d -r0bb125b90287c712f303d231c1083fc79ef45a9a --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs) (revision 266b001fc7fcb405383d2411a970efa735e3c66d) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsFailureMechanismContextTreeNodeInfoTest.cs) (revision 0bb125b90287c712f303d231c1083fc79ef45a9a) @@ -21,6 +21,7 @@ using System.IO; using System.Linq; +using System.Windows.Forms; using Core.Common.Base; using Core.Common.Base.Geometry; using Core.Common.Controls.TreeView; @@ -416,6 +417,82 @@ } [Test] + public void ContextMenuStrip_NoHydraulicDatabaseAndFailureMechanismSections_ReturnContextMenuWithCalculateAllDisabled() + { + // Setup + var gui = mocksRepository.StrictMock(); + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + var assessmentSectionMock = mocksRepository.StrictMock(); + assessmentSectionMock.Expect(asm => asm.HydraulicBoundaryDatabase).Return(null); + + var nodeData = new GrassCoverErosionInwardsFailureMechanismContext(failureMechanism, assessmentSectionMock); + + var applicationFeatureCommandHandler = mocksRepository.Stub(); + var exportImportHandler = mocksRepository.Stub(); + var viewCommandsHandler = mocksRepository.StrictMock(); + var treeViewControl = mocksRepository.StrictMock(); + + var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, nodeData, treeViewControl); + gui.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + + treeViewControl.Expect(tvc => tvc.CanExpandOrCollapseForData(nodeData)).Repeat.Twice().Return(false); + viewCommandsHandler.Expect(vc => vc.CanOpenViewFor(nodeData)).Return(false); + + plugin.Gui = gui; + mocksRepository.ReplayAll(); + + // Call + ContextMenuStrip menu = info.ContextMenuStrip(nodeData, null, treeViewControl); + + // Assert + TestHelper.AssertContextMenuStripContainsItem(menu, 4, + RingtoetsFormsResources.Calculate_all, + RingtoetsFormsResources.Calculate_all_ToolTip, + RingtoetsFormsResources.CalculateIcon, + false); + mocksRepository.VerifyAll(); + } + + [Test] + public void ContextMenuStrip_HydraulicDatabaseAndFailureMechanismSectionsSet_ReturnContextMenuWithCalculateAllEnabled() + { + // Setup + var gui = mocksRepository.StrictMock(); + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + failureMechanism.AddSection(new FailureMechanismSection("test", new[] { new Point2D(0, 0) })); + failureMechanism.CalculationsGroup.Children.Add(new GrassCoverErosionInwardsCalculation(new GeneralGrassCoverErosionInwardsInput())); + + var assessmentSectionMock = mocksRepository.StrictMock(); + assessmentSectionMock.Expect(asm => asm.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase()); + + var nodeData = new GrassCoverErosionInwardsFailureMechanismContext(failureMechanism, assessmentSectionMock); + + var applicationFeatureCommandHandler = mocksRepository.Stub(); + var exportImportHandler = mocksRepository.Stub(); + var viewCommandsHandler = mocksRepository.StrictMock(); + var treeViewControl = mocksRepository.StrictMock(); + + var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, nodeData, treeViewControl); + gui.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + + treeViewControl.Expect(tvc => tvc.CanExpandOrCollapseForData(nodeData)).Repeat.Twice().Return(false); + viewCommandsHandler.Expect(vc => vc.CanOpenViewFor(nodeData)).Return(false); + + plugin.Gui = gui; + mocksRepository.ReplayAll(); + + // Call + ContextMenuStrip menu = info.ContextMenuStrip(nodeData, null, treeViewControl); + + // Assert + TestHelper.AssertContextMenuStripContainsItem(menu, 4, + RingtoetsFormsResources.Calculate_all, + RingtoetsFormsResources.Calculate_all_ToolTip, + RingtoetsFormsResources.CalculateIcon); + mocksRepository.VerifyAll(); + } + + [Test] [TestCase(true)] [TestCase(false)] public void GivenMultipleCalculationsWithOutput_WhenClearingOutputFromContextMenu_ThenCalculationsOutputClearedAndNotified(bool confirm) Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs =================================================================== diff -u -r37fdad457c3ca89b8d5483bf2796b1ccb11ffdd5 -r0bb125b90287c712f303d231c1083fc79ef45a9a --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 37fdad457c3ca89b8d5483bf2796b1ccb11ffdd5) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 0bb125b90287c712f303d231c1083fc79ef45a9a) @@ -295,7 +295,7 @@ .AddCustomItem(changeRelevancyItem) .AddSeparator() .AddCustomItem(validateAllItem) - .AddPerformAllCalculationsInFailureMechanismItem(pipingFailureMechanismContext, CalculateAll) + .AddPerformAllCalculationsInFailureMechanismItem(pipingFailureMechanismContext, CalculateAll, context => true) .AddClearAllCalculationOutputInFailureMechanismItem(pipingFailureMechanismContext.WrappedData) .AddSeparator() .AddImportItem()