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