// Copyright (C) Stichting Deltares 2022. All rights reserved.
//
// This file is part of Riskeer.
//
// Riskeer is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see .
//
// All names, logos, and references to "Deltares" are registered trademarks of
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
using Core.Components.DotSpatial.Layer.BruTile;
using Core.Components.Gis.Data;
namespace Core.Components.DotSpatial.Forms
{
///
/// Class responsible for keeping track of various status information related to the
/// used to create a background layer in a map control.
///
internal class WmtsBackgroundLayerStatus : BackgroundLayerStatus
{
private string sourceCapabilitiesUrl;
private string selectedCapabilityId;
private string preferredFormat;
public override void ClearConfiguration(bool expectRecreationOfSameBackgroundLayer = false)
{
sourceCapabilitiesUrl = null;
selectedCapabilityId = null;
preferredFormat = null;
if (BackgroundLayer != null)
{
BackgroundLayer.Dispose();
BackgroundLayer = null;
}
if (!expectRecreationOfSameBackgroundLayer)
{
PreviousBackgroundLayerCreationFailed = false;
}
}
protected override void OnLayerInitializationSuccessful(BruTileLayer backgroundLayer, ImageBasedMapData dataSource)
{
var wmtsDataSource = dataSource as WmtsMapData;
if (wmtsDataSource == null)
{
PreviousBackgroundLayerCreationFailed = true;
return;
}
sourceCapabilitiesUrl = wmtsDataSource.SourceCapabilitiesUrl;
selectedCapabilityId = wmtsDataSource.SelectedCapabilityIdentifier;
preferredFormat = wmtsDataSource.PreferredFormat;
BackgroundLayer = backgroundLayer;
PreviousBackgroundLayerCreationFailed = false;
}
protected override bool OnHasSameConfiguration(ImageBasedMapData mapData)
{
var wmtsDataSource = mapData as WmtsMapData;
return wmtsDataSource != null
&& Equals(wmtsDataSource.SourceCapabilitiesUrl, sourceCapabilitiesUrl)
&& Equals(wmtsDataSource.SelectedCapabilityIdentifier, selectedCapabilityId)
&& Equals(wmtsDataSource.PreferredFormat, preferredFormat);
}
}
}