Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs =================================================================== diff -u -ra6e620bbe142b553dbde05a7b450050be599de02 -r89daa9384828da5716defeb6737713b9d78d4e56 --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision a6e620bbe142b553dbde05a7b450050be599de02) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision 89daa9384828da5716defeb6737713b9d78d4e56) @@ -1013,35 +1013,32 @@ private StrictContextMenuItem CreateUpdateEntryAndExitPointItem(PipingCalculationGroupContext nodeData) { - IEnumerable calculations = nodeData.WrappedData.GetCalculations().OfType(); + var contextMenuEnabled = true; + string toolTipMessage = Resources.PipingPlugin_CreateUpdateEntryAndExitPointItem_Update_all_calculations_with_surface_line_ToolTip; + IList calculationsToUpdate = nodeData.WrappedData.GetCalculations() + .OfType() + .Where(c => c.InputParameters.SurfaceLine != null && !c.InputParameters.IsEntryAndExitPointInputSynchronized) + .ToList(); - var isItemEnabled = true; - string toolTipText = Resources.PipingPlugin_CreateUpdateEntryAndExitPointItem_Update_all_calculations_with_characteristic_points_ToolTip; - if (!calculations.Any()) + if (!calculationsToUpdate.Any()) { - isItemEnabled = false; - toolTipText = RingtoetsCommonFormsResources.CreateUpdateContextMenuItem_No_calculations_to_update_ToolTip; + contextMenuEnabled = false; + toolTipMessage = RingtoetsCommonFormsResources.CreateUpdateContextMenuItem_No_calculations_to_update_ToolTip; } - else if (calculations.All(calc => calc.InputParameters.SurfaceLine == null)) - { - isItemEnabled = false; - toolTipText = Resources.PipingPlugin_CreateUpdateEntryAndExitPointItem_No_calculations_with_surfaceline_Tooltip; - } return new StrictContextMenuItem( Resources.PipingPlugin_CreateUpdateEntryAndExitPointItem_Update_all_entry_and_exit_points, - toolTipText, + toolTipMessage, RingtoetsCommonFormsResources.UpdateItemIcon, - (sender, args) => UpdateAllEntryAndExitPointsOfAllCalculations(calculations)) + (sender, args) => UpdateEntryAndExitPointsOfAllCalculations(calculationsToUpdate)) { - Enabled = isItemEnabled + Enabled = contextMenuEnabled }; } - private void UpdateAllEntryAndExitPointsOfAllCalculations(IEnumerable calculations) + private void UpdateEntryAndExitPointsOfAllCalculations(IList calculations) { - string message = - Resources.PipingPlugin_VerifyEntryAndExitPointUpdates_Confirm_calculation_outputs_cleared_when_updating_entry_and_exit_points_definitions; + string message = RingtoetsCommonFormsResources.VerifyUpdate_Confirm_calculation_outputs_cleared_when_updating; if (VerifyEntryAndExitPointUpdates(calculations, message)) { foreach (PipingCalculationScenario calculation in calculations) Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/Properties/Resources.Designer.cs =================================================================== diff -u -r50597fbeb76b752bc250107dfa91b696bb6c4995 -r89daa9384828da5716defeb6737713b9d78d4e56 --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 50597fbeb76b752bc250107dfa91b696bb6c4995) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 89daa9384828da5716defeb6737713b9d78d4e56) @@ -82,28 +82,18 @@ } /// - /// Looks up a localized string similar to Er zijn geen berekeningen met een profielschematisatie.. + /// Looks up a localized string similar to Alle berekeningen met een profielschematisatie bijwerken.. /// - public static string PipingPlugin_CreateUpdateEntryAndExitPointItem_No_calculations_with_surfaceline_Tooltip { + public static string PipingPlugin_CreateUpdateEntryAndExitPointItem_Update_all_calculations_with_surface_line_ToolTip { get { - return ResourceManager.GetString("PipingPlugin_CreateUpdateEntryAndExitPointItem_No_calculations_with_surfaceline_T" + - "ooltip", resourceCulture); + return ResourceManager.GetString("PipingPlugin_CreateUpdateEntryAndExitPointItem_Update_all_calculations_with_surfa" + + "ce_line_ToolTip", resourceCulture); } } /// - /// Looks up a localized string similar to Alle berekeningen bijwerken met de karakteristieke punten.. + /// Looks up a localized string similar to &Bijwerken intrede- en uittredepunten. /// - public static string PipingPlugin_CreateUpdateEntryAndExitPointItem_Update_all_calculations_with_characteristic_points_ToolTip { - get { - return ResourceManager.GetString("PipingPlugin_CreateUpdateEntryAndExitPointItem_Update_all_calculations_with_chara" + - "cteristic_points_ToolTip", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to &Bijwerken alle intrede- en uittredepunten. - /// public static string PipingPlugin_CreateUpdateEntryAndExitPointItem_Update_all_entry_and_exit_points { get { return ResourceManager.GetString("PipingPlugin_CreateUpdateEntryAndExitPointItem_Update_all_entry_and_exit_points", resourceCulture); Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/Properties/Resources.resx =================================================================== diff -u -r50597fbeb76b752bc250107dfa91b696bb6c4995 -r89daa9384828da5716defeb6737713b9d78d4e56 --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/Properties/Resources.resx (.../Resources.resx) (revision 50597fbeb76b752bc250107dfa91b696bb6c4995) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/Properties/Resources.resx (.../Resources.resx) (revision 89daa9384828da5716defeb6737713b9d78d4e56) @@ -211,15 +211,12 @@ Er moet een profielschematisatie geselecteerd zijn. - - Alle berekeningen bijwerken met de karakteristieke punten. + + Alle berekeningen met een profielschematisatie bijwerken. - &Bijwerken alle intrede- en uittredepunten + &Bijwerken intrede- en uittredepunten - - Er zijn geen berekeningen met een profielschematisatie. - Wanneer de intrede- of uittredepunten wijzigen als gevolg van het bijwerken, zullen de resultaten van berekeningen die deze profielschematisaties gebruiken, worden verwijderd. Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs =================================================================== diff -u -ra6e620bbe142b553dbde05a7b450050be599de02 -r89daa9384828da5716defeb6737713b9d78d4e56 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs (.../PipingInputTest.cs) (revision a6e620bbe142b553dbde05a7b450050be599de02) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs (.../PipingInputTest.cs) (revision 89daa9384828da5716defeb6737713b9d78d4e56) @@ -566,7 +566,7 @@ yield return new TestCaseData(new Point3D(3, 0, 0), new Point3D(3, 0, 0)) .SetName("DifferentDikeToeAtRiver"); yield return new TestCaseData(new Point3D(2, 0, 3), new Point3D(4, 0, 2)) - .SetName("DifferentDikeToeAtPolder"); ; + .SetName("DifferentDikeToeAtPolder"); } } Index: Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -r81fa8a9bf3bd503cbd280e88b8f6037a840cff12 -r89daa9384828da5716defeb6737713b9d78d4e56 --- Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision 81fa8a9bf3bd503cbd280e88b8f6037a840cff12) +++ Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision 89daa9384828da5716defeb6737713b9d78d4e56) @@ -248,12 +248,10 @@ "&Importeren...", "Importeer de gegevens vanuit een bestand.", CoreCommonGuiResources.ImportIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuExportCalculationGroupIndexNestedGroup, "&Exporteren...", "Exporteer de gegevens naar een bestand.", CoreCommonGuiResources.ExportIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationGroupIndexNestedGroup, "&Map toevoegen", "Voeg een nieuwe berekeningsmap toe aan deze berekeningsmap.", @@ -262,14 +260,13 @@ "Berekening &toevoegen", "Voeg een nieuwe berekening toe aan deze berekeningsmap.", RingtoetsCommonFormsResources.CalculationIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuRenameCalculationGroupIndexNestedGroup, "&Hernoemen", "Wijzig de naam van dit element.", CoreCommonGuiResources.RenameIcon); TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuUpdateEntryAndExitPointsAllIndexNestedGroup, - "&Bijwerken alle intrede- en uittredepunten", - "Er zijn geen berekeningen met een profielschematisatie.", + "&Bijwerken intrede- en uittredepunten", + "Er zijn geen berekeningen om bij te werken.", RingtoetsCommonFormsResources.UpdateItemIcon, false); TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuValidateAllIndexNestedGroup, @@ -284,7 +281,6 @@ "&Wis alle uitvoer...", "Wis de uitvoer van alle berekeningen binnen deze berekeningsmap.", RingtoetsCommonFormsResources.ClearIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuDeleteCalculationGroupIndexNestedGroup, "Verwij&deren...", "Verwijder dit element uit de boom.", @@ -391,8 +387,8 @@ RingtoetsCommonFormsResources.CalculationIcon); TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuUpdateEntryAndExitPointsAllIndexRootGroup, - "&Bijwerken alle intrede- en uittredepunten", - "Er zijn geen berekeningen met een profielschematisatie.", + "&Bijwerken intrede- en uittredepunten", + "Er zijn geen berekeningen om bij te werken.", RingtoetsCommonFormsResources.UpdateItemIcon, false); TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuValidateAllIndexRootGroup, @@ -689,7 +685,7 @@ // Assert TestHelper.AssertContextMenuStripContainsItem(contextMenu, contextMenuUpdateEntryAndExitPointsAllIndexRootGroup, - "&Bijwerken alle intrede- en uittredepunten", + "&Bijwerken intrede- en uittredepunten", "Er zijn geen berekeningen om bij te werken.", RingtoetsCommonFormsResources.UpdateItemIcon, false); @@ -731,16 +727,16 @@ // Assert TestHelper.AssertContextMenuStripContainsItem(contextMenu, contextMenuUpdateEntryAndExitPointsAllIndexRootGroup, - "&Bijwerken alle intrede- en uittredepunten", - "Er zijn geen berekeningen met een profielschematisatie.", + "&Bijwerken intrede- en uittredepunten", + "Er zijn geen berekeningen om bij te werken.", RingtoetsCommonFormsResources.UpdateItemIcon, false); } } } [Test] - public void ContextMenuStrip_CalculationsWithSurfaceLine_ContextMenuItemUpdateEntryAndExitPointEnabled() + public void ContextMenuStrip_CalculationsWithSurfaceLineAndInputInSync_ContextMenuItemUpdateEntryAndExitPointDisabled() { // Setup using (var treeViewControl = new TreeViewControl()) @@ -773,8 +769,53 @@ // Assert TestHelper.AssertContextMenuStripContainsItem(contextMenu, contextMenuUpdateEntryAndExitPointsAllIndexRootGroup, - "&Bijwerken alle intrede- en uittredepunten", - "Alle berekeningen bijwerken met de karakteristieke punten.", + "&Bijwerken intrede- en uittredepunten", + "Er zijn geen berekeningen om bij te werken.", + RingtoetsCommonFormsResources.UpdateItemIcon, + false); + } + } + } + + [Test] + public void ContextMenuStrip_CalculationsWithSurfaceLineAndInputOutOfSync_ContextMenuItemUpdateEntryAndExitPointEnabled() + { + // Setup + using (var treeViewControl = new TreeViewControl()) + { + var pipingFailureMechanism = new TestPipingFailureMechanism(); + var assessmentSection = mocks.Stub(); + PipingCalculationScenario pipingCalculationScenario = PipingCalculationScenarioFactory.CreatePipingCalculationScenarioWithValidInput(); + var group = new CalculationGroup + { + Children = + { + pipingCalculationScenario + } + }; + + var nodeData = new PipingCalculationGroupContext(group, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSection); + + var gui = mocks.Stub(); + gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); + mocks.ReplayAll(); + + plugin.Gui = gui; + + ChangeSurfaceLine(pipingCalculationScenario.InputParameters.SurfaceLine); + + // Call + using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl)) + { + // Assert + TestHelper.AssertContextMenuStripContainsItem(contextMenu, + contextMenuUpdateEntryAndExitPointsAllIndexRootGroup, + "&Bijwerken intrede- en uittredepunten", + "Alle berekeningen met een profielschematisatie bijwerken.", RingtoetsCommonFormsResources.UpdateItemIcon); } } @@ -950,10 +991,10 @@ { string[] msgs = messages.ToArray(); Assert.AreEqual(9, msgs.Length); - StringAssert.StartsWith(string.Format("Validatie van '{0}' gestart om: ", validCalculation.Name), msgs[0]); - StringAssert.StartsWith(string.Format("Validatie van '{0}' beëindigd om: ", validCalculation.Name), msgs[1]); - StringAssert.StartsWith(string.Format("Validatie van '{0}' gestart om: ", invalidCalculation.Name), msgs[2]); - StringAssert.StartsWith(string.Format("Validatie van '{0}' beëindigd om: ", invalidCalculation.Name), msgs[8]); + StringAssert.StartsWith($"Validatie van '{validCalculation.Name}' gestart om: ", msgs[0]); + StringAssert.StartsWith($"Validatie van '{validCalculation.Name}' beëindigd om: ", msgs[1]); + StringAssert.StartsWith($"Validatie van '{invalidCalculation.Name}' gestart om: ", msgs[2]); + StringAssert.StartsWith($"Validatie van '{invalidCalculation.Name}' beëindigd om: ", msgs[8]); }); } } @@ -1586,7 +1627,7 @@ using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { // When - UpdateSurfaceLine(surfaceLine); + ChangeSurfaceLine(surfaceLine); contextMenu.Items[contextMenuUpdateEntryAndExitPointsAllIndexNestedGroup].PerformClick(); @@ -1604,8 +1645,7 @@ Assert.AreEqual(new RoundedDouble(2, 2), inputParameters2.EntryPointL); Assert.AreEqual(new RoundedDouble(3, 3), inputParameters2.ExitPointL); - string expectedMessage = "Wanneer de intrede- of uittredepunten wijzigen als gevolg van het bijwerken, " + - "zullen de resultaten van berekeningen die deze profielschematisaties gebruiken, worden " + + string expectedMessage = "Als u kiest voor bijwerken, dan wordt het resultaat van alle bij te werken berekeningen " + $"verwijderd.{Environment.NewLine}{Environment.NewLine}Weet u zeker dat u wilt doorgaan?"; Assert.AreEqual(expectedMessage, textBoxMessage); } @@ -1697,7 +1737,7 @@ using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { // When - UpdateSurfaceLine(surfaceLine); + ChangeSurfaceLine(surfaceLine); contextMenu.Items[contextMenuUpdateEntryAndExitPointsAllIndexNestedGroup].PerformClick(); @@ -1809,7 +1849,7 @@ using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { // When - UpdateSurfaceLine(surfaceLine); + ChangeSurfaceLine(surfaceLine); contextMenu.Items[contextMenuUpdateEntryAndExitPointsAllIndexNestedGroup].PerformClick(); @@ -1827,8 +1867,7 @@ Assert.AreEqual(new RoundedDouble(2, 2), inputParameters2.EntryPointL); Assert.AreEqual(new RoundedDouble(3, 3), inputParameters2.ExitPointL); - string expectedMessage = "Wanneer de intrede- of uittredepunten wijzigen als gevolg van het bijwerken, " + - "zullen de resultaten van berekeningen die deze profielschematisaties gebruiken, worden " + + string expectedMessage = "Als u kiest voor bijwerken, dan wordt het resultaat van alle bij te werken berekeningen " + $"verwijderd.{Environment.NewLine}{Environment.NewLine}Weet u zeker dat u wilt doorgaan?"; Assert.AreEqual(expectedMessage, textBoxMessage); } @@ -1929,7 +1968,7 @@ using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { // When - UpdateSurfaceLine(surfaceLine); + ChangeSurfaceLine(surfaceLine); contextMenu.Items[contextMenuUpdateEntryAndExitPointsAllIndexNestedGroup].PerformClick(); @@ -1939,16 +1978,15 @@ PipingInput inputParameters1 = calculation1.InputParameters; Assert.AreSame(surfaceLine, inputParameters1.SurfaceLine); - Assert.AreEqual(new RoundedDouble(2, 0), inputParameters1.EntryPointL); + Assert.AreEqual(new RoundedDouble(2), inputParameters1.EntryPointL); Assert.AreEqual(new RoundedDouble(3, 1), inputParameters1.ExitPointL); PipingInput inputParameters2 = calculation2.InputParameters; Assert.AreSame(surfaceLine, inputParameters2.SurfaceLine); - Assert.AreEqual(new RoundedDouble(2, 0), inputParameters2.EntryPointL); + Assert.AreEqual(new RoundedDouble(2), inputParameters2.EntryPointL); Assert.AreEqual(new RoundedDouble(3, 1), inputParameters2.ExitPointL); - string expectedMessage = "Wanneer de intrede- of uittredepunten wijzigen als gevolg van het bijwerken, " + - "zullen de resultaten van berekeningen die deze profielschematisaties gebruiken, worden " + + string expectedMessage = "Als u kiest voor bijwerken, dan wordt het resultaat van alle bij te werken berekeningen " + $"verwijderd.{Environment.NewLine}{Environment.NewLine}Weet u zeker dat u wilt doorgaan?"; Assert.AreEqual(expectedMessage, textBoxMessage); } @@ -2037,7 +2075,7 @@ using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { // When - UpdateSurfaceLine(surfaceLine); + ChangeSurfaceLine(surfaceLine); contextMenu.Items[contextMenuUpdateEntryAndExitPointsAllIndexNestedGroup].PerformClick(); @@ -2058,7 +2096,7 @@ } } - private static void UpdateSurfaceLine(RingtoetsPipingSurfaceLine surfaceLine) + private static void ChangeSurfaceLine(RingtoetsPipingSurfaceLine surfaceLine) { surfaceLine.SetGeometry(new[] {