Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs =================================================================== diff -u -r2a81f01756e227d5ce93717b21b87e8a5cd5fcbb -re788017bb6a3260683d8e87343286036b63f8c5a --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision 2a81f01756e227d5ce93717b21b87e8a5cd5fcbb) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision e788017bb6a3260683d8e87343286036b63f8c5a) @@ -53,6 +53,12 @@ private readonly MapPointData sectionsEndPointMapData; private readonly MapPointData hydraulicBoundaryLocationsMapData; private readonly MapLineData calculationsMapData; + + private readonly MapLineData simpleAssemblyMapData; + private readonly MapLineData detailedAssemblyMapData; + private readonly MapLineData tailorMadeAssemblyMapData; + private readonly MapLineData combinedAssemblyMapData; + private Observer failureMechanismObserver; private Observer hydraulicBoundaryLocationsObserver; private Observer assessmentSectionObserver; @@ -71,6 +77,7 @@ private RecursiveObserver calculationGroupObserver; private RecursiveObserver calculationObserver; private RecursiveObserver surfaceLineObserver; + private RecursiveObserver, PipingFailureMechanismSectionResult> sectionResultObserver; /// /// Creates a new instance of . @@ -107,12 +114,25 @@ sectionsEndPointMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsEndPointMapData(); calculationsMapData = RingtoetsMapDataFactory.CreateCalculationsMapData(); + MapDataCollection assemblyMapDataCollection = AssemblyMapDataFactory.CreateAssemblyMapDataCollection(); + simpleAssemblyMapData = AssemblyMapDataFactory.CreateSimpleAssemblyMapData(); + detailedAssemblyMapData = AssemblyMapDataFactory.CreateDetailedAssemblyMapData(); + tailorMadeAssemblyMapData = AssemblyMapDataFactory.CreateTailorMadeAssemblyMapData(); + combinedAssemblyMapData = AssemblyMapDataFactory.CreateCombinedAssemblyMapData(); + mapDataCollection.Add(referenceLineMapData); mapDataCollection.Add(stochasticSoilModelsMapData); mapDataCollection.Add(surfaceLinesMapData); mapDataCollection.Add(sectionsMapData); mapDataCollection.Add(sectionsStartPointMapData); mapDataCollection.Add(sectionsEndPointMapData); + + assemblyMapDataCollection.Add(tailorMadeAssemblyMapData); + assemblyMapDataCollection.Add(detailedAssemblyMapData); + assemblyMapDataCollection.Add(simpleAssemblyMapData); + assemblyMapDataCollection.Add(combinedAssemblyMapData); + mapDataCollection.Add(assemblyMapDataCollection); + mapDataCollection.Add(hydraulicBoundaryLocationsMapData); mapDataCollection.Add(calculationsMapData); @@ -159,6 +179,7 @@ calculationObserver.Dispose(); surfaceLinesObserver.Dispose(); surfaceLineObserver.Dispose(); + sectionResultObserver.Dispose(); if (disposing) { @@ -170,11 +191,11 @@ private void CreateObservers() { - failureMechanismObserver = new Observer(UpdateSectionsMapData) + failureMechanismObserver = new Observer(UpdateFailureMechanismMapData) { Observable = FailureMechanism }; - assessmentSectionObserver = new Observer(UpdateReferenceLineMapData) + assessmentSectionObserver = new Observer(UpdateAssessmentSectionMapData) { Observable = AssessmentSection }; @@ -221,10 +242,16 @@ { Observable = FailureMechanism.CalculationsGroup }; + surfaceLineObserver = new RecursiveObserver(UpdateSurfaceLinesMapData, rpslc => rpslc) { Observable = FailureMechanism.SurfaceLines }; + + sectionResultObserver = new RecursiveObserver, PipingFailureMechanismSectionResult>(UpdateAssemblyMapData, sr => sr) + { + Observable = FailureMechanism.SectionResults + }; } private void SetAllMapDataFeatures() @@ -236,14 +263,39 @@ SetSectionsMapData(); SetSurfaceLinesMapData(); SetStochasticSoilModelsMapData(); + + SetAssemblyMapData(); } + #region Assembly MapData + + private void UpdateAssemblyMapData() + { + SetAssemblyMapData(); + simpleAssemblyMapData.NotifyObservers(); + detailedAssemblyMapData.NotifyObservers(); + tailorMadeAssemblyMapData.NotifyObservers(); + combinedAssemblyMapData.NotifyObservers(); + } + + private void SetAssemblyMapData() + { + simpleAssemblyMapData.Features = PipingAssemblyMapDataFeaturesFactory.CreateSimpleAssemblyFeatures(FailureMechanism); + detailedAssemblyMapData.Features = PipingAssemblyMapDataFeaturesFactory.CreateDetailedAssemblyFeatures(FailureMechanism, AssessmentSection); + tailorMadeAssemblyMapData.Features = PipingAssemblyMapDataFeaturesFactory.CreateTailorMadeAssemblyFeatures(FailureMechanism, AssessmentSection); + combinedAssemblyMapData.Features = PipingAssemblyMapDataFeaturesFactory.CreateCombinedAssemblyFeatures(FailureMechanism, AssessmentSection); + } + + #endregion + #region Calculations MapData private void UpdateCalculationsMapData() { SetCalculationsMapData(); calculationsMapData.NotifyObservers(); + + UpdateAssemblyMapData(); } private void SetCalculationsMapData() @@ -270,12 +322,14 @@ #endregion - #region ReferenceLine MapData + #region AssessmentSection MapData - private void UpdateReferenceLineMapData() + private void UpdateAssessmentSectionMapData() { SetReferenceLineMapData(); referenceLineMapData.NotifyObservers(); + + UpdateAssemblyMapData(); } private void SetReferenceLineMapData() @@ -286,14 +340,16 @@ #endregion - #region Sections MapData + #region FailureMechanism MapData - private void UpdateSectionsMapData() + private void UpdateFailureMechanismMapData() { SetSectionsMapData(); sectionsMapData.NotifyObservers(); sectionsStartPointMapData.NotifyObservers(); sectionsEndPointMapData.NotifyObservers(); + + UpdateAssemblyMapData(); } private void SetSectionsMapData()