// Copyright (C) Stichting Deltares 2018. All rights reserved. // // This file is part of Ringtoets. // // Ringtoets 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 System; using System.Drawing; using Core.Common.Base.Data; using Core.Components.Chart.Properties; namespace Core.Components.Chart.Styles { /// /// This class represents styling of a point on a chart. /// public class ChartPointStyle : ChartStyle { private readonly Range strokeThicknessValidityRange = new Range(0, 48); private readonly Range sizeValidityRange = new Range(0, 48); private int size; private int strokeThickness; /// /// Gets or sets the point color. /// public Color Color { get; set; } /// /// Gets or sets the point stroke color. /// public Color StrokeColor { get; set; } /// /// Gets or sets the point size. /// /// Thrown when value is not in range [0, 48]. public int Size { get { return size; } set { if (sizeValidityRange.InRange(value)) { size = value; } else { string message = string.Format(Resources.Size_Value_should_be_in_Range_0_, sizeValidityRange); throw new ArgumentOutOfRangeException(nameof(value), message); } } } /// /// Gets or sets the point stroke thickness. /// /// Thrown when value is not in range [0, 48]. public int StrokeThickness { get { return strokeThickness; } set { if (strokeThicknessValidityRange.InRange(value)) { strokeThickness = value; } else { string message = string.Format(Resources.StrokeThickness_Value_should_be_in_Range_0_, strokeThicknessValidityRange); throw new ArgumentOutOfRangeException(nameof(value), message); } } } /// /// Gets or sets the point symbol. /// public ChartPointSymbol Symbol { get; set; } } }