Index: Core/Plugins/src/Core.Plugins.Map/PropertyClasses/MapLineDataProperties.cs =================================================================== diff -u -rca77db5948e6c622ea1fb3092917341ba1234711 -r85bd9b0f9d23da455c7445094c7ce192c56d64b8 --- Core/Plugins/src/Core.Plugins.Map/PropertyClasses/MapLineDataProperties.cs (.../MapLineDataProperties.cs) (revision ca77db5948e6c622ea1fb3092917341ba1234711) +++ Core/Plugins/src/Core.Plugins.Map/PropertyClasses/MapLineDataProperties.cs (.../MapLineDataProperties.cs) (revision 85bd9b0f9d23da455c7445094c7ce192c56d64b8) @@ -32,8 +32,9 @@ /// public class MapLineDataProperties : ObjectProperties { - private const int namePropertyIndex = 1; - private const int typePropertyIndex = 2; + private const int namePropertyIndex = 0; + private const int typePropertyIndex = 1; + private const int showLabelsPropertyIndex = 2; [PropertyOrder(namePropertyIndex)] [ResourcesCategory(typeof(Resources), "Categories_General")] @@ -58,5 +59,22 @@ return Resources.MapData_Type_Lines; } } + + [PropertyOrder(showLabelsPropertyIndex)] + [ResourcesCategory(typeof(Resources), "Categories_Label")] + [ResourcesDisplayName(typeof(Resources), "MapData_ShowLabels_DisplayName")] + [ResourcesDescription(typeof(Resources), "MapData_ShowLabels_Description")] + public bool ShowLabels + { + get + { + return data.ShowLabels; + } + set + { + data.ShowLabels = value; + data.NotifyObservers(); + } + } } } \ No newline at end of file Index: Core/Plugins/src/Core.Plugins.Map/PropertyClasses/MapPointDataProperties.cs =================================================================== diff -u -rd16986d8086bbf899b59cd2db438f9522d5dd290 -r85bd9b0f9d23da455c7445094c7ce192c56d64b8 --- Core/Plugins/src/Core.Plugins.Map/PropertyClasses/MapPointDataProperties.cs (.../MapPointDataProperties.cs) (revision d16986d8086bbf899b59cd2db438f9522d5dd290) +++ Core/Plugins/src/Core.Plugins.Map/PropertyClasses/MapPointDataProperties.cs (.../MapPointDataProperties.cs) (revision 85bd9b0f9d23da455c7445094c7ce192c56d64b8) @@ -33,7 +33,8 @@ public class MapPointDataProperties : ObjectProperties { private const int namePropertyIndex = 0; - private const int showLabelsPropertyIndex = 1; + private const int typePropertyIndex = 1; + private const int showLabelsPropertyIndex = 2; [PropertyOrder(namePropertyIndex)] [ResourcesCategory(typeof(Resources), "Categories_General")] @@ -47,6 +48,18 @@ } } + [PropertyOrder(typePropertyIndex)] + [ResourcesCategory(typeof(Resources), "Categories_General")] + [ResourcesDisplayName(typeof(Resources), "MapData_Type_DisplayName")] + [ResourcesDescription(typeof(Resources), "MapData_Type_Description")] + public string Type + { + get + { + return Resources.MapData_Type_Points; + } + } + [PropertyOrder(showLabelsPropertyIndex)] [ResourcesCategory(typeof(Resources), "Categories_Label")] [ResourcesDisplayName(typeof(Resources), "MapData_ShowLabels_DisplayName")] Index: Core/Plugins/src/Core.Plugins.Map/PropertyClasses/MapPolygonDataProperties.cs =================================================================== diff -u -rca77db5948e6c622ea1fb3092917341ba1234711 -r85bd9b0f9d23da455c7445094c7ce192c56d64b8 --- Core/Plugins/src/Core.Plugins.Map/PropertyClasses/MapPolygonDataProperties.cs (.../MapPolygonDataProperties.cs) (revision ca77db5948e6c622ea1fb3092917341ba1234711) +++ Core/Plugins/src/Core.Plugins.Map/PropertyClasses/MapPolygonDataProperties.cs (.../MapPolygonDataProperties.cs) (revision 85bd9b0f9d23da455c7445094c7ce192c56d64b8) @@ -32,8 +32,9 @@ /// public class MapPolygonDataProperties : ObjectProperties { - private const int namePropertyIndex = 1; - private const int typePropertyIndex = 2; + private const int namePropertyIndex = 0; + private const int typePropertyIndex = 1; + private const int showLabelsPropertyIndex = 2; [PropertyOrder(namePropertyIndex)] [ResourcesCategory(typeof(Resources), "Categories_General")] @@ -58,5 +59,22 @@ return Resources.MapData_Type_Polygons; } } + + [PropertyOrder(showLabelsPropertyIndex)] + [ResourcesCategory(typeof(Resources), "Categories_Label")] + [ResourcesDisplayName(typeof(Resources), "MapData_ShowLabels_DisplayName")] + [ResourcesDescription(typeof(Resources), "MapData_ShowLabels_Description")] + public bool ShowLabels + { + get + { + return data.ShowLabels; + } + set + { + data.ShowLabels = value; + data.NotifyObservers(); + } + } } } \ No newline at end of file Index: Core/Plugins/test/Core.Plugins.Map.Test/Core.Plugins.Map.Test.csproj =================================================================== diff -u -rd16986d8086bbf899b59cd2db438f9522d5dd290 -r85bd9b0f9d23da455c7445094c7ce192c56d64b8 --- Core/Plugins/test/Core.Plugins.Map.Test/Core.Plugins.Map.Test.csproj (.../Core.Plugins.Map.Test.csproj) (revision d16986d8086bbf899b59cd2db438f9522d5dd290) +++ Core/Plugins/test/Core.Plugins.Map.Test/Core.Plugins.Map.Test.csproj (.../Core.Plugins.Map.Test.csproj) (revision 85bd9b0f9d23da455c7445094c7ce192c56d64b8) @@ -77,7 +77,9 @@ + + Component Index: Core/Plugins/test/Core.Plugins.Map.Test/PropertyClasses/MapLineDataPropertiesTest.cs =================================================================== diff -u --- Core/Plugins/test/Core.Plugins.Map.Test/PropertyClasses/MapLineDataPropertiesTest.cs (revision 0) +++ Core/Plugins/test/Core.Plugins.Map.Test/PropertyClasses/MapLineDataPropertiesTest.cs (revision 85bd9b0f9d23da455c7445094c7ce192c56d64b8) @@ -0,0 +1,136 @@ +// Copyright (C) Stichting Deltares 2016. 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.ComponentModel; +using Core.Common.Base; +using Core.Common.Gui.PropertyBag; +using Core.Common.TestUtil; +using Core.Components.Gis.Data; +using Core.Plugins.Map.PropertyClasses; +using NUnit.Framework; +using Rhino.Mocks; + +namespace Core.Plugins.Map.Test.PropertyClasses +{ + [TestFixture] + public class MapLineDataPropertiesTest + { + private const int namePropertyIndex = 0; + private const int typePropertyIndex = 1; + private const int showLabelsPropertyIndex = 2; + + [Test] + public void Constructor_ExpectedValues() + { + // Call + var properties = new MapLineDataProperties(); + + // Assert + Assert.IsInstanceOf>(properties); + Assert.IsNull(properties.Data); + } + + [Test] + public void Data_SetNewMapLineDataInstance_ReturnCorrectPropertyValues() + { + // Setup + MapLineData mapLineData = new MapLineData("Test"); + var properties = new MapLineDataProperties(); + + // Call + properties.Data = mapLineData; + + // Assert + Assert.AreEqual(mapLineData.Name, properties.Name); + Assert.AreEqual("Lijnen", properties.Type); + Assert.AreEqual(mapLineData.ShowLabels, properties.ShowLabels); + } + + [Test] + public void Constructor_Always_PropertiesHaveExpectedAttributesValues() + { + // Setup + MapLineData mapLineData = new MapLineData("Test"); + + // Call + var properties = new MapLineDataProperties + { + Data = mapLineData + }; + + // Assert + PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); + Assert.AreEqual(3, dynamicProperties.Count); + + const string generalCategory = "Algemeen"; + const string labelCategory = "Label"; + + PropertyDescriptor nameProperty = dynamicProperties[namePropertyIndex]; + PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(nameProperty, + generalCategory, + "Naam", + "De naam van de kaartlaag.", + true); + + PropertyDescriptor typeProperty = dynamicProperties[typePropertyIndex]; + PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(typeProperty, + generalCategory, + "Type", + "Type van de data dat wordt getoond op de kaartlaag.", + true); + + PropertyDescriptor showlabelsProperty = dynamicProperties[showLabelsPropertyIndex]; + PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(showlabelsProperty, + labelCategory, + "Weergeven", + "Geeft aan of op deze kaartlaag labels moeten worden weergegeven."); + } + + [Test] + public void SetProperties_IndividualProperties_UpdateDataAndNotifyObservers() + { + // Setup + var mocks = new MockRepository(); + var observerMock = mocks.StrictMock(); + observerMock.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); + + MapLineData mapLineData = new MapLineData("Test") + { + ShowLabels = true + }; + + mapLineData.Attach(observerMock); + + var properties = new MapLineDataProperties + { + Data = mapLineData + }; + + // Call + properties.ShowLabels = false; + + // Assert + Assert.AreEqual(properties.ShowLabels, mapLineData.ShowLabels); + mocks.VerifyAll(); + } + } +} \ No newline at end of file Index: Core/Plugins/test/Core.Plugins.Map.Test/PropertyClasses/MapPointDataPropertiesTest.cs =================================================================== diff -u -rd16986d8086bbf899b59cd2db438f9522d5dd290 -r85bd9b0f9d23da455c7445094c7ce192c56d64b8 --- Core/Plugins/test/Core.Plugins.Map.Test/PropertyClasses/MapPointDataPropertiesTest.cs (.../MapPointDataPropertiesTest.cs) (revision d16986d8086bbf899b59cd2db438f9522d5dd290) +++ Core/Plugins/test/Core.Plugins.Map.Test/PropertyClasses/MapPointDataPropertiesTest.cs (.../MapPointDataPropertiesTest.cs) (revision 85bd9b0f9d23da455c7445094c7ce192c56d64b8) @@ -34,7 +34,8 @@ public class MapPointDataPropertiesTest { private const int namePropertyIndex = 0; - private const int showLabelsPropertyIndex = 1; + private const int typePropertyIndex = 1; + private const int showLabelsPropertyIndex = 2; [Test] public void Constructor_ExpectedValues() @@ -59,6 +60,7 @@ // Assert Assert.AreEqual(mapPointData.Name, properties.Name); + Assert.AreEqual("Punten", properties.Type); Assert.AreEqual(mapPointData.ShowLabels, properties.ShowLabels); } @@ -67,7 +69,7 @@ { // Setup MapPointData mapPointData = new MapPointData("Test"); - + // Call var properties = new MapPointDataProperties { @@ -76,7 +78,7 @@ // Assert PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); - Assert.AreEqual(2, dynamicProperties.Count); + Assert.AreEqual(3, dynamicProperties.Count); const string generalCategory = "Algemeen"; const string labelCategory = "Label"; @@ -88,6 +90,13 @@ "De naam van de kaartlaag.", true); + PropertyDescriptor typeProperty = dynamicProperties[typePropertyIndex]; + PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(typeProperty, + generalCategory, + "Type", + "Type van de data dat wordt getoond op de kaartlaag.", + true); + PropertyDescriptor showlabelsProperty = dynamicProperties[showLabelsPropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(showlabelsProperty, labelCategory, @@ -115,7 +124,7 @@ { Data = mapPointData }; - + // Call properties.ShowLabels = false; Index: Core/Plugins/test/Core.Plugins.Map.Test/PropertyClasses/MapPolygonDataPropertiesTest.cs =================================================================== diff -u --- Core/Plugins/test/Core.Plugins.Map.Test/PropertyClasses/MapPolygonDataPropertiesTest.cs (revision 0) +++ Core/Plugins/test/Core.Plugins.Map.Test/PropertyClasses/MapPolygonDataPropertiesTest.cs (revision 85bd9b0f9d23da455c7445094c7ce192c56d64b8) @@ -0,0 +1,136 @@ +// Copyright (C) Stichting Deltares 2016. 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.ComponentModel; +using Core.Common.Base; +using Core.Common.Gui.PropertyBag; +using Core.Common.TestUtil; +using Core.Components.Gis.Data; +using Core.Plugins.Map.PropertyClasses; +using NUnit.Framework; +using Rhino.Mocks; + +namespace Core.Plugins.Map.Test.PropertyClasses +{ + [TestFixture] + public class MapPolygonDataPropertiesTest + { + private const int namePropertyIndex = 0; + private const int typePropertyIndex = 1; + private const int showLabelsPropertyIndex = 2; + + [Test] + public void Constructor_ExpectedValues() + { + // Call + var properties = new MapPolygonDataProperties(); + + // Assert + Assert.IsInstanceOf>(properties); + Assert.IsNull(properties.Data); + } + + [Test] + public void Data_SetNewMapPolygonDataInstance_ReturnCorrectPropertyValues() + { + // Setup + MapPolygonData mapPolygonData = new MapPolygonData("Test"); + var properties = new MapPolygonDataProperties(); + + // Call + properties.Data = mapPolygonData; + + // Assert + Assert.AreEqual(mapPolygonData.Name, properties.Name); + Assert.AreEqual("Polygonen", properties.Type); + Assert.AreEqual(mapPolygonData.ShowLabels, properties.ShowLabels); + } + + [Test] + public void Constructor_Always_PropertiesHaveExpectedAttributesValues() + { + // Setup + MapPolygonData mapPolygonData = new MapPolygonData("Test"); + + // Call + var properties = new MapPolygonDataProperties + { + Data = mapPolygonData + }; + + // Assert + PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); + Assert.AreEqual(3, dynamicProperties.Count); + + const string generalCategory = "Algemeen"; + const string labelCategory = "Label"; + + PropertyDescriptor nameProperty = dynamicProperties[namePropertyIndex]; + PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(nameProperty, + generalCategory, + "Naam", + "De naam van de kaartlaag.", + true); + + PropertyDescriptor typeProperty = dynamicProperties[typePropertyIndex]; + PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(typeProperty, + generalCategory, + "Type", + "Type van de data dat wordt getoond op de kaartlaag.", + true); + + PropertyDescriptor showlabelsProperty = dynamicProperties[showLabelsPropertyIndex]; + PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(showlabelsProperty, + labelCategory, + "Weergeven", + "Geeft aan of op deze kaartlaag labels moeten worden weergegeven."); + } + + [Test] + public void SetProperties_IndividualProperties_UpdateDataAndNotifyObservers() + { + // Setup + var mocks = new MockRepository(); + var observerMock = mocks.StrictMock(); + observerMock.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); + + MapPolygonData mapPolygonData = new MapPolygonData("Test") + { + ShowLabels = true + }; + + mapPolygonData.Attach(observerMock); + + var properties = new MapPolygonDataProperties + { + Data = mapPolygonData + }; + + // Call + properties.ShowLabels = false; + + // Assert + Assert.AreEqual(properties.ShowLabels, mapPolygonData.ShowLabels); + mocks.VerifyAll(); + } + } +} \ No newline at end of file