Index: Core/Components/src/Core.Components.DotSpatial.Forms/MapControl.cs =================================================================== diff -u -rc24cd541ca55442bb710c202bc15344dc8fc3ef7 -r0e377ba898e65f01baf49fe38de1816858ddb502 --- Core/Components/src/Core.Components.DotSpatial.Forms/MapControl.cs (.../MapControl.cs) (revision c24cd541ca55442bb710c202bc15344dc8fc3ef7) +++ Core/Components/src/Core.Components.DotSpatial.Forms/MapControl.cs (.../MapControl.cs) (revision 0e377ba898e65f01baf49fe38de1816858ddb502) @@ -24,7 +24,6 @@ using System.Linq; using System.Windows.Forms; using Core.Common.Base; -using Core.Common.Utils.Reflection; using Core.Components.BruTile.Configurations; using Core.Components.BruTile.Forms; using Core.Components.DotSpatial.Forms.Properties; @@ -52,15 +51,14 @@ private readonly RecursiveObserver mapDataCollectionObserver; private readonly Observer backGroundMapDataObserver; private readonly IList drawnMapDataList = new List(); - protected bool Removing; + private readonly MapControlBackgroundLayerStatus backgroundLayerStatus = new MapControlBackgroundLayerStatus(); private Map map; + private bool removing; private MapFunctionPan mapFunctionPan; private MapFunctionSelectionZoom mapFunctionSelectionZoom; private RdNewMouseCoordinatesMapExtension mouseCoordinatesMapExtension; private MapDataCollection data; - - private readonly MapControlBackgroundLayerStatus backgroundLayerStatus = new MapControlBackgroundLayerStatus(); private ImageBasedMapData backgroundMapData; /// @@ -92,7 +90,7 @@ mapDataCollectionObserver.Observable = data; - if (HasMapData && !Removing) + if (HasMapData && !removing) { DrawInitialMapData(); } @@ -115,7 +113,7 @@ backgroundMapData = value; backGroundMapDataObserver.Observable = backgroundMapData; - if (HasMapData && !Removing) + if (HasMapData && !removing) { DrawInitialMapData(); } @@ -124,10 +122,10 @@ public virtual void RemoveAllData() { - Removing = true; + removing = true; Data = null; BackgroundMapData = null; - Removing = false; + removing = false; } protected override void Dispose(bool disposing) @@ -397,7 +395,7 @@ private void DrawMissingMapDataOnCollectionChange(IEnumerable mapDataThatShouldBeDrawn, IDictionary drawnMapDataLookup) { - foreach (var mapDataToDraw in mapDataThatShouldBeDrawn.Where(mapDataToDraw => !drawnMapDataLookup.ContainsKey(mapDataToDraw))) + foreach (FeatureBasedMapData mapDataToDraw in mapDataThatShouldBeDrawn.Where(mapDataToDraw => !drawnMapDataLookup.ContainsKey(mapDataToDraw))) { DrawMapData(mapDataToDraw); } @@ -436,7 +434,7 @@ private void RemoveRedundantMapDataOnCollectionChange(IEnumerable mapDataThatShouldBeDrawn, IDictionary drawnMapDataLookup) { - foreach (var featureBasedMapData in drawnMapDataLookup.Keys.Except(mapDataThatShouldBeDrawn)) + foreach (FeatureBasedMapData featureBasedMapData in drawnMapDataLookup.Keys.Except(mapDataThatShouldBeDrawn)) { RemoveMapData(drawnMapDataLookup[featureBasedMapData]); } @@ -453,7 +451,7 @@ private static void AddPadding(Extent extent) { - var padding = Math.Min(extent.Height, extent.Width) * 0.05; + double padding = Math.Min(extent.Height, extent.Width) * 0.05; if (Math.Max(extent.Height, extent.Width) + padding <= double.MaxValue) { extent.ExpandBy(padding); Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/RingtoetsMapControl.cs =================================================================== diff -u -rb48b5cf86db182ea3e86296def02347e4389e482 -r0e377ba898e65f01baf49fe38de1816858ddb502 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/RingtoetsMapControl.cs (.../RingtoetsMapControl.cs) (revision b48b5cf86db182ea3e86296def02347e4389e482) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/RingtoetsMapControl.cs (.../RingtoetsMapControl.cs) (revision 0e377ba898e65f01baf49fe38de1816858ddb502) @@ -19,18 +19,20 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; +using System.Windows.Forms; using Core.Common.Base; -using Core.Components.DotSpatial.Forms; using Core.Components.Gis.Data; +using Core.Components.Gis.Forms; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Utils.TypeConverters; namespace Ringtoets.Common.Forms.Views { /// - /// This class describes a map control with background. + /// Ringtoets map control with background data synchronization. /// - public class RingtoetsMapControl : MapControl + public partial class RingtoetsMapControl : UserControl { private readonly Observer backgroundDataObserver; @@ -41,55 +43,83 @@ /// public RingtoetsMapControl() { + InitializeComponent(); + backgroundDataObserver = new Observer(OnBackgroundDataUpdated); } /// - /// Gets or sets the . + /// Gets the wrapped . /// - public BackgroundData BackgroundData + public IMapControl MapControl { get { - return backgroundData; + return mapControl; } - set + } + + /// + /// Sets all data to the control. + /// + /// The to set to the control. + /// The to set to the control. + /// Thrown when any of the parameters is null. + public void SetAllData(MapDataCollection data, BackgroundData background) + { + if (data == null) { - backgroundData = value; - backgroundDataObserver.Observable = backgroundData; + throw new ArgumentNullException(nameof(data)); + } - BackgroundMapData = backgroundData != null - ? BackgroundDataConverter.ConvertFrom(backgroundData) - : null; + if (background == null) + { + throw new ArgumentNullException(nameof(background)); } + + backgroundData = background; + backgroundDataObserver.Observable = backgroundData; + + mapControl.Data = data; + mapControl.BackgroundMapData = backgroundData != null + ? BackgroundDataConverter.ConvertFrom(backgroundData) + : null; } - public override void RemoveAllData() + /// + /// Removes all data from the control. + /// + public void RemoveAllData() { - Removing = true; - BackgroundData = null; - Data = null; - Removing = false; + backgroundData = null; + backgroundDataObserver.Observable = null; + + mapControl.RemoveAllData(); } protected override void Dispose(bool disposing) { backgroundDataObserver.Dispose(); + if (disposing) + { + components?.Dispose(); + } + base.Dispose(disposing); } private void OnBackgroundDataUpdated() { - if (backgroundData.Configuration is WmtsBackgroundDataConfiguration && BackgroundMapData is WmtsMapData - || backgroundData.Configuration is WellKnownBackgroundDataConfiguration && BackgroundMapData is WellKnownTileSourceMapData) + if (backgroundData.Configuration is WmtsBackgroundDataConfiguration && mapControl.BackgroundMapData is WmtsMapData + || backgroundData.Configuration is WellKnownBackgroundDataConfiguration && mapControl.BackgroundMapData is WellKnownTileSourceMapData) { UpdateBackgroundMapData(); - BackgroundMapData.NotifyObservers(); + mapControl.BackgroundMapData.NotifyObservers(); } else { - BackgroundMapData = BackgroundDataConverter.ConvertFrom(backgroundData); + mapControl.BackgroundMapData = BackgroundDataConverter.ConvertFrom(backgroundData); } } @@ -102,23 +132,23 @@ if (newData.IsConfigured) { var newWmtsData = (WmtsMapData) newData; - ((WmtsMapData) BackgroundMapData).Configure(newWmtsData.SourceCapabilitiesUrl, - newWmtsData.SelectedCapabilityIdentifier, - newWmtsData.PreferredFormat); + ((WmtsMapData) mapControl.BackgroundMapData).Configure(newWmtsData.SourceCapabilitiesUrl, + newWmtsData.SelectedCapabilityIdentifier, + newWmtsData.PreferredFormat); } else { - ((WmtsMapData) BackgroundMapData).RemoveConfiguration(); + ((WmtsMapData) mapControl.BackgroundMapData).RemoveConfiguration(); } } else if (backgroundData.Configuration is WellKnownBackgroundDataConfiguration) { - ((WellKnownTileSourceMapData) BackgroundMapData).SetTileSource(((WellKnownTileSourceMapData) newData).TileSource); + ((WellKnownTileSourceMapData) mapControl.BackgroundMapData).SetTileSource(((WellKnownTileSourceMapData) newData).TileSource); } - BackgroundMapData.IsVisible = newData.IsVisible; - BackgroundMapData.Name = newData.Name; - BackgroundMapData.Transparency = newData.Transparency; + mapControl.BackgroundMapData.IsVisible = newData.IsVisible; + mapControl.BackgroundMapData.Name = newData.Name; + mapControl.BackgroundMapData.Transparency = newData.Transparency; } } } \ No newline at end of file