Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.cs =================================================================== diff -u -ref03fd73ab6ec035d4b01f0efe8a07914262227e -r532fe40b95e2afab7050b0bc84bf49caf5db627b --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.cs (.../ClosingStructuresFailureMechanismView.cs) (revision ef03fd73ab6ec035d4b01f0efe8a07914262227e) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/Views/ClosingStructuresFailureMechanismView.cs (.../ClosingStructuresFailureMechanismView.cs) (revision 532fe40b95e2afab7050b0bc84bf49caf5db627b) @@ -45,19 +45,6 @@ /// public partial class ClosingStructuresFailureMechanismView : UserControl, IMapView { - private readonly Observer failureMechanismObserver; - private readonly Observer assessmentSectionObserver; - private readonly Observer hydraulicBoundaryLocationsObserver; - private readonly Observer foreshoreProfilesObserver; - private readonly Observer structuresObserver; - - private readonly RecursiveObserver, HydraulicBoundaryLocation> hydraulicBoundaryLocationObserver; - private readonly RecursiveObserver calculationInputObserver; - private readonly RecursiveObserver calculationGroupObserver; - private readonly RecursiveObserver> calculationObserver; - private readonly RecursiveObserver foreshoreProfileObserver; - private readonly RecursiveObserver, ClosingStructure> structureObserver; - private readonly MapDataCollection mapDataCollection; private readonly MapLineData referenceLineMapData; private readonly MapLineData sectionsMapData; @@ -67,7 +54,19 @@ private readonly MapLineData foreshoreProfilesMapData; private readonly MapPointData structuresMapData; private readonly MapLineData calculationsMapData; + private Observer failureMechanismObserver; + private Observer assessmentSectionObserver; + private Observer hydraulicBoundaryLocationsObserver; + private Observer foreshoreProfilesObserver; + private Observer structuresObserver; + private RecursiveObserver, HydraulicBoundaryLocation> hydraulicBoundaryLocationObserver; + private RecursiveObserver calculationInputObserver; + private RecursiveObserver calculationGroupObserver; + private RecursiveObserver> calculationObserver; + private RecursiveObserver foreshoreProfileObserver; + private RecursiveObserver, ClosingStructure> structureObserver; + private ClosingStructuresFailureMechanismContext data; /// @@ -94,22 +93,8 @@ InitializeComponent(); - failureMechanismObserver = new Observer(UpdateMapData); - assessmentSectionObserver = new Observer(UpdateMapData); - hydraulicBoundaryLocationsObserver = new Observer(UpdateMapData); - foreshoreProfilesObserver = new Observer(UpdateMapData); - structuresObserver = new Observer(UpdateMapData); + CreateObservers(); - hydraulicBoundaryLocationObserver = new RecursiveObserver, HydraulicBoundaryLocation>( - UpdateMapData, hbl => hbl); - 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); - foreshoreProfileObserver = new RecursiveObserver(UpdateMapData, coll => coll); - structureObserver = new RecursiveObserver, ClosingStructure>(UpdateMapData, coll => coll); - mapDataCollection = new MapDataCollection(ClosingStructuresDataResources.ClosingStructuresFailureMechanism_DisplayName); referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); hydraulicBoundaryLocationsMapData = RingtoetsMapDataFactory.CreateHydraulicBoundaryLocationsMapData(); @@ -217,6 +202,58 @@ base.Dispose(disposing); } + private void CreateObservers() + { + failureMechanismObserver = new Observer(UpdateMapData) + { + Observable = FailureMechanism + }; + assessmentSectionObserver = new Observer(UpdateMapData) + { + Observable = AssessmentSection + }; + hydraulicBoundaryLocationsObserver = new Observer(UpdateMapData) + { + Observable = AssessmentSection.HydraulicBoundaryDatabase.Locations + }; + foreshoreProfilesObserver = new Observer(UpdateMapData) + { + Observable = FailureMechanism.ForeshoreProfiles + }; + structuresObserver = new Observer(UpdateMapData) + { + Observable = FailureMechanism.ClosingStructures + }; + + hydraulicBoundaryLocationObserver = new RecursiveObserver, HydraulicBoundaryLocation>( + UpdateMapData, hbl => hbl) + { + Observable = AssessmentSection.HydraulicBoundaryDatabase.Locations + }; + calculationInputObserver = new RecursiveObserver( + UpdateMapData, pcg => pcg.Children.Concat(pcg.Children.OfType>() + .Select(pc => pc.InputParameters))) + { + Observable = FailureMechanism.CalculationsGroup + }; + calculationGroupObserver = new RecursiveObserver(UpdateMapData, pcg => pcg.Children) + { + Observable = FailureMechanism.CalculationsGroup + }; + calculationObserver = new RecursiveObserver>(UpdateMapData, pcg => pcg.Children) + { + Observable = FailureMechanism.CalculationsGroup + }; + foreshoreProfileObserver = new RecursiveObserver(UpdateMapData, coll => coll) + { + Observable = FailureMechanism.ForeshoreProfiles + }; + structureObserver = new RecursiveObserver, ClosingStructure>(UpdateMapData, coll => coll) + { + Observable = FailureMechanism.ClosingStructures + }; + } + private void UpdateMapData() { SetMapDataFeatures();