Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs
===================================================================
diff -u -rd99f9c6b8fcf5bf289607f71958bcff47ebf9475 -rbf926725b3c2994fb1f2d7c8b4294ab66691b3d2
--- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision d99f9c6b8fcf5bf289607f71958bcff47ebf9475)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision bf926725b3c2994fb1f2d7c8b4294ab66691b3d2)
@@ -2430,6 +2430,35 @@
}
///
+ /// Looks up a localized string similar to Er moet een kunstwerk geselecteerd zijn..
+ ///
+ public static string StructuresPlugin_CreateUpdateStructureItem_Update_calculation_no_Structure_ToolTip {
+ get {
+ return ResourceManager.GetString("StructuresPlugin_CreateUpdateStructureItem_Update_calculation_no_Structure_ToolTi" +
+ "p", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Berekening bijwerken met het kunstwerk..
+ ///
+ public static string StructuresPlugin_CreateUpdateStructureItem_Update_calculation_with_Structure_data_ToolTip {
+ get {
+ return ResourceManager.GetString("StructuresPlugin_CreateUpdateStructureItem_Update_calculation_with_Structure_data" +
+ "_ToolTip", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to &Bijwerken kunstwerk.
+ ///
+ public static string StructuresPlugin_CreateUpdateStructureItem_Update_Structure_data {
+ get {
+ return ResourceManager.GetString("StructuresPlugin_CreateUpdateStructureItem_Update_Structure_data", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized string similar to Genereer berekeningen op basis van geselecteerde kunstwerken..
///
public static string StructuresPlugin_Generate_calculations_for_selected_structures {
Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx
===================================================================
diff -u -rd99f9c6b8fcf5bf289607f71958bcff47ebf9475 -rbf926725b3c2994fb1f2d7c8b4294ab66691b3d2
--- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision d99f9c6b8fcf5bf289607f71958bcff47ebf9475)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision bf926725b3c2994fb1f2d7c8b4294ab66691b3d2)
@@ -950,4 +950,13 @@
ID van het kunstwerk.
+
+ Er moet een kunstwerk geselecteerd zijn.
+
+
+ Berekening bijwerken met het kunstwerk.
+
+
+ &Bijwerken kunstwerk
+
\ No newline at end of file
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs
===================================================================
diff -u -raeb6e1a439617630e7613b9ed5af152c345fa2c6 -rbf926725b3c2994fb1f2d7c8b4294ab66691b3d2
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs) (revision aeb6e1a439617630e7613b9ed5af152c345fa2c6)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs) (revision bf926725b3c2994fb1f2d7c8b4294ab66691b3d2)
@@ -57,7 +57,6 @@
public class GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest : NUnitFormTest
{
private const int contextMenuUpdateDikeProfileIndex = 3;
-
private const int contextMenuValidateIndex = 5;
private const int contextMenuCalculateIndex = 6;
private const int contextMenuClearIndex = 8;
Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Plugin/HeightStructuresPlugin.cs
===================================================================
diff -u -ra7f920661887773056c051edc7872d27f724c840 -rbf926725b3c2994fb1f2d7c8b4294ab66691b3d2
--- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Plugin/HeightStructuresPlugin.cs (.../HeightStructuresPlugin.cs) (revision a7f920661887773056c051edc7872d27f724c840)
+++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Plugin/HeightStructuresPlugin.cs (.../HeightStructuresPlugin.cs) (revision bf926725b3c2994fb1f2d7c8b4294ab66691b3d2)
@@ -706,6 +706,7 @@
return builder.AddExportItem()
.AddSeparator()
.AddRenameItem()
+ .AddCustomItem(CreateUpdateStructureItem(context))
.AddSeparator()
.AddValidateCalculationItem(
context,
@@ -758,6 +759,30 @@
}
}
+ private StrictContextMenuItem CreateUpdateStructureItem(HeightStructuresCalculationContext context)
+ {
+ HeightStructuresInput inputParameters = context.WrappedData.InputParameters;
+ bool hasStructure = inputParameters.Structure != null;
+
+ string toolTipMessage = hasStructure
+ ? RingtoetsCommonFormsResources.StructuresPlugin_CreateUpdateStructureItem_Update_calculation_with_Structure_data_ToolTip
+ : RingtoetsCommonFormsResources.StructuresPlugin_CreateUpdateStructureItem_Update_calculation_no_Structure_ToolTip;
+
+ return new StrictContextMenuItem(
+ RingtoetsCommonFormsResources.StructuresPlugin_CreateUpdateStructureItem_Update_Structure_data,
+ toolTipMessage,
+ RingtoetsCommonFormsResources.UpdateItemIcon,
+ (o, args) => UpdateStructureDependentDataOfCalculation(context.WrappedData))
+ {
+ Enabled = hasStructure
+ };
+ }
+
+ private void UpdateStructureDependentDataOfCalculation(StructuresCalculation calculation)
+ {
+ // TODO: Implement
+ }
+
#endregion
#endregion
Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Plugin.Test/TreeNodeInfos/HeightStructuresCalculationContextTreeNodeInfoTest.cs
===================================================================
diff -u -r4bf59bb3506b840b284efe0c0f4431b7876e0e5b -rbf926725b3c2994fb1f2d7c8b4294ab66691b3d2
--- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Plugin.Test/TreeNodeInfos/HeightStructuresCalculationContextTreeNodeInfoTest.cs (.../HeightStructuresCalculationContextTreeNodeInfoTest.cs) (revision 4bf59bb3506b840b284efe0c0f4431b7876e0e5b)
+++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Plugin.Test/TreeNodeInfos/HeightStructuresCalculationContextTreeNodeInfoTest.cs (.../HeightStructuresCalculationContextTreeNodeInfoTest.cs) (revision bf926725b3c2994fb1f2d7c8b4294ab66691b3d2)
@@ -55,9 +55,10 @@
[TestFixture]
public class HeightStructuresCalculationContextTreeNodeInfoTest : NUnitFormTest
{
- private const int contextMenuValidateIndex = 4;
- private const int contextMenuCalculateIndex = 5;
- private const int contextMenuClearIndex = 7;
+ private const int contextMenuUpdateStructureIndex = 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;
@@ -185,6 +186,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);
@@ -244,7 +246,7 @@
using (ContextMenuStrip menu = info.ContextMenuStrip(nodeData, assessmentSection, treeViewControl))
{
// Assert
- Assert.AreEqual(14, menu.Items.Count);
+ Assert.AreEqual(15, menu.Items.Count);
TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuValidateIndex,
"&Valideren",
@@ -266,6 +268,77 @@
}
[Test]
+ public void ContextMenu_CalculationWithoutStructure_ContextMenuItemUpdateStructureDisabled()
+ {
+ // Setup
+ var assessmentSection = mocks.Stub();
+
+ var calculation = new StructuresCalculation();
+ var failureMechanism = new TestHeightStructuresFailureMechanism();
+ var nodeData = new HeightStructuresCalculationContext(calculation, failureMechanism, assessmentSection);
+ var menuBuilder = new CustomItemsOnlyContextMenuBuilder();
+
+ using (var treeViewControl = new TreeViewControl())
+ {
+ var gui = mocks.Stub();
+ gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder);
+ mocks.ReplayAll();
+
+ plugin.Gui = gui;
+
+ // Call
+ using (ContextMenuStrip menu = info.ContextMenuStrip(nodeData, assessmentSection, treeViewControl))
+ {
+ // Assert
+ TestHelper.AssertContextMenuStripContainsItem(menu,
+ contextMenuUpdateStructureIndex,
+ "&Bijwerken kunstwerk",
+ "Er moet een kunstwerk geselecteerd zijn.",
+ RingtoetsCommonFormsResources.UpdateItemIcon,
+ false);
+ }
+ }
+ }
+
+ [Test]
+ public void ContextMenu_CalculationWithStructure_ContextMenuItemUpdateStructureEnabled()
+ {
+ // Setup
+ var assessmentSection = mocks.Stub();
+
+ var calculation = new StructuresCalculation
+ {
+ InputParameters =
+ {
+ Structure = new TestHeightStructure()
+ }
+ };
+ var failureMechanism = new TestHeightStructuresFailureMechanism();
+ var nodeData = new HeightStructuresCalculationContext(calculation, failureMechanism, assessmentSection);
+ var menuBuilder = new CustomItemsOnlyContextMenuBuilder();
+
+ using (var treeViewControl = new TreeViewControl())
+ {
+ var gui = mocks.Stub();
+ gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder);
+ mocks.ReplayAll();
+
+ plugin.Gui = gui;
+
+ // Call
+ using (ContextMenuStrip menu = info.ContextMenuStrip(nodeData, assessmentSection, treeViewControl))
+ {
+ // Assert
+ TestHelper.AssertContextMenuStripContainsItem(menu,
+ contextMenuUpdateStructureIndex,
+ "&Bijwerken kunstwerk",
+ "Berekening bijwerken met het kunstwerk.",
+ RingtoetsCommonFormsResources.UpdateItemIcon);
+ }
+ }
+ }
+
+ [Test]
public void ContextMenuStrip_NoHydraulicBoundaryDatabase_ContextMenuItemPerformCalculationDisabledAndTooltipSet()
{
// Setup