Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs =================================================================== diff -u -r8d3579e3b7a7c43620023abba50a7f33bf480185 -r4f9135243197ba3b1238f964bb38f3e9971d1282 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision 8d3579e3b7a7c43620023abba50a7f33bf480185) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision 4f9135243197ba3b1238f964bb38f3e9971d1282) @@ -82,17 +82,16 @@ UpdateMapData(); }); - hydraulicBoundaryDatabaseObserver = new Observer(UpdateMapData); - surfaceLinesObserver = new Observer(UpdateMapData); - stochasticSoilModelsObserver = new Observer(UpdateMapData); + hydraulicBoundaryDatabaseObserver = new Observer(UpdateHydraulicBoundaryLocationsMapData); + surfaceLinesObserver = new Observer(UpdateSurfaceLinesMapData); + stochasticSoilModelsObserver = new Observer(UpdateStochasticSoilModelsMapData); calculationInputObserver = new RecursiveObserver( - UpdateMapData, pcg => pcg.Children.Concat(pcg.Children.OfType().Select(pc => pc.InputParameters))); - calculationGroupObserver = new RecursiveObserver(UpdateMapData, pcg => pcg.Children); - calculationObserver = new RecursiveObserver(UpdateMapData, pcg => pcg.Children); + UpdateCalculationsMapData, pcg => pcg.Children.Concat(pcg.Children.OfType().Select(pc => pc.InputParameters))); + calculationGroupObserver = new RecursiveObserver(UpdateCalculationsMapData, pcg => pcg.Children); + calculationObserver = new RecursiveObserver(UpdateCalculationsMapData, pcg => pcg.Children); + surfaceLineObserver = new RecursiveObserver(UpdateSurfaceLinesMapData, rpslc => rpslc); - surfaceLineObserver = new RecursiveObserver(UpdateMapData, rpslc => rpslc); - mapDataCollection = new MapDataCollection(PipingDataResources.PipingFailureMechanism_DisplayName); referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); hydraulicBoundaryLocationsMapData = RingtoetsMapDataFactory.CreateHydraulicBoundaryLocationsMapData(); @@ -128,12 +127,12 @@ failureMechanismObserver.Observable = null; assessmentSectionObserver.Observable = null; hydraulicBoundaryDatabaseObserver.Observable = null; - surfaceLinesObserver.Observable = null; stochasticSoilModelsObserver.Observable = null; calculationInputObserver.Observable = null; calculationGroupObserver.Observable = null; calculationObserver.Observable = null; surfaceLineObserver.Observable = null; + surfaceLinesObserver.Observable = null; mapControl.RemoveAllData(); } @@ -142,14 +141,14 @@ failureMechanismObserver.Observable = data.WrappedData; assessmentSectionObserver.Observable = data.Parent; hydraulicBoundaryDatabaseObserver.Observable = data.Parent.HydraulicBoundaryDatabase; - surfaceLinesObserver.Observable = data.WrappedData.SurfaceLines; stochasticSoilModelsObserver.Observable = data.WrappedData.StochasticSoilModels; calculationInputObserver.Observable = data.WrappedData.CalculationsGroup; calculationGroupObserver.Observable = data.WrappedData.CalculationsGroup; calculationObserver.Observable = data.WrappedData.CalculationsGroup; + surfaceLinesObserver.Observable = data.WrappedData.SurfaceLines; surfaceLineObserver.Observable = data.WrappedData.SurfaceLines; - SetMapDataFeatures(); + SetAllMapDataFeatures(); mapControl.Data = mapDataCollection; mapControl.BackgroundData = data.Parent.BackgroundData; @@ -171,10 +170,11 @@ assessmentSectionObserver.Dispose(); hydraulicBoundaryDatabaseObserver.Dispose(); stochasticSoilModelsObserver.Dispose(); - surfaceLinesObserver.Dispose(); calculationInputObserver.Dispose(); calculationGroupObserver.Dispose(); calculationObserver.Dispose(); + surfaceLinesObserver.Dispose(); + surfaceLineObserver.Dispose(); if (disposing) { @@ -185,36 +185,126 @@ private void UpdateMapData() { - SetMapDataFeatures(); + UpdateCalculationsMapData(); + UpdateHydraulicBoundaryLocationsMapData(); + UpdateReferenceLineMapData(); + UpdateSectionsMapData(); + UpdateSurfaceLinesMapData(); + UpdateStochasticSoilModelsMapData(); + } + + private void SetAllMapDataFeatures() + { + SetCalculationsMapData(); + SetHydraulicBoundaryLocationsMapData(); + SetReferenceLineMapData(); + + SetSectionsMapData(); + SetSurfaceLinesMapData(); + SetStochasticSoilModelsMapData(); + } + + #region Calculations MapData + + private void UpdateCalculationsMapData() + { + SetCalculationsMapData(); + calculationsMapData.NotifyObservers(); + } + + private void SetCalculationsMapData() + { + IEnumerable calculations = + data.WrappedData.CalculationsGroup.GetCalculations().Cast(); + calculationsMapData.Features = PipingMapDataFeaturesFactory.CreateCalculationFeatures(calculations); + } + + #endregion + + #region HydraulicBoundaryLocations MapData + + private void UpdateHydraulicBoundaryLocationsMapData() + { + SetHydraulicBoundaryLocationsMapData(); + hydraulicBoundaryLocationsMapData.NotifyObservers(); + } + + private void SetHydraulicBoundaryLocationsMapData() + { + HydraulicBoundaryDatabase hydraulicBoundaryDatabase = data.Parent.HydraulicBoundaryDatabase; + hydraulicBoundaryLocationsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateHydraulicBoundaryDatabaseFeatures(hydraulicBoundaryDatabase); + } + + #endregion + + #region ReferenceLine MapData + + private void UpdateReferenceLineMapData() + { + SetReferenceLineMapData(); referenceLineMapData.NotifyObservers(); + } + + private void SetReferenceLineMapData() + { + ReferenceLine referenceLine = data.Parent.ReferenceLine; + referenceLineMapData.Features = RingtoetsMapDataFeaturesFactory.CreateReferenceLineFeatures(referenceLine, data.Parent.Id, data.Parent.Name); + } + + #endregion + + #region Sections MapData + + private void UpdateSectionsMapData() + { + SetSectionsMapData(); sectionsMapData.NotifyObservers(); - stochasticSoilModelsMapData.NotifyObservers(); - surfaceLinesMapData.NotifyObservers(); sectionsStartPointMapData.NotifyObservers(); sectionsEndPointMapData.NotifyObservers(); - hydraulicBoundaryLocationsMapData.NotifyObservers(); - calculationsMapData.NotifyObservers(); } - private void SetMapDataFeatures() + private void SetSectionsMapData() { - ReferenceLine referenceLine = data.Parent.ReferenceLine; IEnumerable failureMechanismSections = data.WrappedData.Sections; - StochasticSoilModelCollection stochasticSoilModels = data.WrappedData.StochasticSoilModels; - RingtoetsPipingSurfaceLineCollection ringtoetsPipingSurfaceLines = data.WrappedData.SurfaceLines; - HydraulicBoundaryDatabase hydraulicBoundaryDatabase = data.Parent.HydraulicBoundaryDatabase; - IEnumerable calculations = - data.WrappedData.CalculationsGroup.GetCalculations().Cast(); - referenceLineMapData.Features = RingtoetsMapDataFeaturesFactory.CreateReferenceLineFeatures(referenceLine, data.Parent.Id, data.Parent.Name); - stochasticSoilModelsMapData.Features = PipingMapDataFeaturesFactory.CreateStochasticSoilModelFeatures(stochasticSoilModels.ToArray()); - surfaceLinesMapData.Features = PipingMapDataFeaturesFactory.CreateSurfaceLineFeatures(ringtoetsPipingSurfaceLines.ToArray()); sectionsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionFeatures(failureMechanismSections); sectionsStartPointMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionStartPointFeatures(failureMechanismSections); sectionsEndPointMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionEndPointFeatures(failureMechanismSections); - hydraulicBoundaryLocationsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateHydraulicBoundaryDatabaseFeatures(hydraulicBoundaryDatabase); - calculationsMapData.Features = PipingMapDataFeaturesFactory.CreateCalculationFeatures(calculations); } + + #endregion + + #region SurfaceLines MapData + + private void UpdateSurfaceLinesMapData() + { + SetSurfaceLinesMapData(); + surfaceLinesMapData.NotifyObservers(); + } + + private void SetSurfaceLinesMapData() + { + RingtoetsPipingSurfaceLineCollection ringtoetsPipingSurfaceLines = data.WrappedData.SurfaceLines; + surfaceLinesMapData.Features = PipingMapDataFeaturesFactory.CreateSurfaceLineFeatures(ringtoetsPipingSurfaceLines.ToArray()); + } + + #endregion + + #region StochasticSoilModels MapData + + private void UpdateStochasticSoilModelsMapData() + { + SetStochasticSoilModelsMapData(); + stochasticSoilModelsMapData.NotifyObservers(); + } + + private void SetStochasticSoilModelsMapData() + { + StochasticSoilModelCollection stochasticSoilModels = data.WrappedData.StochasticSoilModels; + stochasticSoilModelsMapData.Features = PipingMapDataFeaturesFactory.CreateStochasticSoilModelFeatures(stochasticSoilModels.ToArray()); + } + + #endregion } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/RingtoetsPipingSurfaceLineUpdateDataStrategy.cs =================================================================== diff -u -rd16c525c53b03da07dd18853da6b8b256ede5b5a -r4f9135243197ba3b1238f964bb38f3e9971d1282 --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/RingtoetsPipingSurfaceLineUpdateDataStrategy.cs (.../RingtoetsPipingSurfaceLineUpdateDataStrategy.cs) (revision d16c525c53b03da07dd18853da6b8b256ede5b5a) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/RingtoetsPipingSurfaceLineUpdateDataStrategy.cs (.../RingtoetsPipingSurfaceLineUpdateDataStrategy.cs) (revision 4f9135243197ba3b1238f964bb38f3e9971d1282) @@ -187,8 +187,7 @@ IEnumerable calculationsToUpdate = GetAffectedCalculationWithSurfaceLine(removedSurfaceLine); foreach (PipingCalculation affectedCalculation in calculationsToUpdate) { - IEnumerable matchingSoilModels = GetAvailableStochasticSoilModels(null); - PipingInputService.SetMatchingStochasticSoilModel(affectedCalculation.InputParameters, matchingSoilModels); + PipingInputService.SetMatchingStochasticSoilModel(affectedCalculation.InputParameters, Enumerable.Empty()); } return PipingDataSynchronizationService.RemoveSurfaceLine(failureMechanism, removedSurfaceLine); Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs =================================================================== diff -u -rd8685648467a4eb833f0512461ecf1acbc513484 -r4f9135243197ba3b1238f964bb38f3e9971d1282 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs (.../PipingCalculationsViewTest.cs) (revision d8685648467a4eb833f0512461ecf1acbc513484) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs (.../PipingCalculationsViewTest.cs) (revision 4f9135243197ba3b1238f964bb38f3e9971d1282) @@ -1375,17 +1375,17 @@ var data = (CalculationGroup) pipingCalculationView.Data; var pipingCalculation = (PipingCalculationScenario) data.Children[0]; - var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - var listBox = (ListBox) new ControlTester("listBox").TheObject; + DataGridViewControl dataGridView = pipingCalculationView.Controls.Find("dataGridViewControl", true).OfType().First(); + ListBox listBox = pipingCalculationView.Controls.Find("listBox", true).OfType().First(); // Precondition listBox.SelectedIndex = 0; - Assert.AreEqual(2, dataGridView.RowCount); + Assert.AreEqual(2, dataGridView.Rows.Count); Assert.AreEqual("Calculation 1", dataGridView.Rows[0].Cells[nameColumnIndex].FormattedValue); Assert.AreEqual("Calculation 2", dataGridView.Rows[1].Cells[nameColumnIndex].FormattedValue); listBox.SelectedIndex = 1; - Assert.AreEqual(1, dataGridView.RowCount); + Assert.AreEqual(1, dataGridView.Rows.Count); Assert.AreEqual("Calculation 2", dataGridView.Rows[0].Cells[nameColumnIndex].FormattedValue); RingtoetsPipingSurfaceLine surfaceLineToChange = pipingCalculation.InputParameters.SurfaceLine; @@ -1407,11 +1407,11 @@ // Then listBox.SelectedIndex = 0; - Assert.AreEqual(1, dataGridView.RowCount); + Assert.AreEqual(1, dataGridView.Rows.Count); Assert.AreEqual("Calculation 2", dataGridView.Rows[0].Cells[nameColumnIndex].FormattedValue); listBox.SelectedIndex = 1; - Assert.AreEqual(2, dataGridView.RowCount); + Assert.AreEqual(2, dataGridView.Rows.Count); Assert.AreEqual("Calculation 1", dataGridView.Rows[0].Cells[nameColumnIndex].FormattedValue); Assert.AreEqual("Calculation 2", dataGridView.Rows[1].Cells[nameColumnIndex].FormattedValue); } Index: Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/RingtoetsPipingSurfaceLineUpdateDataStrategyTest.cs =================================================================== diff -u -r8d3579e3b7a7c43620023abba50a7f33bf480185 -r4f9135243197ba3b1238f964bb38f3e9971d1282 --- Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/RingtoetsPipingSurfaceLineUpdateDataStrategyTest.cs (.../RingtoetsPipingSurfaceLineUpdateDataStrategyTest.cs) (revision 8d3579e3b7a7c43620023abba50a7f33bf480185) +++ Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/RingtoetsPipingSurfaceLineUpdateDataStrategyTest.cs (.../RingtoetsPipingSurfaceLineUpdateDataStrategyTest.cs) (revision 4f9135243197ba3b1238f964bb38f3e9971d1282) @@ -941,6 +941,7 @@ }, affectedObjects); Assert.IsNull(calculationInput.SurfaceLine); Assert.IsNull(calculationInput.StochasticSoilModel); + Assert.IsNull(calculationInput.StochasticSoilProfile); } [Test]