Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs
===================================================================
diff -u -r6f20aae03e9fecf0d90cf930d06ed72bc4633749 -r3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356
--- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs (.../CalculationTreeNodeInfoFactory.cs) (revision 6f20aae03e9fecf0d90cf930d06ed72bc4633749)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/CalculationTreeNodeInfoFactory.cs (.../CalculationTreeNodeInfoFactory.cs) (revision 3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356)
@@ -207,6 +207,23 @@
builder.AddCustomItem(performAllItem);
}
+ ///
+ /// This method adds a context menu item for performing a calculation.
+ ///
+ /// The builder to add the context menu item to.
+ /// The calculation involved.
+ /// The action that performs the calculation.
+ public static void AddPerformCalculationItem(IContextMenuBuilder builder, ICalculation calculation, Action calculate)
+ {
+ var calculateItem = new StrictContextMenuItem(
+ Resources.Calculate,
+ Resources.Calculate_ToolTip,
+ Resources.CalculateIcon,
+ (o, args) => { calculate(calculation); });
+
+ builder.AddCustomItem(calculateItem);
+ }
+
# region Helper methods for CreateCalculationGroupContextTreeNodeInfo
private static bool IsNestedGroup(object parentData)
Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs
===================================================================
diff -u -r97517f6a66f66d512315618a08fa21a9999624a1 -r3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356
--- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs (.../CalculationTreeNodeInfoFactoryTest.cs) (revision 97517f6a66f66d512315618a08fa21a9999624a1)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/CalculationTreeNodeInfoFactoryTest.cs (.../CalculationTreeNodeInfoFactoryTest.cs) (revision 3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356)
@@ -428,6 +428,60 @@
Assert.AreEqual(1, counter);
}
+ [Test]
+ public void AddPerformCalculationItem_Always_CreatesPerformItem()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var applicationFeatureCommandHandler = mocks.Stub();
+ var exportImportHandler = mocks.Stub();
+ var viewCommandsHandler = mocks.StrictMock();
+ var treeViewControl = mocks.StrictMock();
+ var calculation = mocks.StrictMock();
+
+ mocks.ReplayAll();
+
+ var menubuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculation, treeViewControl);
+
+ // Call
+ CalculationTreeNodeInfoFactory.AddPerformCalculationItem(menubuilder, calculation, null);
+
+ // Assert
+ TestHelper.AssertContextMenuStripContainsItem(menubuilder.Build(), 0,
+ RingtoetsFormsResources.Calculate,
+ RingtoetsFormsResources.Calculate_ToolTip,
+ RingtoetsFormsResources.CalculateIcon);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void AddPerformCalculationItem_PerformClickOnCreatedItem_PerformCalculationMethod()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var applicationFeatureCommandHandler = mocks.Stub();
+ var exportImportHandler = mocks.Stub();
+ var viewCommandsHandler = mocks.StrictMock();
+ var treeViewControl = mocks.StrictMock();
+ var calculation = mocks.StrictMock();
+
+ mocks.ReplayAll();
+
+ var counter = 0;
+
+ var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, calculation, treeViewControl);
+
+ CalculationTreeNodeInfoFactory.AddPerformCalculationItem(menuBuilder, calculation, context => counter++);
+ var contextMenuItem = menuBuilder.Build().Items[0];
+
+ // Call
+ contextMenuItem.PerformClick();
+
+ // Assert
+ Assert.AreEqual(1, counter);
+ }
+
# region CreateCalculationGroupContextTreeNodeInfo
[Test]
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs
===================================================================
diff -u -r6f20aae03e9fecf0d90cf930d06ed72bc4633749 -r3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 6f20aae03e9fecf0d90cf930d06ed72bc4633749)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 3bd79dc878fa0b81b1ebb5c35dd5612f2bfed356)
@@ -78,7 +78,7 @@
yield return CalculationTreeNodeInfoFactory.CreateCalculationContextTreeNodeInfo(
GrassCoverErosionInwardsFormsResources.CalculationIcon,
CalculationContextChildNodeObjects,
- null,
+ CalculationContextContextmenuStrip,
null);
yield return new TreeNodeInfo
@@ -106,25 +106,6 @@
};
}
- private static object[] CalculationContextChildNodeObjects(GrassCoverErosionInwardsCalculationContext calculationContext)
- {
- var childNodes = new List