Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs =================================================================== diff -u -r7bddae850fd9e39813c1dc004bb65d7566bda73d -r66c08be4d2f3add52e3bec18c724b211bcc4a4df --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision 7bddae850fd9e39813c1dc004bb65d7566bda73d) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision 66c08be4d2f3add52e3bec18c724b211bcc4a4df) @@ -89,19 +89,52 @@ InitializeComponent(); - failureMechanismObserver = new Observer(UpdateMapData); - assessmentSectionObserver = new Observer(UpdateMapData); - hydraulicBoundaryLocationsObserver = new Observer(UpdateHydraulicBoundaryLocationsMapData); - surfaceLinesObserver = new Observer(UpdateSurfaceLinesMapData); - stochasticSoilModelsObserver = new Observer(UpdateStochasticSoilModelsMapData); + FailureMechanism = failureMechanism; + AssessmentSection = assessmentSection; + failureMechanismObserver = new Observer(UpdateMapData) + { + Observable = failureMechanism + }; + assessmentSectionObserver = new Observer(UpdateMapData) + { + Observable = assessmentSection + }; + hydraulicBoundaryLocationsObserver = new Observer(UpdateHydraulicBoundaryLocationsMapData) + { + Observable = assessmentSection.HydraulicBoundaryDatabase.Locations + }; + surfaceLinesObserver = new Observer(UpdateSurfaceLinesMapData) + { + Observable = failureMechanism.SurfaceLines + }; + stochasticSoilModelsObserver = new Observer(UpdateStochasticSoilModelsMapData) + { + Observable = failureMechanism.StochasticSoilModels + }; + hydraulicBoundaryLocationObserver = new RecursiveObserver, HydraulicBoundaryLocation>( - UpdateHydraulicBoundaryLocationsMapData, hbl => hbl); + UpdateHydraulicBoundaryLocationsMapData, hbl => hbl) + { + Observable = assessmentSection.HydraulicBoundaryDatabase.Locations + }; calculationInputObserver = new RecursiveObserver( - 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); + UpdateCalculationsMapData, pcg => pcg.Children.Concat(pcg.Children.OfType().Select(pc => pc.InputParameters))) + { + Observable = failureMechanism.CalculationsGroup + }; + calculationGroupObserver = new RecursiveObserver(UpdateCalculationsMapData, pcg => pcg.Children) + { + Observable = failureMechanism.CalculationsGroup + }; + calculationObserver = new RecursiveObserver(UpdateCalculationsMapData, pcg => pcg.Children) + { + Observable = failureMechanism.CalculationsGroup + }; + surfaceLineObserver = new RecursiveObserver(UpdateSurfaceLinesMapData, rpslc => rpslc) + { + Observable = failureMechanism.SurfaceLines + }; mapDataCollection = new MapDataCollection(PipingDataResources.PipingFailureMechanism_DisplayName); referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); @@ -121,8 +154,21 @@ mapDataCollection.Add(sectionsEndPointMapData); mapDataCollection.Add(hydraulicBoundaryLocationsMapData); mapDataCollection.Add(calculationsMapData); + + SetAllMapDataFeatures(); + ringtoetsMapControl.SetAllData(mapDataCollection, AssessmentSection.BackgroundData); } + /// + /// Gets the failure mechanism. + /// + public PipingFailureMechanism FailureMechanism { get; } + + /// + /// Gets the assessment section. + /// + public IAssessmentSection AssessmentSection { get; } + public object Data { get @@ -193,6 +239,7 @@ { components?.Dispose(); } + base.Dispose(disposing); } @@ -229,7 +276,7 @@ private void SetCalculationsMapData() { IEnumerable calculations = - data.WrappedData.CalculationsGroup.GetCalculations().Cast(); + FailureMechanism.CalculationsGroup.GetCalculations().Cast(); calculationsMapData.Features = PipingMapDataFeaturesFactory.CreateCalculationFeatures(calculations); } @@ -245,7 +292,7 @@ private void SetHydraulicBoundaryLocationsMapData() { - HydraulicBoundaryDatabase hydraulicBoundaryDatabase = data.Parent.HydraulicBoundaryDatabase; + HydraulicBoundaryDatabase hydraulicBoundaryDatabase = AssessmentSection.HydraulicBoundaryDatabase; hydraulicBoundaryLocationsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateHydraulicBoundaryDatabaseFeatures(hydraulicBoundaryDatabase); } @@ -261,8 +308,8 @@ private void SetReferenceLineMapData() { - ReferenceLine referenceLine = data.Parent.ReferenceLine; - referenceLineMapData.Features = RingtoetsMapDataFeaturesFactory.CreateReferenceLineFeatures(referenceLine, data.Parent.Id, data.Parent.Name); + ReferenceLine referenceLine = AssessmentSection.ReferenceLine; + referenceLineMapData.Features = RingtoetsMapDataFeaturesFactory.CreateReferenceLineFeatures(referenceLine, AssessmentSection.Id, AssessmentSection.Name); } #endregion @@ -279,7 +326,7 @@ private void SetSectionsMapData() { - IEnumerable failureMechanismSections = data.WrappedData.Sections; + IEnumerable failureMechanismSections = FailureMechanism.Sections; sectionsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionFeatures(failureMechanismSections); sectionsStartPointMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionStartPointFeatures(failureMechanismSections); @@ -298,7 +345,7 @@ private void SetSurfaceLinesMapData() { - PipingSurfaceLineCollection pipingSurfaceLines = data.WrappedData.SurfaceLines; + PipingSurfaceLineCollection pipingSurfaceLines = FailureMechanism.SurfaceLines; surfaceLinesMapData.Features = PipingMapDataFeaturesFactory.CreateSurfaceLineFeatures(pipingSurfaceLines.ToArray()); } @@ -314,7 +361,7 @@ private void SetStochasticSoilModelsMapData() { - PipingStochasticSoilModelCollection stochasticSoilModels = data.WrappedData.StochasticSoilModels; + PipingStochasticSoilModelCollection stochasticSoilModels = FailureMechanism.StochasticSoilModels; stochasticSoilModelsMapData.Features = PipingMapDataFeaturesFactory.CreateStochasticSoilModelFeatures(stochasticSoilModels.ToArray()); } Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs =================================================================== diff -u -r7bddae850fd9e39813c1dc004bb65d7566bda73d -r66c08be4d2f3add52e3bec18c724b211bcc4a4df --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs (.../PipingFailureMechanismViewTest.cs) (revision 7bddae850fd9e39813c1dc004bb65d7566bda73d) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismViewTest.cs (.../PipingFailureMechanismViewTest.cs) (revision 66c08be4d2f3add52e3bec18c724b211bcc4a4df) @@ -105,7 +105,7 @@ Assert.IsInstanceOf(view.Controls[0]); Assert.AreSame(view.Map, ((RingtoetsMapControl) view.Controls[0]).MapControl); Assert.AreEqual(DockStyle.Fill, ((Control) view.Map).Dock); - Assert.IsNull(view.Map.Data); + AssertEmptyMapData(view.Map.Data); } }