Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssessmentSectionView.cs =================================================================== diff -u -red456b64612970e1ef09e2a876bbb35754443d6d -re188571d46acb50f1d547b9141b65094561c331a --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssessmentSectionView.cs (.../AssessmentSectionView.cs) (revision ed456b64612970e1ef09e2a876bbb35754443d6d) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssessmentSectionView.cs (.../AssessmentSectionView.cs) (revision e188571d46acb50f1d547b9141b65094561c331a) @@ -41,20 +41,23 @@ private readonly MapLineData referenceLineMapData; private readonly MapPointData hydraulicBoundaryLocationsMapData; - private readonly Observer assessmentSectionObserver; - private readonly Observer hydraulicBoundaryLocationsObserver; - private readonly RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForFactorizedSignalingNormObserver; - private readonly RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForSignalingNormObserver; - private readonly RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForLowerLimitNormObserver; - private readonly RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForFactorizedLowerLimitNormObserver; - private readonly RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForFactorizedSignalingNormObserver; - private readonly RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForSignalingNormObserver; - private readonly RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForLowerLimitNormObserver; - private readonly RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForFactorizedLowerLimitNormObserver; + private Observer assessmentSectionObserver; + private Observer hydraulicBoundaryLocationsObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForFactorizedSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForLowerLimitNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForFactorizedLowerLimitNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForFactorizedSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForLowerLimitNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForFactorizedLowerLimitNormObserver; /// /// Creates a new instance of . /// + /// The assessment section to show the data for. + /// Thrown when + /// is null. public AssessmentSectionView(IAssessmentSection assessmentSection) { if (assessmentSection == null) @@ -64,35 +67,18 @@ InitializeComponent(); - assessmentSectionObserver = new Observer(UpdateMapData) - { - Observable = assessmentSection - }; + this.assessmentSection = assessmentSection; - waterLevelCalculationsForFactorizedSignalingNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaterLevelCalculationsForFactorizedSignalingNorm); - waterLevelCalculationsForSignalingNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaterLevelCalculationsForSignalingNorm); - waterLevelCalculationsForLowerLimitNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaterLevelCalculationsForLowerLimitNorm); - waterLevelCalculationsForFactorizedLowerLimitNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaterLevelCalculationsForFactorizedLowerLimitNorm); - waveHeightCalculationsForFactorizedSignalingNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaveHeightCalculationsForFactorizedSignalingNorm); - waveHeightCalculationsForSignalingNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaveHeightCalculationsForSignalingNorm); - waveHeightCalculationsForLowerLimitNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaveHeightCalculationsForLowerLimitNorm); - waveHeightCalculationsForFactorizedLowerLimitNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaveHeightCalculationsForFactorizedLowerLimitNorm); + CreateObservers(); - hydraulicBoundaryLocationsObserver = new Observer(UpdateMapData) - { - Observable = assessmentSection.HydraulicBoundaryDatabase.Locations - }; - var mapDataCollection = new MapDataCollection(Resources.AssessmentSectionMap_DisplayName); referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); hydraulicBoundaryLocationsMapData = RingtoetsMapDataFactory.CreateHydraulicBoundaryLocationsMapData(); mapDataCollection.Add(referenceLineMapData); mapDataCollection.Add(hydraulicBoundaryLocationsMapData); - this.assessmentSection = assessmentSection; - - SetMapDataFeatures(); + SetAllMapDataFeatures(); ringtoetsMapControl.SetAllData(mapDataCollection, assessmentSection.BackgroundData); } @@ -127,28 +113,64 @@ base.Dispose(disposing); } + private void CreateObservers() + { + assessmentSectionObserver = new Observer(UpdateReferenceLineMapData) + { + Observable = assessmentSection + }; + + waterLevelCalculationsForFactorizedSignalingNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaterLevelCalculationsForFactorizedSignalingNorm); + waterLevelCalculationsForSignalingNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaterLevelCalculationsForSignalingNorm); + waterLevelCalculationsForLowerLimitNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaterLevelCalculationsForLowerLimitNorm); + waterLevelCalculationsForFactorizedLowerLimitNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaterLevelCalculationsForFactorizedLowerLimitNorm); + waveHeightCalculationsForFactorizedSignalingNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaveHeightCalculationsForFactorizedSignalingNorm); + waveHeightCalculationsForSignalingNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaveHeightCalculationsForSignalingNorm); + waveHeightCalculationsForLowerLimitNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaveHeightCalculationsForLowerLimitNorm); + waveHeightCalculationsForFactorizedLowerLimitNormObserver = CreateHydraulicBoundaryLocationCalculationsObserver(assessmentSection.WaveHeightCalculationsForFactorizedLowerLimitNorm); + + hydraulicBoundaryLocationsObserver = new Observer(UpdateHydraulicBoundaryLocationsMapData) + { + Observable = assessmentSection.HydraulicBoundaryDatabase.Locations + }; + } + private RecursiveObserver, HydraulicBoundaryLocationCalculation> CreateHydraulicBoundaryLocationCalculationsObserver( IObservableEnumerable calculations) { return new RecursiveObserver, HydraulicBoundaryLocationCalculation>( - UpdateMapData, calc => calc) + UpdateHydraulicBoundaryLocationsMapData, calc => calc) { Observable = calculations }; } - private void UpdateMapData() + private void SetAllMapDataFeatures() { - SetMapDataFeatures(); - - referenceLineMapData.NotifyObservers(); - hydraulicBoundaryLocationsMapData.NotifyObservers(); + SetReferenceLineMapData(); + SetHydraulicBoundaryLocationsMapData(); } - private void SetMapDataFeatures() + private void SetReferenceLineMapData() { referenceLineMapData.Features = RingtoetsMapDataFeaturesFactory.CreateReferenceLineFeatures(assessmentSection.ReferenceLine, assessmentSection.Id, assessmentSection.Name); + } + + private void SetHydraulicBoundaryLocationsMapData() + { hydraulicBoundaryLocationsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateHydraulicBoundaryLocationFeatures(assessmentSection); } + + private void UpdateReferenceLineMapData() + { + SetReferenceLineMapData(); + referenceLineMapData.NotifyObservers(); + } + + private void UpdateHydraulicBoundaryLocationsMapData() + { + SetHydraulicBoundaryLocationsMapData(); + hydraulicBoundaryLocationsMapData.NotifyObservers(); + } } } \ No newline at end of file