Index: Riskeer/Common/src/Riskeer.Common.Forms/Factories/MapThemeFactory.cs =================================================================== diff -u -r96ccefa48aa5c97c949f7a7858fcb4d3dc727a3a -rc36957d0b7c7da0c4e5d5c0bb5e186b49d493d97 --- Riskeer/Common/src/Riskeer.Common.Forms/Factories/MapThemeFactory.cs (.../MapThemeFactory.cs) (revision 96ccefa48aa5c97c949f7a7858fcb4d3dc727a3a) +++ Riskeer/Common/src/Riskeer.Common.Forms/Factories/MapThemeFactory.cs (.../MapThemeFactory.cs) (revision c36957d0b7c7da0c4e5d5c0bb5e186b49d493d97) @@ -19,11 +19,15 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; +using System.Collections.Generic; using System.Drawing; using Core.Common.Util; using Core.Components.Gis.Style; using Core.Components.Gis.Theme; +using Riskeer.AssemblyTool.Data; using Riskeer.AssemblyTool.Forms; +using Riskeer.Common.Forms.Helpers; using Riskeer.Common.Forms.Properties; namespace Riskeer.Common.Forms.Factories @@ -37,26 +41,27 @@ private const LineDashStyle lineDashStyle = LineDashStyle.Solid; /// - /// Creates a based on the values of . + /// Creates a based on the values of . /// /// The created . + /// Thrown when + /// is a valid value, but unsupported. public static MapTheme CreateDisplayFailureMechanismAssemblyCategoryGroupMapTheme() { - return new MapTheme(Resources.AssemblyCategory_Group_DisplayName, new[] + var categoryThemes = new List(); + + foreach (FailureMechanismSectionAssemblyGroup enumValue in Enum.GetValues(typeof(FailureMechanismSectionAssemblyGroup))) { - CreateCategoryTheme(Color.FromArgb(255, 0, 255, 0), DisplayFailureMechanismSectionAssemblyCategoryGroup.Iv), - CreateCategoryTheme(Color.FromArgb(255, 118, 147, 60), DisplayFailureMechanismSectionAssemblyCategoryGroup.IIv), - CreateCategoryTheme(Color.FromArgb(255, 255, 255, 0), DisplayFailureMechanismSectionAssemblyCategoryGroup.IIIv), - CreateCategoryTheme(Color.FromArgb(255, 204, 192, 218), DisplayFailureMechanismSectionAssemblyCategoryGroup.IVv), - CreateCategoryTheme(Color.FromArgb(255, 255, 153, 0), DisplayFailureMechanismSectionAssemblyCategoryGroup.Vv), - CreateCategoryTheme(Color.FromArgb(255, 255, 0, 0), DisplayFailureMechanismSectionAssemblyCategoryGroup.VIv), - CreateCategoryTheme(Color.FromArgb(255, 255, 255, 255), DisplayFailureMechanismSectionAssemblyCategoryGroup.VIIv), - CreateCategoryTheme(Color.FromArgb(0, 0, 0, 0), DisplayFailureMechanismSectionAssemblyCategoryGroup.NotApplicable), - CreateCategoryTheme(Color.FromArgb(0, 0, 0, 0), DisplayFailureMechanismSectionAssemblyCategoryGroup.None) - }); + LineCategoryTheme theme = CreateCategoryTheme(AssemblyGroupColorHelper.GetFailureMechanismSectionAssemblyCategoryGroupColor(enumValue), + DisplayFailureMechanismSectionAssemblyGroupConverter.Convert(enumValue)); + + categoryThemes.Add(theme); + } + + return new MapTheme(Resources.AssemblyGroup_DisplayName, categoryThemes); } - private static LineCategoryTheme CreateCategoryTheme(Color color, DisplayFailureMechanismSectionAssemblyCategoryGroup categoryGroup) + private static LineCategoryTheme CreateCategoryTheme(Color color, DisplayFailureMechanismSectionAssemblyGroup categoryGroup) { var lineStyle = new LineStyle { @@ -68,10 +73,10 @@ return new LineCategoryTheme(CreateCriterion(categoryGroup), lineStyle); } - private static ValueCriterion CreateCriterion(DisplayFailureMechanismSectionAssemblyCategoryGroup category) + private static ValueCriterion CreateCriterion(DisplayFailureMechanismSectionAssemblyGroup category) { return new ValueCriterion(ValueCriterionOperator.EqualValue, - new EnumDisplayWrapper(category).DisplayName); + new EnumDisplayWrapper(category).DisplayName); } } } \ No newline at end of file Index: Riskeer/Common/test/Riskeer.Common.Forms.Test/Factories/MapThemeFactoryTest.cs =================================================================== diff -u -r96ccefa48aa5c97c949f7a7858fcb4d3dc727a3a -rc36957d0b7c7da0c4e5d5c0bb5e186b49d493d97 --- Riskeer/Common/test/Riskeer.Common.Forms.Test/Factories/MapThemeFactoryTest.cs (.../MapThemeFactoryTest.cs) (revision 96ccefa48aa5c97c949f7a7858fcb4d3dc727a3a) +++ Riskeer/Common/test/Riskeer.Common.Forms.Test/Factories/MapThemeFactoryTest.cs (.../MapThemeFactoryTest.cs) (revision c36957d0b7c7da0c4e5d5c0bb5e186b49d493d97) @@ -36,7 +36,7 @@ MapTheme mapTheme = MapThemeFactory.CreateDisplayFailureMechanismAssemblyCategoryGroupMapTheme(); // Assert - MapThemeTestHelper.AssertDisplayFailureMechanismSectionAssemblyCategoryGroupMapTheme(mapTheme); + MapThemeTestHelper.AssertDisplayFailureMechanismSectionAssemblyGroupMapTheme(mapTheme); } } } \ No newline at end of file Index: Riskeer/Common/test/Riskeer.Common.Forms.TestUtil/MapThemeTestHelper.cs =================================================================== diff -u -r96ccefa48aa5c97c949f7a7858fcb4d3dc727a3a -rc36957d0b7c7da0c4e5d5c0bb5e186b49d493d97 --- Riskeer/Common/test/Riskeer.Common.Forms.TestUtil/MapThemeTestHelper.cs (.../MapThemeTestHelper.cs) (revision 96ccefa48aa5c97c949f7a7858fcb4d3dc727a3a) +++ Riskeer/Common/test/Riskeer.Common.Forms.TestUtil/MapThemeTestHelper.cs (.../MapThemeTestHelper.cs) (revision c36957d0b7c7da0c4e5d5c0bb5e186b49d493d97) @@ -24,6 +24,7 @@ using Core.Components.Gis.Style; using Core.Components.Gis.Theme; using NUnit.Framework; +using Riskeer.AssemblyTool.Data; using Riskeer.AssemblyTool.Forms; namespace Riskeer.Common.Forms.TestUtil @@ -58,6 +59,33 @@ AssertCategoryTheme("-", Color.FromArgb(0, 0, 0, 0), theme.CategoryThemes.ElementAt(7)); AssertCategoryTheme(string.Empty, Color.FromArgb(0, 0, 0, 0), theme.CategoryThemes.ElementAt(8)); } + + /// + /// Asserts whether the is configured for category values + /// of type . + /// + /// The to assert. + /// Thrown when: + /// + /// does not have the expected attribute name it categorizes its data on. + /// does not have the expected number of criteria as themes. + /// does not have the expected categorical criteria as themes. + /// + public static void AssertDisplayFailureMechanismSectionAssemblyGroupMapTheme(MapTheme theme) + { + Assert.AreEqual("Duidingsklasse", theme.AttributeName); + Assert.AreEqual(10, theme.CategoryThemes.Count()); + AssertCategoryTheme("ND", Color.FromArgb(255, 192, 192, 192), theme.CategoryThemes.ElementAt(0)); + AssertCategoryTheme("+III", Color.FromArgb(255, 34, 139, 34), theme.CategoryThemes.ElementAt(1)); + AssertCategoryTheme("+II", Color.FromArgb(255, 146, 208, 80), theme.CategoryThemes.ElementAt(2)); + AssertCategoryTheme("+I", Color.FromArgb(255, 198, 224, 180), theme.CategoryThemes.ElementAt(3)); + AssertCategoryTheme("0", Color.FromArgb(255, 255, 255, 0), theme.CategoryThemes.ElementAt(4)); + AssertCategoryTheme("-I", Color.FromArgb(255, 255, 165, 0), theme.CategoryThemes.ElementAt(5)); + AssertCategoryTheme("-II", Color.FromArgb(255, 255, 0, 0), theme.CategoryThemes.ElementAt(6)); + AssertCategoryTheme("-III", Color.FromArgb(255, 178, 34, 34), theme.CategoryThemes.ElementAt(7)); + AssertCategoryTheme("D", Color.FromArgb(255, 255, 90, 172), theme.CategoryThemes.ElementAt(8)); + AssertCategoryTheme(string.Empty, Color.FromArgb(255, 255, 255, 255), theme.CategoryThemes.ElementAt(9)); + } private static void AssertCategoryTheme(string expectedValue, Color expectedColor, LineCategoryTheme categoryTheme) {