Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/Views/HeightStructuresFailureMechanismView.cs =================================================================== diff -u -r8c5e80bfb6d67d30ee660f6901461bcc76aff057 -r675771641656abfb56ef89be86bad7bd21684016 --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/Views/HeightStructuresFailureMechanismView.cs (.../HeightStructuresFailureMechanismView.cs) (revision 8c5e80bfb6d67d30ee660f6901461bcc76aff057) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/Views/HeightStructuresFailureMechanismView.cs (.../HeightStructuresFailureMechanismView.cs) (revision 675771641656abfb56ef89be86bad7bd21684016) @@ -54,6 +54,7 @@ private readonly RecursiveObserver calculationGroupObserver; private readonly RecursiveObserver> calculationObserver; + private readonly MapDataCollection mapDataCollection; private readonly MapLineData referenceLineMapData; private readonly MapLineData sectionsMapData; private readonly MapPointData sectionsStartPointMapData; @@ -83,27 +84,24 @@ calculationGroupObserver = new RecursiveObserver(UpdateMapData, pcg => pcg.Children); calculationObserver = new RecursiveObserver>(UpdateMapData, pcg => pcg.Children); + mapDataCollection = new MapDataCollection(HeightStructuresDataResources.HeightStructuresFailureMechanism_DisplayName); referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); hydraulicBoundaryDatabaseMapData = RingtoetsMapDataFactory.CreateHydraulicBoundaryDatabaseMapData(); foreshoreProfilesMapData = RingtoetsMapDataFactory.CreateForeshoreProfileMapData(); structuresMapData = RingtoetsMapDataFactory.CreateStructuresMapData(); - sectionsMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsMapData(); sectionsStartPointMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsStartPointMapData(); sectionsEndPointMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsEndPointMapData(); calculationsMapData = RingtoetsMapDataFactory.CreateCalculationsMapData(); - mapControl.Data.Add(referenceLineMapData); - mapControl.Data.Add(sectionsMapData); - mapControl.Data.Add(sectionsStartPointMapData); - mapControl.Data.Add(sectionsEndPointMapData); - mapControl.Data.Add(hydraulicBoundaryDatabaseMapData); - mapControl.Data.Add(foreshoreProfilesMapData); - mapControl.Data.Add(structuresMapData); - mapControl.Data.Add(calculationsMapData); - - mapControl.Data.Name = HeightStructuresDataResources.HeightStructuresFailureMechanism_DisplayName; - mapControl.Data.NotifyObservers(); + mapDataCollection.Add(referenceLineMapData); + mapDataCollection.Add(sectionsMapData); + mapDataCollection.Add(sectionsStartPointMapData); + mapDataCollection.Add(sectionsEndPointMapData); + mapDataCollection.Add(hydraulicBoundaryDatabaseMapData); + mapDataCollection.Add(foreshoreProfilesMapData); + mapDataCollection.Add(structuresMapData); + mapDataCollection.Add(calculationsMapData); } public object Data @@ -126,6 +124,8 @@ calculationInputObserver.Observable = null; calculationGroupObserver.Observable = null; calculationObserver.Observable = null; + + Map.Data = null; } else { @@ -138,9 +138,11 @@ calculationInputObserver.Observable = data.WrappedData.CalculationsGroup; calculationGroupObserver.Observable = data.WrappedData.CalculationsGroup; calculationObserver.Observable = data.WrappedData.CalculationsGroup; + + SetMapDataFeatures(); + + Map.Data = mapDataCollection; } - - UpdateMapData(); } } @@ -171,32 +173,36 @@ private void UpdateMapData() { - if (data == null) - { - Map.ResetMapData(); - } - else - { - ReferenceLine referenceLine = data.Parent.ReferenceLine; - IEnumerable failureMechanismSections = data.WrappedData.Sections; - HydraulicBoundaryDatabase hydraulicBoundaryDatabase = data.Parent.HydraulicBoundaryDatabase; - IEnumerable foreshoreProfiles = data.WrappedData.ForeshoreProfiles; - IEnumerable structures = data.WrappedData.HeightStructures; - IEnumerable> calculations = - data.WrappedData.CalculationsGroup.GetCalculations().Cast>(); + SetMapDataFeatures(); - referenceLineMapData.Features = RingtoetsMapDataFeaturesFactory.CreateReferenceLineFeatures(referenceLine, data.Parent.Id, data.Parent.Name); - sectionsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionFeatures(failureMechanismSections); - sectionsStartPointMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionStartPointFeatures(failureMechanismSections); - sectionsEndPointMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionEndPointFeatures(failureMechanismSections); - hydraulicBoundaryDatabaseMapData.Features = RingtoetsMapDataFeaturesFactory.CreateHydraulicBoundaryDatabaseFeaturesWithDefaultLabels(hydraulicBoundaryDatabase); - foreshoreProfilesMapData.Features = RingtoetsMapDataFeaturesFactory.CreateForeshoreProfilesFeatures(foreshoreProfiles); - structuresMapData.Features = RingtoetsMapDataFeaturesFactory.CreateStructuresFeatures(structures); - calculationsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateStructureCalculationsFeatures - (calculations); + referenceLineMapData.NotifyObservers(); + sectionsMapData.NotifyObservers(); + sectionsStartPointMapData.NotifyObservers(); + sectionsEndPointMapData.NotifyObservers(); + hydraulicBoundaryDatabaseMapData.NotifyObservers(); + foreshoreProfilesMapData.NotifyObservers(); + structuresMapData.NotifyObservers(); + calculationsMapData.NotifyObservers(); + } - mapControl.Data.NotifyObservers(); - } + private void SetMapDataFeatures() + { + ReferenceLine referenceLine = data.Parent.ReferenceLine; + IEnumerable failureMechanismSections = data.WrappedData.Sections; + HydraulicBoundaryDatabase hydraulicBoundaryDatabase = data.Parent.HydraulicBoundaryDatabase; + IEnumerable foreshoreProfiles = data.WrappedData.ForeshoreProfiles; + IEnumerable structures = data.WrappedData.HeightStructures; + IEnumerable> calculations = + data.WrappedData.CalculationsGroup.GetCalculations().Cast>(); + + referenceLineMapData.Features = RingtoetsMapDataFeaturesFactory.CreateReferenceLineFeatures(referenceLine, data.Parent.Id, data.Parent.Name); + sectionsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionFeatures(failureMechanismSections); + sectionsStartPointMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionStartPointFeatures(failureMechanismSections); + sectionsEndPointMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionEndPointFeatures(failureMechanismSections); + hydraulicBoundaryDatabaseMapData.Features = RingtoetsMapDataFeaturesFactory.CreateHydraulicBoundaryDatabaseFeaturesWithDefaultLabels(hydraulicBoundaryDatabase); + foreshoreProfilesMapData.Features = RingtoetsMapDataFeaturesFactory.CreateForeshoreProfilesFeatures(foreshoreProfiles); + structuresMapData.Features = RingtoetsMapDataFeaturesFactory.CreateStructuresFeatures(structures); + calculationsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateStructureCalculationsFeatures(calculations); } } } \ No newline at end of file