Index: Core/Components/src/Core.Components.Charting/Styles/ChartAreaStyle.cs =================================================================== diff -u -r67284323e2785c651633d9c52049ba12a9c70e6a -rb1e70d9d071a519e61adce4f5efd3a941a3ea579 --- Core/Components/src/Core.Components.Charting/Styles/ChartAreaStyle.cs (.../ChartAreaStyle.cs) (revision 67284323e2785c651633d9c52049ba12a9c70e6a) +++ Core/Components/src/Core.Components.Charting/Styles/ChartAreaStyle.cs (.../ChartAreaStyle.cs) (revision b1e70d9d071a519e61adce4f5efd3a941a3ea579) @@ -33,27 +33,27 @@ /// /// The fill color of the area. /// The stroke color of the area. - /// The width of the area border. - public ChartAreaStyle(Color fillColor, Color strokeColor, int width) + /// The stroke thickness of the area border. + public ChartAreaStyle(Color fillColor, Color strokeColor, int strokeThickness) { FillColor = fillColor; StrokeColor = strokeColor; - Width = width; + StrokeThickness = strokeThickness; } /// - /// Gets the area fill color. + /// Gets or sets the area fill color. /// - public Color FillColor { get; private set; } + public Color FillColor { get; set; } /// - /// Gets the area stroke color. + /// Gets or sets the area stroke color. /// - public Color StrokeColor { get; private set; } + public Color StrokeColor { get; set; } /// - /// Gets the area border width. + /// Gets or sets the area border stroke thickness. /// - public int Width { get; private set; } + public int StrokeThickness { get; set; } } } \ No newline at end of file Index: Core/Components/src/Core.Components.OxyPlot/Converter/ChartAreaDataConverter.cs =================================================================== diff -u -rc860e9ad4a6092ccf675c6b268697b2e9ab58461 -rb1e70d9d071a519e61adce4f5efd3a941a3ea579 --- Core/Components/src/Core.Components.OxyPlot/Converter/ChartAreaDataConverter.cs (.../ChartAreaDataConverter.cs) (revision c860e9ad4a6092ccf675c6b268697b2e9ab58461) +++ Core/Components/src/Core.Components.OxyPlot/Converter/ChartAreaDataConverter.cs (.../ChartAreaDataConverter.cs) (revision b1e70d9d071a519e61adce4f5efd3a941a3ea579) @@ -48,7 +48,7 @@ { series.Fill = ChartDataHelper.Convert(data.Style.FillColor); series.Color = ChartDataHelper.Convert(data.Style.StrokeColor); - series.StrokeThickness = data.Style.Width; + series.StrokeThickness = data.Style.StrokeThickness; } } } \ No newline at end of file Index: Core/Components/src/Core.Components.OxyPlot/Converter/ChartMultipleAreaDataConverter.cs =================================================================== diff -u -r2d704a409d762d8fb54d2f8be285246861019ea0 -rb1e70d9d071a519e61adce4f5efd3a941a3ea579 --- Core/Components/src/Core.Components.OxyPlot/Converter/ChartMultipleAreaDataConverter.cs (.../ChartMultipleAreaDataConverter.cs) (revision 2d704a409d762d8fb54d2f8be285246861019ea0) +++ Core/Components/src/Core.Components.OxyPlot/Converter/ChartMultipleAreaDataConverter.cs (.../ChartMultipleAreaDataConverter.cs) (revision b1e70d9d071a519e61adce4f5efd3a941a3ea579) @@ -48,7 +48,7 @@ { series.Fill = ChartDataHelper.Convert(data.Style.FillColor); series.Color = ChartDataHelper.Convert(data.Style.StrokeColor); - series.StrokeThickness = data.Style.Width; + series.StrokeThickness = data.Style.StrokeThickness; } } } Index: Core/Components/test/Core.Components.Charting.Test/Data/ChartAreaDataTest.cs =================================================================== diff -u -rc860e9ad4a6092ccf675c6b268697b2e9ab58461 -rb1e70d9d071a519e61adce4f5efd3a941a3ea579 --- Core/Components/test/Core.Components.Charting.Test/Data/ChartAreaDataTest.cs (.../ChartAreaDataTest.cs) (revision c860e9ad4a6092ccf675c6b268697b2e9ab58461) +++ Core/Components/test/Core.Components.Charting.Test/Data/ChartAreaDataTest.cs (.../ChartAreaDataTest.cs) (revision b1e70d9d071a519e61adce4f5efd3a941a3ea579) @@ -43,7 +43,7 @@ Assert.IsInstanceOf(data); Assert.AreEqual(Color.Gray, data.Style.FillColor); Assert.AreEqual(Color.Black, data.Style.StrokeColor); - Assert.AreEqual(2, data.Style.Width); + Assert.AreEqual(2, data.Style.StrokeThickness); } [Test] Index: Core/Components/test/Core.Components.Charting.Test/Styles/ChartAreaStyleTest.cs =================================================================== diff -u -r67284323e2785c651633d9c52049ba12a9c70e6a -rb1e70d9d071a519e61adce4f5efd3a941a3ea579 --- Core/Components/test/Core.Components.Charting.Test/Styles/ChartAreaStyleTest.cs (.../ChartAreaStyleTest.cs) (revision 67284323e2785c651633d9c52049ba12a9c70e6a) +++ Core/Components/test/Core.Components.Charting.Test/Styles/ChartAreaStyleTest.cs (.../ChartAreaStyleTest.cs) (revision b1e70d9d071a519e61adce4f5efd3a941a3ea579) @@ -42,7 +42,7 @@ // Assert Assert.AreEqual(fillColor, areaStyle.FillColor); Assert.AreEqual(strokeColor, areaStyle.StrokeColor); - Assert.AreEqual(width, areaStyle.Width); + Assert.AreEqual(width, areaStyle.StrokeThickness); } } } \ No newline at end of file Index: Core/Plugins/src/Core.Plugins.Chart/Properties/Resources.Designer.cs =================================================================== diff -u -rad826b05d2319d815cfe36c0359b981311edc1c3 -rb1e70d9d071a519e61adce4f5efd3a941a3ea579 --- Core/Plugins/src/Core.Plugins.Chart/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision ad826b05d2319d815cfe36c0359b981311edc1c3) +++ Core/Plugins/src/Core.Plugins.Chart/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision b1e70d9d071a519e61adce4f5efd3a941a3ea579) @@ -110,6 +110,33 @@ } /// + /// Looks up a localized string similar to De kleur van de vlakken waarmee deze gegevensreeks wordt weergegeven.. + /// + public static string ChartAreaData_FillColor_Description { + get { + return ResourceManager.GetString("ChartAreaData_FillColor_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De kleur van de lijn van de vlakken waarmee deze gegevensreeks wordt weergegeven.. + /// + public static string ChartAreaData_StrokeColor_Description { + get { + return ResourceManager.GetString("ChartAreaData_StrokeColor_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De dikte van de lijn van de vlakken waarmee deze gegevensreeks wordt weergegeven.. + /// + public static string ChartAreaData_StrokeThickness_Description { + get { + return ResourceManager.GetString("ChartAreaData_StrokeThickness_Description", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Kleur. /// public static string ChartData_Color_DisplayName { Index: Core/Plugins/src/Core.Plugins.Chart/Properties/Resources.resx =================================================================== diff -u -rad826b05d2319d815cfe36c0359b981311edc1c3 -rb1e70d9d071a519e61adce4f5efd3a941a3ea579 --- Core/Plugins/src/Core.Plugins.Chart/Properties/Resources.resx (.../Resources.resx) (revision ad826b05d2319d815cfe36c0359b981311edc1c3) +++ Core/Plugins/src/Core.Plugins.Chart/Properties/Resources.resx (.../Resources.resx) (revision b1e70d9d071a519e61adce4f5efd3a941a3ea579) @@ -268,4 +268,13 @@ De dikte van de lijnen waarmee deze gegevensreeks wordt weergegeven. + + De kleur van de vlakken waarmee deze gegevensreeks wordt weergegeven. + + + De kleur van de lijn van de vlakken waarmee deze gegevensreeks wordt weergegeven. + + + De dikte van de lijn van de vlakken waarmee deze gegevensreeks wordt weergegeven. + \ No newline at end of file Index: Core/Plugins/src/Core.Plugins.Chart/PropertyClasses/ChartAreaDataProperties.cs =================================================================== diff -u -rb4535eabcb8d131b00bde746e21ef201b1ba4e80 -rb1e70d9d071a519e61adce4f5efd3a941a3ea579 --- Core/Plugins/src/Core.Plugins.Chart/PropertyClasses/ChartAreaDataProperties.cs (.../ChartAreaDataProperties.cs) (revision b4535eabcb8d131b00bde746e21ef201b1ba4e80) +++ Core/Plugins/src/Core.Plugins.Chart/PropertyClasses/ChartAreaDataProperties.cs (.../ChartAreaDataProperties.cs) (revision b1e70d9d071a519e61adce4f5efd3a941a3ea579) @@ -19,6 +19,13 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Design; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.Converters; +using Core.Common.Gui.UITypeEditors; +using Core.Common.Utils.Attributes; using Core.Components.Charting.Data; using Core.Plugins.Chart.Properties; @@ -29,6 +36,61 @@ /// public class ChartAreaDataProperties : ChartDataProperties { + [PropertyOrder(5)] + [ResourcesCategory(typeof(Resources), nameof(Resources.Categories_Styling))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.ChartData_Color_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.ChartAreaData_FillColor_Description))] + [Editor(typeof(ColorEditor), typeof(UITypeEditor))] + [TypeConverter(typeof(ColorTypeConverter))] + public Color FillColor + { + get + { + return data.Style.FillColor; + } + set + { + data.Style.FillColor = value; + data.NotifyObservers(); + } + } + + [PropertyOrder(6)] + [ResourcesCategory(typeof(Resources), nameof(Resources.Categories_Styling))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.ChartData_StrokeColor_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.ChartAreaData_StrokeColor_Description))] + [Editor(typeof(ColorEditor), typeof(UITypeEditor))] + [TypeConverter(typeof(ColorTypeConverter))] + public Color StrokeColor + { + get + { + return data.Style.StrokeColor; + } + set + { + data.Style.StrokeColor = value; + data.NotifyObservers(); + } + } + + [PropertyOrder(7)] + [ResourcesCategory(typeof(Resources), nameof(Resources.Categories_Styling))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.ChartData_StrokeThickness_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.ChartAreaData_StrokeThickness_Description))] + public int StrokeThickness + { + get + { + return data.Style.StrokeThickness; + } + set + { + data.Style.StrokeThickness = value; + data.NotifyObservers(); + } + } + public override string Type { get Index: Core/Plugins/test/Core.Plugins.Chart.Test/PropertyClasses/ChartAreaDataPropertiesTest.cs =================================================================== diff -u -rb4535eabcb8d131b00bde746e21ef201b1ba4e80 -rb1e70d9d071a519e61adce4f5efd3a941a3ea579 --- Core/Plugins/test/Core.Plugins.Chart.Test/PropertyClasses/ChartAreaDataPropertiesTest.cs (.../ChartAreaDataPropertiesTest.cs) (revision b4535eabcb8d131b00bde746e21ef201b1ba4e80) +++ Core/Plugins/test/Core.Plugins.Chart.Test/PropertyClasses/ChartAreaDataPropertiesTest.cs (.../ChartAreaDataPropertiesTest.cs) (revision b1e70d9d071a519e61adce4f5efd3a941a3ea579) @@ -19,15 +19,26 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System.ComponentModel; +using System.Drawing; +using Core.Common.Base; +using Core.Common.Gui.Converters; +using Core.Common.TestUtil; using Core.Components.Charting.Data; +using Core.Components.Charting.Styles; using Core.Plugins.Chart.PropertyClasses; using NUnit.Framework; +using Rhino.Mocks; namespace Core.Plugins.Chart.Test.PropertyClasses { [TestFixture] public class ChartAreaDataPropertiesTest { + private const int fillColorPropertyIndex = 3; + private const int strokeColorPropertyIndex = 4; + private const int strokeThicknessPropertyIndex = 5; + [Test] public void Constructor_ExpectedValues() { @@ -39,5 +50,97 @@ Assert.IsNull(properties.Data); Assert.AreEqual("Vlakken", properties.Type); } + + [Test] + public void Constructor_Always_PropertiesHaveExpectedAttributesValues() + { + // Setup + var chartAreaData = new ChartAreaData("Test"); + + // Call + var properties = new ChartAreaDataProperties + { + Data = chartAreaData + }; + + // Assert + PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); + Assert.AreEqual(6, dynamicProperties.Count); + + PropertyDescriptor colorProperty = dynamicProperties[fillColorPropertyIndex]; + Assert.IsInstanceOf(colorProperty.Converter); + PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(colorProperty, + "Stijl", + "Kleur", + "De kleur van de vlakken waarmee deze gegevensreeks wordt weergegeven."); + + PropertyDescriptor widthProperty = dynamicProperties[strokeColorPropertyIndex]; + Assert.IsInstanceOf(colorProperty.Converter); + PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(widthProperty, + "Stijl", + "Lijnkleur", + "De kleur van de lijn van de vlakken waarmee deze gegevensreeks wordt weergegeven."); + + PropertyDescriptor styleProperty = dynamicProperties[strokeThicknessPropertyIndex]; + PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(styleProperty, + "Stijl", + "Lijndikte", + "De dikte van de lijn van de vlakken waarmee deze gegevensreeks wordt weergegeven."); + } + + [Test] + public void Data_SetNewChartAreaDataInstance_ReturnCorrectPropertyValues() + { + // Setup + Color fillColor = Color.Aqua; + Color strokeColor = Color.Bisque; + const int strokeThickness = 4; + + var chartAreaData = new ChartAreaData("Test", new ChartAreaStyle(fillColor, strokeColor, strokeThickness)); + var properties = new ChartAreaDataProperties(); + + // Call + properties.Data = chartAreaData; + + // Assert + Assert.AreEqual(fillColor, properties.FillColor); + Assert.AreEqual(strokeColor, properties.StrokeColor); + Assert.AreEqual(strokeThickness, properties.StrokeThickness); + } + + [Test] + public void SetProperties_IndividualProperties_UpdateDataAndNotifyObservers() + { + // Setup + const int numberOfChangedProperties = 3; + var mocks = new MockRepository(); + var observerMock = mocks.StrictMock(); + observerMock.Expect(o => o.UpdateObserver()).Repeat.Times(numberOfChangedProperties); + mocks.ReplayAll(); + + var chartAreaData = new ChartAreaData("Test", new ChartAreaStyle(Color.AliceBlue, Color.Blue, 3)); + + chartAreaData.Attach(observerMock); + + var properties = new ChartAreaDataProperties + { + Data = chartAreaData + }; + + Color newFillColor = Color.Blue; + Color newStrokeColor = Color.Red; + const int newStrokeThickness = 6; + + // Call + properties.FillColor = newFillColor; + properties.StrokeColor = newStrokeColor; + properties.StrokeThickness = newStrokeThickness; + + // Assert + Assert.AreEqual(newFillColor, chartAreaData.Style.FillColor); + Assert.AreEqual(newStrokeColor, chartAreaData.Style.StrokeColor); + Assert.AreEqual(newStrokeThickness, chartAreaData.Style.StrokeThickness); + mocks.VerifyAll(); + } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Factories/MacroStabilityInwardsChartDataFactoryTest.cs =================================================================== diff -u -rad826b05d2319d815cfe36c0359b981311edc1c3 -rb1e70d9d071a519e61adce4f5efd3a941a3ea579 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Factories/MacroStabilityInwardsChartDataFactoryTest.cs (.../MacroStabilityInwardsChartDataFactoryTest.cs) (revision ad826b05d2319d815cfe36c0359b981311edc1c3) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Factories/MacroStabilityInwardsChartDataFactoryTest.cs (.../MacroStabilityInwardsChartDataFactoryTest.cs) (revision b1e70d9d071a519e61adce4f5efd3a941a3ea579) @@ -197,7 +197,7 @@ { Assert.AreEqual(fillColor, areaStyle.FillColor); Assert.AreEqual(strokeColor, areaStyle.StrokeColor); - Assert.AreEqual(width, areaStyle.Width); + Assert.AreEqual(width, areaStyle.StrokeThickness); } } } \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Factories/PipingChartDataFactoryTest.cs =================================================================== diff -u -rad826b05d2319d815cfe36c0359b981311edc1c3 -rb1e70d9d071a519e61adce4f5efd3a941a3ea579 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Factories/PipingChartDataFactoryTest.cs (.../PipingChartDataFactoryTest.cs) (revision ad826b05d2319d815cfe36c0359b981311edc1c3) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Factories/PipingChartDataFactoryTest.cs (.../PipingChartDataFactoryTest.cs) (revision b1e70d9d071a519e61adce4f5efd3a941a3ea579) @@ -302,7 +302,7 @@ { Assert.AreEqual(fillColor, areaStyle.FillColor); Assert.AreEqual(strokeColor, areaStyle.StrokeColor); - Assert.AreEqual(width, areaStyle.Width); + Assert.AreEqual(width, areaStyle.StrokeThickness); } } } \ No newline at end of file