Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs
===================================================================
diff -u -r79279d5d69482de69ef6b4be98ad53e666ab06e2 -rba310454172ed29499474b2f8b013fa0f0c523b8
--- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs (.../CalculationTreeNodeInfoFactory.cs) (revision 79279d5d69482de69ef6b4be98ad53e666ab06e2)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs (.../CalculationTreeNodeInfoFactory.cs) (revision ba310454172ed29499474b2f8b013fa0f0c523b8)
@@ -223,13 +223,16 @@
///
/// The builder to add the context menu item to.
/// The calculation group involved.
+ /// The calculation group context belonging to the calculation group.
/// The action that performs all calculations.
- public static void AddPerformAllCalculationsInGroupItem(IContextMenuBuilder builder, CalculationGroup calculationGroup, Action calculateAll)
+ public static void AddPerformAllCalculationsInGroupItem
+ (IContextMenuBuilder builder, CalculationGroup calculationGroup, TCalculationGroupContext context, Action calculateAll)
+ where TCalculationGroupContext : ICalculationContext
{
var performAllItem = new StrictContextMenuItem(
Resources.Calculate_all,
Resources.CalculationGroup_CalculateAll_ToolTip,
- Resources.CalculateAllIcon, (o, args) => { calculateAll(calculationGroup); });
+ Resources.CalculateAllIcon, (o, args) => { calculateAll(calculationGroup, context); });
if (!calculationGroup.GetCalculations().Any())
{
@@ -245,12 +248,10 @@
///
/// The builder to add the context menu item to.
/// The calculation involved.
+ /// The calculation context belonging to the calculation.
/// The action that performs the calculation.
public static void AddPerformCalculationItem(
- IContextMenuBuilder builder,
- TCalculation calculation,
- TCalculationContext context,
- Action calculate)
+ IContextMenuBuilder builder, TCalculation calculation, TCalculationContext context, Action calculate)
where TCalculation : ICalculation where TCalculationContext : ICalculationContext
{
var calculateItem = new StrictContextMenuItem(
Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs
===================================================================
diff -u -r79279d5d69482de69ef6b4be98ad53e666ab06e2 -rba310454172ed29499474b2f8b013fa0f0c523b8
--- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs (.../CalculationTreeNodeInfoFactoryTest.cs) (revision 79279d5d69482de69ef6b4be98ad53e666ab06e2)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs (.../CalculationTreeNodeInfoFactoryTest.cs) (revision ba310454172ed29499474b2f8b013fa0f0c523b8)
@@ -359,7 +359,7 @@
var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationGroup, treeViewControl);
// Call
- CalculationTreeNodeInfoFactory.AddPerformAllCalculationsInGroupItem(menuBuilder, calculationGroup, null);
+ CalculationTreeNodeInfoFactory.AddPerformAllCalculationsInGroupItem(menuBuilder, calculationGroup, null, null);
// Assert
TestHelper.AssertContextMenuStripContainsItem(menuBuilder.Build(), 0,
@@ -384,7 +384,7 @@
var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationGroup, treeViewControl);
// Call
- CalculationTreeNodeInfoFactory.AddPerformAllCalculationsInGroupItem(menuBuilder, calculationGroup, null);
+ CalculationTreeNodeInfoFactory.AddPerformAllCalculationsInGroupItem(menuBuilder, calculationGroup, null, null);
// Assert
TestHelper.AssertContextMenuStripContainsItem(menuBuilder.Build(), 0,
@@ -404,6 +404,7 @@
var viewCommandsHandler = mocks.StrictMock();
var treeViewControl = mocks.StrictMock();
var calculation = mocks.StrictMock();
+ var failureMechanism = mocks.StrictMock();
mocks.ReplayAll();
@@ -416,9 +417,11 @@
}
};
+ var calculationGroupContext = new TestCalculationGroupContext(calculationGroup, failureMechanism);
+
var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculationGroup, treeViewControl);
- CalculationTreeNodeInfoFactory.AddPerformAllCalculationsInGroupItem(menuBuilder, calculationGroup, context => counter++);
+ CalculationTreeNodeInfoFactory.AddPerformAllCalculationsInGroupItem(menuBuilder, calculationGroup, calculationGroupContext, (group, context) => counter++);
var contextMenuItem = menuBuilder.Build().Items[0];
// Call
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs
===================================================================
diff -u -r79279d5d69482de69ef6b4be98ad53e666ab06e2 -rba310454172ed29499474b2f8b013fa0f0c523b8
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 79279d5d69482de69ef6b4be98ad53e666ab06e2)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision ba310454172ed29499474b2f8b013fa0f0c523b8)
@@ -329,7 +329,7 @@
CalculationTreeNodeInfoFactory.AddCreateCalculationItem(builder, nodeData, AddCalculation);
builder.AddSeparator();
- CalculationTreeNodeInfoFactory.AddPerformAllCalculationsInGroupItem(builder, group, context => { }); // TODO: Actualy connect the calculation
+ CalculationTreeNodeInfoFactory.AddPerformAllCalculationsInGroupItem(builder, group, nodeData, CalculateAll);
CalculationTreeNodeInfoFactory.AddClearAllCalculationOutputInGroupItem(builder, group);
builder.AddSeparator();
@@ -359,6 +359,18 @@
parentGroupContext.NotifyObservers();
}
+ private void CalculateAll(CalculationGroup group, GrassCoverErosionInwardsCalculationGroupContext context)
+ {
+ ActivityProgressDialogRunner.Run(Gui.MainWindow, group.GetCalculations()
+ .OfType()
+ .Select(calc =>
+ CreateHydraRingTargetProbabilityCalculationActivity(
+ context.FailureMechanism.Sections.First(), // TODO: Pass dike section based on cross section of calculation with reference line
+ calc.InputParameters.HydraulicBoundaryLocation,
+ context.AssessmentSection.HydraulicBoundaryDatabase.FilePath,
+ calc)));
+ }
+
#endregion
#region CalculationContext TreeNodeInfo
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs
===================================================================
diff -u -r79279d5d69482de69ef6b4be98ad53e666ab06e2 -rba310454172ed29499474b2f8b013fa0f0c523b8
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs) (revision 79279d5d69482de69ef6b4be98ad53e666ab06e2)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs) (revision ba310454172ed29499474b2f8b013fa0f0c523b8)
@@ -273,5 +273,81 @@
Assert.AreEqual("Weet u zeker dat u de uitvoer van deze berekening wilt wissen?", messageBoxText);
mocks.VerifyAll();
}
+
+// [Test]
+// public void GivenCalculation_WhenCalculatingFromContextMenu_ThenCalculationNotifiesObservers()
+// {
+// // Given
+// var gui = mocks.DynamicMock();
+// var mainWindow = mocks.DynamicMock();
+// var observer = mocks.StrictMock();
+// var treeViewControlMock = mocks.StrictMock();
+// var calculateContextMenuItemIndex = 0;
+//
+// var section = new FailureMechanismSection("A", new[]
+// {
+// new Point2D(1, 2),
+// new Point2D(3, 4)
+// });
+//
+// var failureMechanism = mocks.StrictMock();
+// failureMechanism.AddSection(section);
+// var hydraulicBoundaryLocation1 = new HydraulicBoundaryLocation(100001, "", 1.1, 2.2);
+// var hydraulicBoundaryLocation2 = new HydraulicBoundaryLocation(100002, "", 3.3, 4.4)
+// {
+// DesignWaterLevel = 4.2
+// };
+//
+// var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase
+// {
+// Locations =
+// {
+// hydraulicBoundaryLocation1,
+// hydraulicBoundaryLocation2
+// },
+// FilePath = "D:/nonExistingDirectory/nonExistingFile",
+// Version = "random"
+// };
+//
+// var assessmentSectionMock = mocks.StrictMock();
+// assessmentSectionMock.Expect(asm => asm.HydraulicBoundaryDatabase).Return(hydraulicBoundaryDatabase);
+// var calculation = new GrassCoverErosionInwardsCalculation(new GeneralGrassCoverErosionInwardsInput());
+//
+// var calculationContext = new GrassCoverErosionInwardsCalculationContext(calculation, failureMechanism, assessmentSectionMock);
+//
+// gui.Expect(g => g.Get(calculationContext, treeViewControlMock)).Return(new CustomItemsOnlyContextMenuBuilder());
+// gui.Expect(g => g.MainWindow).Return(mainWindow);
+//
+// observer.Expect(o => o.UpdateObserver());
+//
+// mocks.ReplayAll();
+//
+// plugin.Gui = gui;
+//
+// calculation.Attach(observer);
+//
+// var contextMenuAdapter = info.ContextMenuStrip(calculationContext, null, treeViewControlMock);
+//
+// DialogBoxHandler = (name, wnd) =>
+// {
+// // Don't care about dialogs in this test.
+// };
+//
+// // When
+// Action action = () => { contextMenuAdapter.Items[calculateContextMenuItemIndex].PerformClick(); };
+//
+// // Then
+// TestHelper.AssertLogMessages(action, messages =>
+// {
+// var msgs = messages.GetEnumerator();
+// Assert.IsTrue(msgs.MoveNext());
+// StringAssert.StartsWith("Berekening van 'Nieuwe berekening' gestart om: ", msgs.Current);
+// Assert.IsTrue(msgs.MoveNext());
+// StringAssert.StartsWith("Berekening van 'Nieuwe berekening' beƫindigd om: ", msgs.Current);
+// });
+// Assert.IsNotNull(calculation.Output);
+//
+// mocks.VerifyAll();
+// }
}
}
\ No newline at end of file
Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs
===================================================================
diff -u -rf0dba4bd6e5de44972b57263c4934e72323ab3a8 -rba310454172ed29499474b2f8b013fa0f0c523b8
--- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision f0dba4bd6e5de44972b57263c4934e72323ab3a8)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision ba310454172ed29499474b2f8b013fa0f0c523b8)
@@ -580,7 +580,7 @@
builder
.AddCustomItem(validateAllItem);
- CalculationTreeNodeInfoFactory.AddPerformAllCalculationsInGroupItem(builder, group, CalculateAll);
+ CalculationTreeNodeInfoFactory.AddPerformAllCalculationsInGroupItem(builder, group, nodeData, CalculateAll);
CalculationTreeNodeInfoFactory.AddClearAllCalculationOutputInGroupItem(builder, group);
builder.AddSeparator();
@@ -669,7 +669,7 @@
return menuItem;
}
- private void CalculateAll(CalculationGroup group)
+ private void CalculateAll(CalculationGroup group, PipingCalculationGroupContext context)
{
ActivityProgressDialogRunner.Run(Gui.MainWindow, group.GetCalculations().OfType().Select(pc => new PipingCalculationActivity(pc)));
}