Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/FailureMechanismBaseCreateExtensions.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/FailureMechanismBaseCreateExtensions.cs (.../FailureMechanismBaseCreateExtensions.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/FailureMechanismBaseCreateExtensions.cs (.../FailureMechanismBaseCreateExtensions.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -27,12 +27,12 @@ namespace Application.Ringtoets.Storage.Create { /// - /// Extension methods for related to creating a . + /// Extension methods for related to creating a . /// internal static class FailureMechanismBaseCreateExtensions { /// - /// Creates a based on the information of the . + /// Creates a based on the information of the . /// /// The failure mechanism to create a database entity for. /// The type of the failure mechanism that is being created. @@ -59,7 +59,7 @@ } /// - /// Creates instances based on the information of the . + /// Creates instances based on the information of the . /// /// The failure mechanism to create a database failure mechanism section entities for. /// The object keeping track of create operations. Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/FailureMechanismBaseUpdateExtensions.cs =================================================================== diff -u -r64d5609bb2912cd52dc74deffdd189222e240599 -r41fac7fff0a505c08945108d795dcb877f10b816 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/FailureMechanismBaseUpdateExtensions.cs (.../FailureMechanismBaseUpdateExtensions.cs) (revision 64d5609bb2912cd52dc74deffdd189222e240599) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/FailureMechanismBaseUpdateExtensions.cs (.../FailureMechanismBaseUpdateExtensions.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -27,13 +27,13 @@ namespace Application.Ringtoets.Storage.Update { /// - /// Extension methods for related to updating a . + /// Extension methods for related to updating a . /// internal static class FailureMechanismBaseUpdateExtensions { /// /// Updates instances of a - /// based on the sections defined on the . + /// based on the sections defined on the . /// /// The failure mechanism to update the database failure mechanism section entities for. /// The object keeping track of update operations. Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/FailureMechanismBaseCreateExtensionsTest.cs =================================================================== diff -u -r246ebb0ea665a568e9073717d4211816220ff0fc -r41fac7fff0a505c08945108d795dcb877f10b816 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/FailureMechanismBaseCreateExtensionsTest.cs (.../FailureMechanismBaseCreateExtensionsTest.cs) (revision 246ebb0ea665a568e9073717d4211816220ff0fc) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/FailureMechanismBaseCreateExtensionsTest.cs (.../FailureMechanismBaseCreateExtensionsTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -90,7 +90,7 @@ Assert.AreEqual(1, failureMechanismEntity.FailureMechanismSectionEntities.Count); } - private class TestFailureMechanism : FailureMechanismBase + private class TestFailureMechanism : FailureMechanismBase { public TestFailureMechanism() : base("name", "code") { } @@ -102,11 +102,6 @@ throw new NotImplementedException(); } } - - protected override FailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) - { - return new FailureMechanismSectionResult(section); - } } } } \ No newline at end of file Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismBaseUpdateExtensionsTest.cs =================================================================== diff -u -r35408ec0912670519b01cff44a19a3e2fb12d8d6 -r41fac7fff0a505c08945108d795dcb877f10b816 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismBaseUpdateExtensionsTest.cs (.../FailureMechanismBaseUpdateExtensionsTest.cs) (revision 35408ec0912670519b01cff44a19a3e2fb12d8d6) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismBaseUpdateExtensionsTest.cs (.../FailureMechanismBaseUpdateExtensionsTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -167,7 +167,7 @@ } } - public class TestFailureMechanism : FailureMechanismBase + public class TestFailureMechanism : FailureMechanismBase { public TestFailureMechanism() : base("name", "code") {} @@ -179,10 +179,5 @@ throw new NotImplementedException(); } } - - protected override FailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) - { - return new FailureMechanismSectionResult(section); - } } } \ No newline at end of file Index: Core/Common/test/Core.Common.Gui.Test/ContextMenu/ContextMenuBuilderTest.cs =================================================================== diff -u -ref1c61d94f2aec3b4ff32fcf03253d7ad386c8e5 -r41fac7fff0a505c08945108d795dcb877f10b816 --- Core/Common/test/Core.Common.Gui.Test/ContextMenu/ContextMenuBuilderTest.cs (.../ContextMenuBuilderTest.cs) (revision ef1c61d94f2aec3b4ff32fcf03253d7ad386c8e5) +++ Core/Common/test/Core.Common.Gui.Test/ContextMenu/ContextMenuBuilderTest.cs (.../ContextMenuBuilderTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -1,4 +1,25 @@ -using System.Windows.Forms; +// 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.Windows.Forms; using Core.Common.Controls.TreeView; using Core.Common.Gui.Commands; using Core.Common.Gui.ContextMenu; Index: Ringtoets/Common/src/Ringtoets.Common.Data/Contribution/OtherFailureMechanism.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Common/src/Ringtoets.Common.Data/Contribution/OtherFailureMechanism.cs (.../OtherFailureMechanism.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Contribution/OtherFailureMechanism.cs (.../OtherFailureMechanism.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -30,7 +30,7 @@ /// This class represents a failure mechanism which has no representative within Ringtoets but /// contributes to the overall verdict nonetheless. /// - public class OtherFailureMechanism : FailureMechanismBase + public class OtherFailureMechanism : FailureMechanismBase { /// /// Creates a new instance of . @@ -44,10 +44,5 @@ yield break; } } - - protected override FailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) - { - return null; - } } } \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/AssessmentLayerTwoAResult.cs =================================================================== diff -u --- Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/AssessmentLayerTwoAResult.cs (revision 0) +++ Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/AssessmentLayerTwoAResult.cs (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -0,0 +1,36 @@ +// 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 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Common.Utils.Attributes; +using Ringtoets.Common.Data.Properties; + +namespace Ringtoets.Common.Data.FailureMechanism +{ + public enum AssessmentLayerTwoAResult + { + [ResourcesDisplayName(typeof(Resources), "AssessmentLayerTwoAResult_NotCalculated")] + NotCalculated, + [ResourcesDisplayName(typeof(Resources), "AssessmentLayerTwoAResult_Failed")] + Failed, + [ResourcesDisplayName(typeof(Resources), "AssessmentLayerTwoAResult_Successful")] + Successful + } +} \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/CustomFailureMechanismSectionResult.cs =================================================================== diff -u --- Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/CustomFailureMechanismSectionResult.cs (revision 0) +++ Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/CustomFailureMechanismSectionResult.cs (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -0,0 +1,58 @@ +// 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 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Common.Base.Data; + +namespace Ringtoets.Common.Data.FailureMechanism +{ + /// + /// Class which represents a result for a failure mechanism section with a custom outcome + /// of a layer 2a assessment. + /// + public class CustomFailureMechanismSectionResult: FailureMechanismSectionResult + { + /// + /// Creates a new instance of + /// + /// The section for which to add the result. + public CustomFailureMechanismSectionResult(FailureMechanismSection section) : base(section) { } + + /// + /// Gets or sets the state of the assessment layer one. + /// + public bool AssessmentLayerOne { get; set; } + + /// + /// Gets the value of assessment layer two a. + /// + public RoundedDouble AssessmentLayerTwoA { get; set; } + + /// + /// Gets or sets the value of assessment layer two b. + /// + public RoundedDouble AssessmentLayerTwoB { get; set; } + + /// + /// Gets or sets the value of assessment layer three. + /// + public RoundedDouble AssessmentLayerThree { get; set; } + } +} \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/FailureMechanismBase.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/FailureMechanismBase.cs (.../FailureMechanismBase.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/FailureMechanismBase.cs (.../FailureMechanismBase.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -33,14 +33,13 @@ /// to implement can and should most likely inherit /// from this class. /// - public abstract class FailureMechanismBase : Observable, IFailureMechanism where T : FailureMechanismSectionResult + public abstract class FailureMechanismBase : Observable, IFailureMechanism { private readonly List sections; private double contribution; - private readonly IList sectionResults; /// - /// Creates a new instance of the class. + /// Creates a new instance of the class. /// /// The name of the failure mechanism. /// The code of the failure mechanism. @@ -57,7 +56,6 @@ Name = name; Code = failureMechanismCode; sections = new List(); - sectionResults = new List(); IsRelevant = true; } @@ -91,24 +89,13 @@ } } - /// - /// Gets the failure mechanism section results. - /// - public IEnumerable SectionResults - { - get - { - return sectionResults; - } - } - public long StorageId { get; set; } public string Comments { get; set; } public bool IsRelevant { get; set; } - public void AddSection(FailureMechanismSection section) + public virtual void AddSection(FailureMechanismSection section) { if (section == null) { @@ -123,16 +110,11 @@ { InsertSectionWhileMaintainingConnectivityOrder(section); } - - sectionResults.Add(CreateFailureMechanismSectionResult(section)); } - - protected abstract T CreateFailureMechanismSectionResult(FailureMechanismSection section); - - public void ClearAllSections() + + public virtual void ClearAllSections() { sections.Clear(); - sectionResults.Clear(); } private static void ValidateParameters(string failureMechanismName, string failureMechanismCode) Index: Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/IHasSectionResults.cs =================================================================== diff -u --- Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/IHasSectionResults.cs (revision 0) +++ Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/IHasSectionResults.cs (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -0,0 +1,30 @@ +// 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 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; + +namespace Ringtoets.Common.Data.FailureMechanism +{ + public interface IHasSectionResults where T : FailureMechanismSectionResult + { + IEnumerable SectionResults { get; } + } +} \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/SimpleFailureMechanismSectionResult.cs =================================================================== diff -u --- Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/SimpleFailureMechanismSectionResult.cs (revision 0) +++ Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/SimpleFailureMechanismSectionResult.cs (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -0,0 +1,58 @@ +// 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 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Common.Base.Data; + +namespace Ringtoets.Common.Data.FailureMechanism +{ + /// + /// Class which represents a result for a failure mechanism section with three possible outcomes + /// for a layer 2a assessment. + /// + public class SimpleFailureMechanismSectionResult : FailureMechanismSectionResult + { + /// + /// Creates a new instance of + /// + /// The section for which to add the result. + public SimpleFailureMechanismSectionResult(FailureMechanismSection section) : base(section) { } + + /// + /// Gets or sets the state of the assessment layer one. + /// + public bool AssessmentLayerOne { get; set; } + + /// + /// Gets the value of assessment layer two a. + /// + public AssessmentLayerTwoAResult AssessmentLayerTwoA { get; set; } + + /// + /// Gets or sets the value of assessment layer two b. + /// + public RoundedDouble AssessmentLayerTwoB { get; set; } + + /// + /// Gets or sets the value of assessment layer three. + /// + public RoundedDouble AssessmentLayerThree { get; set; } + } +} \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.Designer.cs =================================================================== diff -u -rd2f9b4f26f69988ea1c55caaa58af0831152458f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision d2f9b4f26f69988ea1c55caaa58af0831152458f) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.17929 +// Runtime Version:4.0.30319.34209 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -61,6 +61,33 @@ } /// + /// Looks up a localized string similar to Onvoldoende. + /// + public static string AssessmentLayerTwoAResult_Failed { + get { + return ResourceManager.GetString("AssessmentLayerTwoAResult_Failed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Niet berekend. + /// + public static string AssessmentLayerTwoAResult_NotCalculated { + get { + return ResourceManager.GetString("AssessmentLayerTwoAResult_NotCalculated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Voldoende. + /// + public static string AssessmentLayerTwoAResult_Successful { + get { + return ResourceManager.GetString("AssessmentLayerTwoAResult_Successful", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Vak '{0}' sluit niet aan op de al gedefinieerde vakken van het toetsspoor.. /// public static string BaseFailureMechanism_AddSection_Section_0_must_connect_to_existing_sections { Index: Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.resx =================================================================== diff -u -rd2f9b4f26f69988ea1c55caaa58af0831152458f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.resx (.../Resources.resx) (revision d2f9b4f26f69988ea1c55caaa58af0831152458f) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.resx (.../Resources.resx) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -201,4 +201,13 @@ De waarde voor 'N' moet in interval [1,20] liggen. + + Onvoldoende + + + Niet berekend + + + Voldoende + \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Data/Ringtoets.Common.Data.csproj =================================================================== diff -u -rd2f9b4f26f69988ea1c55caaa58af0831152458f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Common/src/Ringtoets.Common.Data/Ringtoets.Common.Data.csproj (.../Ringtoets.Common.Data.csproj) (revision d2f9b4f26f69988ea1c55caaa58af0831152458f) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Ringtoets.Common.Data.csproj (.../Ringtoets.Common.Data.csproj) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -50,6 +50,8 @@ + + @@ -58,6 +60,8 @@ + + Index: Ringtoets/Common/src/Ringtoets.Common.Forms/PresentationObjects/FailureMechanismSectionResultContext.cs =================================================================== diff -u -r64d5609bb2912cd52dc74deffdd189222e240599 -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Common/src/Ringtoets.Common.Forms/PresentationObjects/FailureMechanismSectionResultContext.cs (.../FailureMechanismSectionResultContext.cs) (revision 64d5609bb2912cd52dc74deffdd189222e240599) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/PresentationObjects/FailureMechanismSectionResultContext.cs (.../FailureMechanismSectionResultContext.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -33,7 +33,7 @@ /// /// Creates a new instance of . /// - /// The of to wrap. + /// The of to wrap. /// The belongs to. /// Thrown when or is null. public FailureMechanismSectionResultContext(IEnumerable sectionResults, IFailureMechanism failureMechanism) @@ -51,7 +51,7 @@ } /// - /// Gets the wrapped of . + /// Gets the wrapped of . /// public IEnumerable SectionResults { get; private set; } Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -71,13 +71,14 @@ CommentView.cs + UserControl FailureMechanismResultView.cs - + Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/CustomFailureMechanismSectionResultRow.cs =================================================================== diff -u --- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/CustomFailureMechanismSectionResultRow.cs (revision 0) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/CustomFailureMechanismSectionResultRow.cs (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -0,0 +1,72 @@ +using Core.Common.Base.Data; +using Ringtoets.Common.Data.FailureMechanism; + +namespace Ringtoets.Common.Forms.Views +{ + public class CustomFailureMechanismSectionResultRow + { + public CustomFailureMechanismSectionResultRow(CustomFailureMechanismSectionResult failureMechanismSectionResult) + { + FailureMechanismSectionResult = failureMechanismSectionResult; + } + + private CustomFailureMechanismSectionResult FailureMechanismSectionResult { get; set; } + + public string Name + { + get + { + return FailureMechanismSectionResult.Section.Name; + } + } + + public bool AssessmentLayerOne + { + get + { + return FailureMechanismSectionResult.AssessmentLayerOne; + } + set + { + FailureMechanismSectionResult.AssessmentLayerOne = value; + FailureMechanismSectionResult.NotifyObservers(); + } + } + + public RoundedDouble AssessmentLayerTwoA + { + get + { + return FailureMechanismSectionResult.AssessmentLayerTwoA; + } + set + { + FailureMechanismSectionResult.AssessmentLayerTwoA = value; + } + } + + public RoundedDouble AssessmentLayerTwoB + { + get + { + return FailureMechanismSectionResult.AssessmentLayerTwoB; + } + set + { + FailureMechanismSectionResult.AssessmentLayerTwoB = value; + } + } + + public RoundedDouble AssessmentLayerThree + { + get + { + return FailureMechanismSectionResult.AssessmentLayerThree; + } + set + { + FailureMechanismSectionResult.AssessmentLayerThree = value; + } + } + } +} \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.Designer.cs =================================================================== diff -u -r64d5609bb2912cd52dc74deffdd189222e240599 -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.Designer.cs (.../FailureMechanismResultView.Designer.cs) (revision 64d5609bb2912cd52dc74deffdd189222e240599) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.Designer.cs (.../FailureMechanismResultView.Designer.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -1,6 +1,6 @@ namespace Ringtoets.Common.Forms.Views { - partial class FailureMechanismResultView + partial class FailureMechanismResultView { /// /// Required designer variable. @@ -15,25 +15,39 @@ /// private void InitializeComponent() { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); this.dataGridView = new System.Windows.Forms.DataGridView(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit(); this.SuspendLayout(); // // dataGridView // - this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter; this.dataGridView.Location = new System.Drawing.Point(0, 0); this.dataGridView.Name = "dataGridView"; this.dataGridView.Size = new System.Drawing.Size(150, 150); this.dataGridView.TabIndex = 0; + this.dataGridView.CellValidating += new System.Windows.Forms.DataGridViewCellValidatingEventHandler(this.DataGridViewCellValidating); + this.dataGridView.CurrentCellDirtyStateChanged += new System.EventHandler(this.DataGridViewCurrentCellDirtyStateChanged); + this.dataGridView.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.DataGridViewDataError); // // FailureMechanismResultView // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.dataGridView); - this.Name = "PipingFailureMechanismResultView"; + this.Name = "FailureMechanismResultView"; ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit(); this.ResumeLayout(false); Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -34,14 +34,11 @@ /// /// The view for the . /// - public partial class FailureMechanismResultView : UserControl, IView + public abstract partial class FailureMechanismResultView : UserControl, IView where T : FailureMechanismSectionResult { - private readonly Observer failureMechanismObserver; - private readonly RecursiveObserver, FailureMechanismSectionResult> failureMechanismSectionResultObserver; + private IEnumerable failureMechanismSectionResult; + private IFailureMechanism failureMechanism; - private IEnumerable failureMechanismSectionResult; - private FailureMechanismBase failureMechanism; - /// /// Creates a new instance of . /// @@ -50,25 +47,19 @@ InitializeComponent(); InitializeDataGridView(); - failureMechanismObserver = new Observer(UpdataDataGridViewDataSource); - failureMechanismSectionResultObserver = new RecursiveObserver, FailureMechanismSectionResult>(RefreshDataGridView, mechanism => mechanism.SectionResults); + FailureMechanismObserver = new Observer(UpdataDataGridViewDataSource); + FailureMechanismSectionResultObservers = new List(); } /// /// Gets or sets the failure mechanism. /// public IFailureMechanism FailureMechanism { - get - { - return failureMechanism; - } set { - failureMechanism = value as FailureMechanismBase; - - failureMechanismObserver.Observable = failureMechanism; - failureMechanismSectionResultObserver.Observable = failureMechanism; + failureMechanism = value; + FailureMechanismObserver.Observable = failureMechanism; } } @@ -80,7 +71,7 @@ } set { - failureMechanismSectionResult = value as IEnumerable; + FailureMechanismSectionResult = value as IEnumerable; if (failureMechanismSectionResult != null) { @@ -96,34 +87,19 @@ protected override void Dispose(bool disposing) { FailureMechanism = null; + FailureMechanismSectionResult = null; + if (FailureMechanismObserver != null) + { + FailureMechanismObserver.Dispose(); + } - failureMechanismObserver.Dispose(); - failureMechanismSectionResultObserver.Dispose(); - if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } - private void InitializeDataGridView() - { - dataGridView.CurrentCellDirtyStateChanged += DataGridViewCurrentCellDirtyStateChanged; - dataGridView.CellValidating += DataGridViewCellValidating; - dataGridView.DataError += DataGridViewDataError; - dataGridView.GotFocus += DataGridViewGotFocus; - - dataGridView.AutoGenerateColumns = false; - dataGridView.Columns.AddRange(GetDataGridColumns().ToArray()); - - foreach (var column in dataGridView.Columns.OfType()) - { - column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; - column.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; - } - } - protected virtual IEnumerable GetDataGridColumns() { yield return new DataGridViewTextBoxColumn @@ -134,29 +110,75 @@ }; } - private void UpdataDataGridViewDataSource() + protected void UpdataDataGridViewDataSource() { EndEdit(); - dataGridView.DataSource = failureMechanismSectionResult.Select(sr => new FailureMechanismSectionResultRow(sr)).ToList(); + dataGridView.DataSource = failureMechanismSectionResult.Select(sr => CreateFailureMechanismSectionResultRow(sr)).ToList(); } + protected abstract object CreateFailureMechanismSectionResultRow(T sectionResult); + + protected void RefreshDataGridView() + { + dataGridView.Refresh(); + dataGridView.AutoResizeColumns(); + } + + private IList FailureMechanismSectionResultObservers { get; set; } + private Observer FailureMechanismObserver { get; set; } + + private IEnumerable FailureMechanismSectionResult + { + set + { + ClearSectionResultObservers(); + failureMechanismSectionResult = value; + + if (failureMechanismSectionResult != null) + { + AddSectionResultObservers(); + } + } + } + + private void AddSectionResultObservers() + { + foreach (var sectionResult in failureMechanismSectionResult) + { + FailureMechanismSectionResultObservers.Add(new Observer(RefreshDataGridView) + { + Observable = sectionResult + }); + } + } + + private void ClearSectionResultObservers() + { + foreach (var observer in FailureMechanismSectionResultObservers) + { + observer.Dispose(); + } + FailureMechanismSectionResultObservers.Clear(); + } + + private void InitializeDataGridView() + { + dataGridView.GotFocus += DataGridViewGotFocus; + dataGridView.AutoGenerateColumns = false; + dataGridView.Columns.AddRange(GetDataGridColumns().ToArray()); + } + private void EndEdit() { if (dataGridView.IsCurrentCellInEditMode) { dataGridView.CancelEdit(); - dataGridView.EndEdit(); + dataGridView.EndEdit(); dataGridView.CurrentCell = null; } } - private void RefreshDataGridView() - { - dataGridView.Refresh(); - dataGridView.AutoResizeColumns(); - } - #region Event handling private void DataGridViewCurrentCellDirtyStateChanged(object sender, EventArgs e) Fisheye: Tag 41fac7fff0a505c08945108d795dcb877f10b816 refers to a dead (removed) revision in file `Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismSectionResultRow.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/SimpleFailureMechanismSectionResultRow.cs =================================================================== diff -u --- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/SimpleFailureMechanismSectionResultRow.cs (revision 0) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/SimpleFailureMechanismSectionResultRow.cs (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -0,0 +1,74 @@ +using System; +using System.Reflection; +using Core.Common.Base.Data; +using Ringtoets.Common.Data.FailureMechanism; + +namespace Ringtoets.Common.Forms.Views +{ + public class SimpleFailureMechanismSectionResultRow + { + public SimpleFailureMechanismSectionResultRow(SimpleFailureMechanismSectionResult failureMechanismSectionResult) + { + FailureMechanismSectionResult = failureMechanismSectionResult; + } + + private SimpleFailureMechanismSectionResult FailureMechanismSectionResult { get; set; } + + public string Name + { + get + { + return FailureMechanismSectionResult.Section.Name; + } + } + + public bool AssessmentLayerOne + { + get + { + return FailureMechanismSectionResult.AssessmentLayerOne; + } + set + { + FailureMechanismSectionResult.AssessmentLayerOne = value; + FailureMechanismSectionResult.NotifyObservers(); + } + } + + public AssessmentLayerTwoAResult AssessmentLayerTwoA + { + get + { + return FailureMechanismSectionResult.AssessmentLayerTwoA; + } + set + { + FailureMechanismSectionResult.AssessmentLayerTwoA = value; + } + } + + public RoundedDouble AssessmentLayerTwoB + { + get + { + return FailureMechanismSectionResult.AssessmentLayerTwoB; + } + set + { + FailureMechanismSectionResult.AssessmentLayerTwoB = value; + } + } + + public RoundedDouble AssessmentLayerThree + { + get + { + return FailureMechanismSectionResult.AssessmentLayerThree; + } + set + { + FailureMechanismSectionResult.AssessmentLayerThree = value; + } + } + } +} \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/OtherFailureMechanismTest.cs =================================================================== diff -u -r266b001fc7fcb405383d2411a970efa735e3c66d -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/OtherFailureMechanismTest.cs (.../OtherFailureMechanismTest.cs) (revision 266b001fc7fcb405383d2411a970efa735e3c66d) +++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/OtherFailureMechanismTest.cs (.../OtherFailureMechanismTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -37,7 +37,7 @@ // Assert Assert.AreEqual("Overig", result.Name); Assert.AreEqual("NWOoc", result.Code); - Assert.IsInstanceOf>(result); + Assert.IsInstanceOf(result); CollectionAssert.IsEmpty(result.Calculations); } } Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/FailureMechanism/FailureMechanismBaseTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Common/test/Ringtoets.Common.Data.Test/FailureMechanism/FailureMechanismBaseTest.cs (.../FailureMechanismBaseTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/FailureMechanism/FailureMechanismBaseTest.cs (.../FailureMechanismBaseTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -258,60 +258,6 @@ } [Test] - public void AddSection_SectionValid_SectionAddedSectionResults() - { - // Setup - var failureMechanism = new SimpleFailureMechanismBase(); - - var section = new FailureMechanismSection("A", new[] - { - new Point2D(1, 2), - new Point2D(3, 4) - }); - - // Precondition - Assert.AreEqual(0, failureMechanism.SectionResults.Count()); - - // Call - failureMechanism.AddSection(section); - - // Assert - Assert.AreEqual(1, failureMechanism.SectionResults.Count()); - } - - [Test] - public void SectionResults_Always_ReturnsExpectedSectionResultsAfterAddingSections() - { - // Setup - var failureMechanism = new SimpleFailureMechanismBase(); - - var section = new FailureMechanismSection("A", new[] - { - new Point2D(1, 2), - new Point2D(3, 4) - }); - - var section2 = new FailureMechanismSection("B", new[] - { - new Point2D(3, 4), - new Point2D(7, 8) - }); - - failureMechanism.AddSection(section); - failureMechanism.AddSection(section2); - - // Call - var data = failureMechanism.SectionResults.ToList(); - - // Assert - CollectionAssert.AreEqual(new[] - { - section, - section2 - }, data.Select(d => d.Section)); - } - - [Test] public void ClearAllSections_HasSections_ClearSections() { // Setup @@ -331,7 +277,7 @@ CollectionAssert.IsEmpty(failureMechanism.Sections); } - private class SimpleFailureMechanismBase : FailureMechanismBase + private class SimpleFailureMechanismBase : FailureMechanismBase { public SimpleFailureMechanismBase(string name = "SomeName", string failureMechanismCode = "SomeCode") : base(name, failureMechanismCode) {} @@ -342,11 +288,6 @@ throw new NotImplementedException(); } } - - protected override FailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) - { - return new FailureMechanismSectionResult(section); - } } } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuBuilderTest.cs =================================================================== diff -u -ra3357275af675af3714fc89b99c554c288759ae2 -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuBuilderTest.cs (.../RingtoetsContextMenuBuilderTest.cs) (revision a3357275af675af3714fc89b99c554c288759ae2) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuBuilderTest.cs (.../RingtoetsContextMenuBuilderTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -954,7 +954,7 @@ base(wrappedFailureMechanism, parent) { } } - private class TestFailureMechanism : FailureMechanismBase + private class TestFailureMechanism : FailureMechanismBase { private readonly IEnumerable calculations; @@ -971,11 +971,6 @@ return calculations; } } - - protected override FailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) - { - return null; - } } private class TestCalculationGroupContext : Observable, ICalculationContext Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuItemFactoryTest.cs =================================================================== diff -u -rc796a449aa7622c4c2386279a7f9fb410f610444 -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuItemFactoryTest.cs (.../RingtoetsContextMenuItemFactoryTest.cs) (revision c796a449aa7622c4c2386279a7f9fb410f610444) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuItemFactoryTest.cs (.../RingtoetsContextMenuItemFactoryTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -953,7 +953,7 @@ base(wrappedFailureMechanism, parent) {} } - private class TestFailureMechanism : FailureMechanismBase + private class TestFailureMechanism : FailureMechanismBase { private readonly IEnumerable calculations; @@ -970,11 +970,6 @@ return calculations; } } - - protected override FailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) - { - return null; - } } private class TestCalculationGroupContext : Observable, ICalculationContext Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanism.cs =================================================================== diff -u -rd2f9b4f26f69988ea1c55caaa58af0831152458f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanism.cs (.../GrassCoverErosionInwardsFailureMechanism.cs) (revision d2f9b4f26f69988ea1c55caaa58af0831152458f) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanism.cs (.../GrassCoverErosionInwardsFailureMechanism.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -31,8 +31,10 @@ /// /// Model for performing grass cover erosion inwards calculations. /// - public class GrassCoverErosionInwardsFailureMechanism : FailureMechanismBase, ICalculatableFailureMechanism + public class GrassCoverErosionInwardsFailureMechanism : FailureMechanismBase, ICalculatableFailureMechanism, IHasSectionResults { + private readonly List sectionResults; + /// /// Initializes a new instance of the class. /// @@ -42,6 +44,7 @@ CalculationsGroup = new CalculationGroup(RingtoetsCommonDataResources.FailureMechanism_Calculations_DisplayName, false); GeneralInput = new GeneralGrassCoverErosionInwardsInput(); NormProbabilityInput = new GeneralNormProbabilityInput(); + sectionResults = new List(); } public override IEnumerable Calculations @@ -52,11 +55,19 @@ } } - protected override GrassCoverErosionInwardsFailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) + public override void AddSection(FailureMechanismSection section) { - return new GrassCoverErosionInwardsFailureMechanismSectionResult(section); + base.AddSection(section); + + sectionResults.Add(new GrassCoverErosionInwardsFailureMechanismSectionResult(section)); } + public override void ClearAllSections() + { + base.ClearAllSections(); + sectionResults.Clear(); + } + /// /// Gets the general grass cover erosion inwards calculation input parameters that apply to each calculation. /// @@ -68,5 +79,13 @@ public GeneralNormProbabilityInput NormProbabilityInput { get; private set; } public CalculationGroup CalculationsGroup { get; private set; } + + public IEnumerable SectionResults + { + get + { + return sectionResults; + } + } } } \ No newline at end of file Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismResultView.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismResultView.cs (.../GrassCoverErosionInwardsFailureMechanismResultView.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismResultView.cs (.../GrassCoverErosionInwardsFailureMechanismResultView.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -42,13 +42,13 @@ { private const double tolerance = 1e-6; private readonly Observer failureMechanismObserver; - private readonly RecursiveObserver, GrassCoverErosionInwardsFailureMechanismSectionResult> failureMechanismSectionResultObserver; + private readonly RecursiveObserver failureMechanismSectionResultObserver; private readonly RecursiveObserver calculationInputObserver; private readonly RecursiveObserver calculationOutputObserver; private readonly RecursiveObserver calculationGroupObserver; private IEnumerable failureMechanismSectionResult; - private FailureMechanismBase failureMechanism; + private GrassCoverErosionInwardsFailureMechanism failureMechanism; private DataGridViewTextBoxColumn assessmentLayerTwoA; private DataGridViewTextBoxColumn assessmentLayerTwoB; private DataGridViewTextBoxColumn assessmentLayerThree; @@ -62,7 +62,7 @@ InitializeDataGridView(); failureMechanismObserver = new Observer(UpdataDataGridViewDataSource); - failureMechanismSectionResultObserver = new RecursiveObserver, GrassCoverErosionInwardsFailureMechanismSectionResult>(RefreshDataGridView, mechanism => mechanism.SectionResults); + failureMechanismSectionResultObserver = new RecursiveObserver(RefreshDataGridView, mechanism => mechanism.SectionResults); // The concat is needed to observe the input of calculations in child groups. calculationInputObserver = new RecursiveObserver(UpdataDataGridViewDataSource, cg => cg.Children.Concat(cg.Children.OfType().Select(c => c.GetObservableInput()))); calculationOutputObserver = new RecursiveObserver(UpdataDataGridViewDataSource, cg => cg.Children.Concat(cg.Children.OfType().Select(c => c.GetObservableOutput()))); @@ -81,7 +81,7 @@ } set { - failureMechanism = value as FailureMechanismBase; + failureMechanism = value as GrassCoverErosionInwardsFailureMechanism; failureMechanismObserver.Observable = failureMechanism; failureMechanismSectionResultObserver.Observable = failureMechanism; Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs =================================================================== diff -u -r1f2fbaa211ff678a1171a5c0a67e9a94c350eab5 -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 1f2fbaa211ff678a1171a5c0a67e9a94c350eab5) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -271,7 +271,7 @@ { failureMechanism = failureMechanismContext.WrappedData; } - return failureMechanism != null && ReferenceEquals(view.Data, ((FailureMechanismBase) failureMechanism).SectionResults); + return failureMechanism != null && ReferenceEquals(view.Data, ((GrassCoverErosionInwardsFailureMechanism)failureMechanism).SectionResults); } #endregion Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismTest.cs =================================================================== diff -u -rd2f9b4f26f69988ea1c55caaa58af0831152458f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismTest.cs (.../GrassCoverErosionInwardsFailureMechanismTest.cs) (revision d2f9b4f26f69988ea1c55caaa58af0831152458f) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismTest.cs (.../GrassCoverErosionInwardsFailureMechanismTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -46,7 +46,7 @@ var grassCoverErosionInwardsFailureMechanism = new GrassCoverErosionInwardsFailureMechanism(); // assert - Assert.IsInstanceOf>(grassCoverErosionInwardsFailureMechanism); + Assert.IsInstanceOf(grassCoverErosionInwardsFailureMechanism); Assert.IsInstanceOf(grassCoverErosionInwardsFailureMechanism); Assert.AreEqual(Resources.GrassCoverErosionInwardsFailureMechanism_DisplayName, grassCoverErosionInwardsFailureMechanism.Name); Assert.AreEqual(Resources.GrassCoverErosionInwardsFailureMechanism_DisplayCode, grassCoverErosionInwardsFailureMechanism.Code); Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Data/HeightStructuresFailureMechanism.cs =================================================================== diff -u -rd2f9b4f26f69988ea1c55caaa58af0831152458f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Data/HeightStructuresFailureMechanism.cs (.../HeightStructuresFailureMechanism.cs) (revision d2f9b4f26f69988ea1c55caaa58af0831152458f) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Data/HeightStructuresFailureMechanism.cs (.../HeightStructuresFailureMechanism.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -30,14 +30,17 @@ /// /// Failure mechanism for Height structures. /// - public class HeightStructuresFailureMechanism : FailureMechanismBase, ICalculatableFailureMechanism + public class HeightStructuresFailureMechanism : FailureMechanismBase, IHasSectionResults { + private readonly IList sectionResults; + /// /// Initializes a new instance of the class. /// public HeightStructuresFailureMechanism() : base(Resources.HeightStructureFailureMechanism_DisplayName, Resources.HeightStructureFailureMechanism_Code) { + sectionResults = new List(); CalculationsGroup = new CalculationGroup(RingtoetsCommonDataResources.FailureMechanism_Calculations_DisplayName, false); NormProbabilityInput = new GeneralNormProbabilityInput(); } @@ -50,11 +53,26 @@ } } - protected override FailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) + public override void AddSection(FailureMechanismSection section) { - return new FailureMechanismSectionResult(section); + base.AddSection(section); + + sectionResults.Add(new CustomFailureMechanismSectionResult(section)); } + public override void ClearAllSections() + { + base.ClearAllSections(); + sectionResults.Clear(); + } + + public IEnumerable SectionResults + { + get + { + return sectionResults; + } + } /// /// Gets the length-effect parameters. /// Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Data.Test/HeightStructuresFailureMechanismTest.cs =================================================================== diff -u -rd2f9b4f26f69988ea1c55caaa58af0831152458f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Data.Test/HeightStructuresFailureMechanismTest.cs (.../HeightStructuresFailureMechanismTest.cs) (revision d2f9b4f26f69988ea1c55caaa58af0831152458f) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Data.Test/HeightStructuresFailureMechanismTest.cs (.../HeightStructuresFailureMechanismTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -38,9 +38,9 @@ var failureMechanism = new HeightStructuresFailureMechanism(); // Assert - Assert.IsInstanceOf>(failureMechanism); - Assert.AreEqual(Resources.HeightStructureFailureMechanism_DisplayName, failureMechanism.Name); - Assert.AreEqual(Resources.HeightStructureFailureMechanism_Code, failureMechanism.Code); + Assert.IsInstanceOf(failureMechanism); + Assert.AreEqual("Kunstwerken - Hoogte kunstwerk", failureMechanism.Name); + Assert.AreEqual("HTKW", failureMechanism.Code); CollectionAssert.IsEmpty(failureMechanism.Sections); CollectionAssert.IsEmpty(failureMechanism.Calculations); Assert.AreEqual("Berekeningen", failureMechanism.CalculationsGroup.Name); @@ -62,7 +62,7 @@ // Assert Assert.AreEqual(1, failureMechanism.SectionResults.Count()); - Assert.IsInstanceOf(failureMechanism.SectionResults.ElementAt(0)); + Assert.IsInstanceOf(failureMechanism.SectionResults.ElementAt(0)); } } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/Ringtoets.Integration.Data.csproj =================================================================== diff -u -r213b20e92891887167ab4b031ca4a4b6250a4c2a -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/Ringtoets.Integration.Data.csproj (.../Ringtoets.Integration.Data.csproj) (revision 213b20e92891887167ab4b031ca4a4b6250a4c2a) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/Ringtoets.Integration.Data.csproj (.../Ringtoets.Integration.Data.csproj) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -41,7 +41,6 @@ Properties\GlobalAssembly.cs - @@ -50,8 +49,6 @@ - - Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/ClosingStructureFailureMechanism.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/ClosingStructureFailureMechanism.cs (.../ClosingStructureFailureMechanism.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/ClosingStructureFailureMechanism.cs (.../ClosingStructureFailureMechanism.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -23,22 +23,25 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; -using Ringtoets.Integration.Data.StandAlone.Result; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone { /// /// Defines a stand alone failure mechanisms objects /// - public class ClosingStructureFailureMechanism : FailureMechanismBase + public class ClosingStructureFailureMechanism : FailureMechanismBase, IHasSectionResults { + private readonly List sectionResults; + /// /// Initializes a new instance of the class. /// public ClosingStructureFailureMechanism() : base(Resources.ClosingStructureFailureMechanism_DisplayName, Resources.ClosingStructureFailureMechanism_Code) - { } + { + sectionResults = new List(); + } public override IEnumerable Calculations { @@ -48,9 +51,25 @@ } } - protected override CustomFailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) + public override void AddSection(FailureMechanismSection section) { - return new CustomFailureMechanismSectionResult(section); + base.AddSection(section); + + sectionResults.Add(new CustomFailureMechanismSectionResult(section)); } + + public override void ClearAllSections() + { + base.ClearAllSections(); + sectionResults.Clear(); + } + + public IEnumerable SectionResults + { + get + { + return sectionResults; + } + } } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/DuneErosionFailureMechanism.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/DuneErosionFailureMechanism.cs (.../DuneErosionFailureMechanism.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/DuneErosionFailureMechanism.cs (.../DuneErosionFailureMechanism.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -23,22 +23,25 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; -using Ringtoets.Integration.Data.StandAlone.Result; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone { /// /// Defines a stand alone failure mechanisms objects /// - public class DuneErosionFailureMechanism : FailureMechanismBase + public class DuneErosionFailureMechanism : FailureMechanismBase, IHasSectionResults { + private readonly IList sectionResults; + /// /// Initializes a new instance of the class. /// public DuneErosionFailureMechanism() : base(Resources.DuneErosionFailureMechanism_DisplayName, Resources.DuneErosionFailureMechanism_Code) - { } + { + sectionResults = new List(); + } public override IEnumerable Calculations { @@ -47,10 +50,26 @@ yield break; } } + + public override void AddSection(FailureMechanismSection section) + { + base.AddSection(section); - protected override SimpleFailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) + sectionResults.Add(new SimpleFailureMechanismSectionResult(section)); + } + + public override void ClearAllSections() { - return new SimpleFailureMechanismSectionResult(section); + base.ClearAllSections(); + sectionResults.Clear(); } + + public IEnumerable SectionResults + { + get + { + return sectionResults; + } + } } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/GrassCoverErosionOutwardsFailureMechanism.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/GrassCoverErosionOutwardsFailureMechanism.cs (.../GrassCoverErosionOutwardsFailureMechanism.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/GrassCoverErosionOutwardsFailureMechanism.cs (.../GrassCoverErosionOutwardsFailureMechanism.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -23,22 +23,25 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; -using Ringtoets.Integration.Data.StandAlone.Result; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone { /// /// Defines a stand alone failure mechanisms objects /// - public class GrassCoverErosionOutwardsFailureMechanism : FailureMechanismBase + public class GrassCoverErosionOutwardsFailureMechanism : FailureMechanismBase, IHasSectionResults { + private readonly IList sectionResults; + /// /// Initializes a new instance of the class. /// public GrassCoverErosionOutwardsFailureMechanism() : base(Resources.GrassCoverErosionOutwardsFailureMechanism_DisplayName, Resources.GrassCoverErosionOutwardsFailureMechanism_Code) - { } + { + sectionResults = new List(); + } public override IEnumerable Calculations { @@ -48,9 +51,25 @@ } } - protected override SimpleFailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) + public override void AddSection(FailureMechanismSection section) { - return new SimpleFailureMechanismSectionResult(section); + base.AddSection(section); + + sectionResults.Add(new SimpleFailureMechanismSectionResult(section)); } + + public override void ClearAllSections() + { + base.ClearAllSections(); + sectionResults.Clear(); + } + + public IEnumerable SectionResults + { + get + { + return sectionResults; + } + } } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/GrassCoverSlipOffOutwardsFailureMechanism.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/GrassCoverSlipOffOutwardsFailureMechanism.cs (.../GrassCoverSlipOffOutwardsFailureMechanism.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/GrassCoverSlipOffOutwardsFailureMechanism.cs (.../GrassCoverSlipOffOutwardsFailureMechanism.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -23,22 +23,25 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; -using Ringtoets.Integration.Data.StandAlone.Result; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone { /// /// Defines a stand alone failure mechanisms objects /// - public class GrassCoverSlipOffOutwardsFailureMechanism : FailureMechanismBase + public class GrassCoverSlipOffOutwardsFailureMechanism : FailureMechanismBase, IHasSectionResults { + private readonly IList sectionResults; + /// /// Initializes a new instance of the class. /// public GrassCoverSlipOffOutwardsFailureMechanism() : base(Resources.GrassCoverSlipOffOutwardsFailureMechanism_DisplayName, Resources.GrassCoverSlipOffOutwardsFailureMechanism_Code) - { } + { + sectionResults = new List(); + } public override IEnumerable Calculations { @@ -48,9 +51,25 @@ } } - protected override SimpleFailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) + public override void AddSection(FailureMechanismSection section) { - return new SimpleFailureMechanismSectionResult(section); + base.AddSection(section); + + sectionResults.Add(new SimpleFailureMechanismSectionResult(section)); } + + public override void ClearAllSections() + { + base.ClearAllSections(); + sectionResults.Clear(); + } + + public IEnumerable SectionResults + { + get + { + return sectionResults; + } + } } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/MacroStabilityInwardsFailureMechanism.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/MacroStabilityInwardsFailureMechanism.cs (.../MacroStabilityInwardsFailureMechanism.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/MacroStabilityInwardsFailureMechanism.cs (.../MacroStabilityInwardsFailureMechanism.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -23,22 +23,25 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; -using Ringtoets.Integration.Data.StandAlone.Result; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone { /// /// Defines a stand alone failure mechanisms objects /// - public class MacroStabilityInwardsFailureMechanism : FailureMechanismBase + public class MacroStabilityInwardsFailureMechanism : FailureMechanismBase, IHasSectionResults { + private readonly IList sectionResults; + /// /// Initializes a new instance of the class. /// public MacroStabilityInwardsFailureMechanism() : base(Resources.MacrostabilityInwardFailureMechanism_DisplayName, Resources.MacrostabilityInwardFailureMechanism_Code) - { } + { + sectionResults = new List(); + } public override IEnumerable Calculations { @@ -48,9 +51,25 @@ } } - protected override CustomFailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) + public override void AddSection(FailureMechanismSection section) { - return new CustomFailureMechanismSectionResult(section); + base.AddSection(section); + + sectionResults.Add(new CustomFailureMechanismSectionResult(section)); } + + public override void ClearAllSections() + { + base.ClearAllSections(); + sectionResults.Clear(); + } + + public IEnumerable SectionResults + { + get + { + return sectionResults; + } + } } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/PipingStructureFailureMechanism.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/PipingStructureFailureMechanism.cs (.../PipingStructureFailureMechanism.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/PipingStructureFailureMechanism.cs (.../PipingStructureFailureMechanism.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -23,22 +23,25 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; -using Ringtoets.Integration.Data.StandAlone.Result; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone { /// /// Defines a stand alone failure mechanisms objects /// - public class PipingStructureFailureMechanism : FailureMechanismBase + public class PipingStructureFailureMechanism : FailureMechanismBase, IHasSectionResults { + private readonly IList sectionResults; + /// /// Initializes a new instance of the class. /// public PipingStructureFailureMechanism() : base(Resources.PipingStructureFailureMechanism_DisplayName, Resources.PipingStructureFailureMechanism_Code) - { } + { + sectionResults = new List(); + } public override IEnumerable Calculations { @@ -48,9 +51,25 @@ } } - protected override SimpleFailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) + public override void AddSection(FailureMechanismSection section) { - return new SimpleFailureMechanismSectionResult(section); + base.AddSection(section); + + sectionResults.Add(new SimpleFailureMechanismSectionResult(section)); } + + public override void ClearAllSections() + { + base.ClearAllSections(); + sectionResults.Clear(); + } + + public IEnumerable SectionResults + { + get + { + return sectionResults; + } + } } } \ No newline at end of file Fisheye: Tag 41fac7fff0a505c08945108d795dcb877f10b816 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/Result/AssessmentLayerTwoAResult.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 41fac7fff0a505c08945108d795dcb877f10b816 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/Result/CustomFailureMechanismSectionResult.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 41fac7fff0a505c08945108d795dcb877f10b816 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/Result/SimpleFailureMechanismSectionResult.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/StabilityStoneCoverFailureMechanism.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/StabilityStoneCoverFailureMechanism.cs (.../StabilityStoneCoverFailureMechanism.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/StabilityStoneCoverFailureMechanism.cs (.../StabilityStoneCoverFailureMechanism.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -23,22 +23,25 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; -using Ringtoets.Integration.Data.StandAlone.Result; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone { /// /// Defines a stand alone failure mechanisms objects /// - public class StabilityStoneCoverFailureMechanism : FailureMechanismBase + public class StabilityStoneCoverFailureMechanism : FailureMechanismBase, IHasSectionResults { + private readonly IList sectionResults; + /// /// Initializes a new instance of the class. /// public StabilityStoneCoverFailureMechanism() : base(Resources.StabilityStoneCoverFailureMechanism_DisplayName, Resources.StabilityStoneCoverFailureMechanism_Code) - { } + { + sectionResults = new List(); + } public override IEnumerable Calculations { @@ -48,9 +51,25 @@ } } - protected override CustomFailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) + public override void AddSection(FailureMechanismSection section) { - return new CustomFailureMechanismSectionResult(section); + base.AddSection(section); + + sectionResults.Add(new CustomFailureMechanismSectionResult(section)); } + + public override void ClearAllSections() + { + base.ClearAllSections(); + sectionResults.Clear(); + } + + public IEnumerable SectionResults + { + get + { + return sectionResults; + } + } } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/StrengthStabilityPointConstructionFailureMechanism.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/StrengthStabilityPointConstructionFailureMechanism.cs (.../StrengthStabilityPointConstructionFailureMechanism.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/StrengthStabilityPointConstructionFailureMechanism.cs (.../StrengthStabilityPointConstructionFailureMechanism.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -23,22 +23,25 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; -using Ringtoets.Integration.Data.StandAlone.Result; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone { /// /// Defines a stand alone failure mechanisms objects /// - public class StrengthStabilityPointConstructionFailureMechanism : FailureMechanismBase + public class StrengthStabilityPointConstructionFailureMechanism : FailureMechanismBase, IHasSectionResults { + private readonly IList sectionResults; + /// /// Initializes a new instance of the class. /// public StrengthStabilityPointConstructionFailureMechanism() : base(Resources.StrengthStabilityPointConstructionFailureMechanism_DisplayName, Resources.StrengthStabilityPointConstructionFailureMechanism_Code) - { } + { + sectionResults = new List(); + } public override IEnumerable Calculations { @@ -48,9 +51,25 @@ } } - protected override CustomFailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) + public override void AddSection(FailureMechanismSection section) { - return new CustomFailureMechanismSectionResult(section); + base.AddSection(section); + + sectionResults.Add(new CustomFailureMechanismSectionResult(section)); } + + public override void ClearAllSections() + { + base.ClearAllSections(); + sectionResults.Clear(); + } + + public IEnumerable SectionResults + { + get + { + return sectionResults; + } + } } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/WaveImpactAsphaltCoverFailureMechanism.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/WaveImpactAsphaltCoverFailureMechanism.cs (.../WaveImpactAsphaltCoverFailureMechanism.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/WaveImpactAsphaltCoverFailureMechanism.cs (.../WaveImpactAsphaltCoverFailureMechanism.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -23,22 +23,25 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; -using Ringtoets.Integration.Data.StandAlone.Result; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone { /// /// Defines a stand alone failure mechanisms objects /// - public class WaveImpactAsphaltCoverFailureMechanism : FailureMechanismBase + public class WaveImpactAsphaltCoverFailureMechanism : FailureMechanismBase, IHasSectionResults { + private readonly IList sectionResults; + /// /// Initializes a new instance of the class. /// public WaveImpactAsphaltCoverFailureMechanism() : base(Resources.WaveImpactAsphaltCoverFailureMechanism_DisplayName, Resources.WaveImpactAsphaltCoverFailureMechanism_Code) - { } + { + sectionResults = new List(); + } public override IEnumerable Calculations { @@ -48,9 +51,25 @@ } } - protected override CustomFailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) + public override void AddSection(FailureMechanismSection section) { - return new CustomFailureMechanismSectionResult(section); + base.AddSection(section); + + sectionResults.Add(new CustomFailureMechanismSectionResult(section)); } + + public override void ClearAllSections() + { + base.ClearAllSections(); + sectionResults.Clear(); + } + + public IEnumerable SectionResults + { + get + { + return sectionResults; + } + } } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/CustomFailureMechanismContext.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/CustomFailureMechanismContext.cs (.../CustomFailureMechanismContext.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/CustomFailureMechanismContext.cs (.../CustomFailureMechanismContext.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -24,7 +24,6 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Integration.Data.StandAlone; -using Ringtoets.Integration.Data.StandAlone.Result; namespace Ringtoets.Integration.Forms.PresentationObjects { @@ -39,7 +38,7 @@ /// The failure mechanism. /// The parent of . /// Thrown when or are null. - public CustomFailureMechanismContext(FailureMechanismBase wrappedFailureMechanism, IAssessmentSection parent) : + public CustomFailureMechanismContext(FailureMechanismBase wrappedFailureMechanism, IAssessmentSection parent) : base(wrappedFailureMechanism, parent) { Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Ringtoets.Integration.Forms.csproj =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Ringtoets.Integration.Forms.csproj (.../Ringtoets.Integration.Forms.csproj) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Ringtoets.Integration.Forms.csproj (.../Ringtoets.Integration.Forms.csproj) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -128,6 +128,10 @@ Ringtoets.Common.Forms False + + {1C0017D8-35B5-4CA0-8FC7-A83F46DBDC99} + Ringtoets.HeightStructures.Data + {70f8cc9c-5bc8-4fb2-b201-eae7fa8088c2} Ringtoets.HydraRing.Data Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/CustomFailureMechanismResultView.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/CustomFailureMechanismResultView.cs (.../CustomFailureMechanismResultView.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/CustomFailureMechanismResultView.cs (.../CustomFailureMechanismResultView.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -1,11 +1,12 @@ using System.Collections.Generic; using System.Windows.Forms; +using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Forms.Properties; using Ringtoets.Common.Forms.Views; namespace Ringtoets.Integration.Forms.Views { - public class CustomFailureMechanismResultView : FailureMechanismResultView + public class CustomFailureMechanismResultView : FailureMechanismResultView { protected override IEnumerable GetDataGridColumns() { @@ -25,8 +26,7 @@ { DataPropertyName = "AssessmentLayerTwoA", HeaderText = Resources.FailureMechanismResultView_InitializeDataGridView_Assessment_layer_two_a, - Name = "column_AssessmentLayerTwoA", - ReadOnly = true + Name = "column_AssessmentLayerTwoA" }; yield return new DataGridViewTextBoxColumn @@ -43,5 +43,10 @@ Name = "column_AssessmentLayerThree" }; } + + protected override object CreateFailureMechanismSectionResultRow(CustomFailureMechanismSectionResult sectionResult) + { + return new CustomFailureMechanismSectionResultRow(sectionResult); + } } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SimpleFailureMechanismResultView.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SimpleFailureMechanismResultView.cs (.../SimpleFailureMechanismResultView.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SimpleFailureMechanismResultView.cs (.../SimpleFailureMechanismResultView.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -1,11 +1,16 @@ -using System.Collections.Generic; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; using System.Windows.Forms; +using Core.Common.Utils.Attributes; +using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Forms.Properties; using Ringtoets.Common.Forms.Views; namespace Ringtoets.Integration.Forms.Views { - public class SimpleFailureMechanismResultView : FailureMechanismResultView + public class SimpleFailureMechanismResultView : FailureMechanismResultView { protected override IEnumerable GetDataGridColumns() { @@ -21,15 +26,20 @@ Name = "column_AssessmentLayerOne" }; - yield return new DataGridViewTextBoxColumn + yield return new DataGridViewComboBoxColumn { DataPropertyName = "AssessmentLayerTwoA", HeaderText = Resources.FailureMechanismResultView_InitializeDataGridView_Assessment_layer_two_a, Name = "column_AssessmentLayerTwoA", - ReadOnly = true + DataSource = Enum.GetValues(typeof(AssessmentLayerTwoAResult)) + .OfType() + .Select(el => new WrappedEnum(el)) + .ToList(), + ValueMember = "Value", + DisplayMember = "DisplayName" }; - yield return new DataGridViewComboBoxColumn() + yield return new DataGridViewTextBoxColumn { DataPropertyName = "AssessmentLayerTwoB", HeaderText = Resources.FailureMechanismResultView_InitializeDataGridView_Assessment_layer_two_b, @@ -43,5 +53,30 @@ Name = "column_AssessmentLayerThree" }; } + + protected override object CreateFailureMechanismSectionResultRow(SimpleFailureMechanismSectionResult sectionResult) + { + return new SimpleFailureMechanismSectionResultRow(sectionResult); + } } + + public class WrappedEnum + { + public WrappedEnum(T value) + { + Value = value; + } + + public T Value { get; private set; } + + public string DisplayName + { + get + { + var enumField = typeof(T).GetField(Enum.GetName(typeof(T), Value)); + var displayName = (ResourcesDisplayNameAttribute)Attribute.GetCustomAttribute(enumField, typeof(ResourcesDisplayNameAttribute)); + return displayName == null ? Value.ToString() : displayName.DisplayName; + } + } + } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs =================================================================== diff -u -r213b20e92891887167ab4b031ca4a4b6250a4c2a -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision 213b20e92891887167ab4b031ca4a4b6250a4c2a) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -54,7 +54,6 @@ using Ringtoets.HydraRing.Data; using Ringtoets.HydraRing.IO; using Ringtoets.Integration.Data.StandAlone; -using Ringtoets.Integration.Data.StandAlone.Result; using Ringtoets.Integration.Forms.PresentationObjects; using Ringtoets.Integration.Forms.PropertyClasses; using Ringtoets.Integration.Forms.Views; @@ -204,18 +203,12 @@ Gui.Get(nodeData, treeViewControl).AddImportItem().Build() }; - yield return RingtoetsTreeNodeInfoFactory.CreateFailureMechanismContextTreeNodeInfo( + yield return RingtoetsTreeNodeInfoFactory.CreateFailureMechanismContextTreeNodeInfo>( StandAloneFailureMechanismEnabledChildNodeObjects, StandAloneFailureMechanismDisabledChildNodeObjects, StandAloneFailureMechanismEnabledContextMenuStrip, StandAloneFailureMechanismDisabledContextMenuStrip); - yield return RingtoetsTreeNodeInfoFactory.CreateFailureMechanismContextTreeNodeInfo( - StandAloneFailureMechanismEnabledChildNodeObjects, - StandAloneFailureMechanismDisabledChildNodeObjects, - StandAloneFailureMechanismEnabledContextMenuStrip, - StandAloneFailureMechanismDisabledContextMenuStrip); - yield return new TreeNodeInfo { Text = context => RingtoetsCommonFormsResources.FailureMechanism_Sections_DisplayName, @@ -328,42 +321,44 @@ #region FailureMechanismResults ViewInfo - private static bool CloseSimpleFailureMechanismResultViewForData(FailureMechanismResultView view, object o) + private static bool CloseSimpleFailureMechanismResultViewForData(SimpleFailureMechanismResultView view, object o) { var assessmentSection = o as IAssessmentSection; var failureMechanism = o as IFailureMechanism; var failureMechanismContext = o as IFailureMechanismContext; + var data = view.Data; if (assessmentSection != null) { return assessmentSection .GetFailureMechanisms() - .OfType>() - .Any(fm => ReferenceEquals(view.Data, fm.SectionResults)); + .OfType>() + .Any(fm => ReferenceEquals(data, fm.SectionResults)); } if (failureMechanismContext != null) { failureMechanism = failureMechanismContext.WrappedData; } - return failureMechanism != null && ReferenceEquals(view.Data, ((FailureMechanismBase)failureMechanism).SectionResults); + return failureMechanism != null && ReferenceEquals(data, ((IHasSectionResults)failureMechanism).SectionResults); } - private static bool CloseCustomFailureMechanismResultViewForData(FailureMechanismResultView view, object o) + private static bool CloseCustomFailureMechanismResultViewForData(CustomFailureMechanismResultView view, object o) { var assessmentSection = o as IAssessmentSection; var failureMechanism = o as IFailureMechanism; var failureMechanismContext = o as IFailureMechanismContext; + var data = view.Data; if (assessmentSection != null) { return assessmentSection .GetFailureMechanisms() - .OfType>() - .Any(fm => ReferenceEquals(view.Data, fm.SectionResults)); + .OfType>() + .Any(fm => ReferenceEquals(data, fm.SectionResults)); } if (failureMechanismContext != null) { failureMechanism = failureMechanismContext.WrappedData; } - return failureMechanism != null && ReferenceEquals(view.Data, ((FailureMechanismBase)failureMechanism).SectionResults); + return failureMechanism != null && ReferenceEquals(data, ((IHasSectionResults)failureMechanism).SectionResults); } #endregion @@ -590,8 +585,8 @@ private IList GetOutputs(IFailureMechanism nodeData) { - var simple = nodeData as FailureMechanismBase; - var custom = nodeData as FailureMechanismBase; + var simple = nodeData as IHasSectionResults; + var custom = nodeData as IHasSectionResults; var failureMechanismSectionResultContexts = new object[1]; if (simple != null) { Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/ClosingStructureFailureMechanismTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/ClosingStructureFailureMechanismTest.cs (.../ClosingStructureFailureMechanismTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/ClosingStructureFailureMechanismTest.cs (.../ClosingStructureFailureMechanismTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -24,7 +24,6 @@ using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.StandAlone; -using Ringtoets.Integration.Data.StandAlone.Result; namespace Ringtoets.Integration.Data.Test.StandAlone { @@ -38,7 +37,7 @@ var failureMechanism = new ClosingStructureFailureMechanism(); // Assert - Assert.IsInstanceOf>(failureMechanism); + Assert.IsInstanceOf(failureMechanism); Assert.AreEqual("Kunstwerken - Betrouwbaarheid sluiting kunstwerk", failureMechanism.Name); Assert.AreEqual("BSKW", failureMechanism.Code); CollectionAssert.IsEmpty(failureMechanism.Sections); Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/DuneErosionFailureMechanismTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/DuneErosionFailureMechanismTest.cs (.../DuneErosionFailureMechanismTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/DuneErosionFailureMechanismTest.cs (.../DuneErosionFailureMechanismTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -24,7 +24,6 @@ using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.StandAlone; -using Ringtoets.Integration.Data.StandAlone.Result; namespace Ringtoets.Integration.Data.Test.StandAlone { @@ -38,7 +37,7 @@ var failureMechanism = new DuneErosionFailureMechanism(); // Assert - Assert.IsInstanceOf>(failureMechanism); + Assert.IsInstanceOf(failureMechanism); Assert.AreEqual("Duinwaterkering - Duinafslag", failureMechanism.Name); Assert.AreEqual("DA", failureMechanism.Code); CollectionAssert.IsEmpty(failureMechanism.Sections); Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/GrassCoverErosionOutwardsFailureMechanismTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/GrassCoverErosionOutwardsFailureMechanismTest.cs (.../GrassCoverErosionOutwardsFailureMechanismTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/GrassCoverErosionOutwardsFailureMechanismTest.cs (.../GrassCoverErosionOutwardsFailureMechanismTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -24,7 +24,6 @@ using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.StandAlone; -using Ringtoets.Integration.Data.StandAlone.Result; namespace Ringtoets.Integration.Data.Test.StandAlone { @@ -38,7 +37,7 @@ var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); // Assert - Assert.IsInstanceOf>(failureMechanism); + Assert.IsInstanceOf(failureMechanism); Assert.AreEqual("Dijken en dammen - Grasbekleding erosie buitentalud", failureMechanism.Name); Assert.AreEqual("GEBU", failureMechanism.Code); CollectionAssert.IsEmpty(failureMechanism.Sections); Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/GrassCoverSlipOffOutwardsFailureMechanismTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/GrassCoverSlipOffOutwardsFailureMechanismTest.cs (.../GrassCoverSlipOffOutwardsFailureMechanismTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/GrassCoverSlipOffOutwardsFailureMechanismTest.cs (.../GrassCoverSlipOffOutwardsFailureMechanismTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -24,7 +24,6 @@ using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.StandAlone; -using Ringtoets.Integration.Data.StandAlone.Result; namespace Ringtoets.Integration.Data.Test.StandAlone { @@ -38,7 +37,7 @@ var failureMechanism = new GrassCoverSlipOffOutwardsFailureMechanism(); // Assert - Assert.IsInstanceOf>(failureMechanism); + Assert.IsInstanceOf(failureMechanism); Assert.AreEqual("Dijken en dammen - Grasbekleding afschuiven buitentalud", failureMechanism.Name); Assert.AreEqual("GABU", failureMechanism.Code); CollectionAssert.IsEmpty(failureMechanism.Sections); Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/MacroStabilityInwardsFailureMechanismTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/MacroStabilityInwardsFailureMechanismTest.cs (.../MacroStabilityInwardsFailureMechanismTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/MacroStabilityInwardsFailureMechanismTest.cs (.../MacroStabilityInwardsFailureMechanismTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -24,7 +24,6 @@ using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.StandAlone; -using Ringtoets.Integration.Data.StandAlone.Result; namespace Ringtoets.Integration.Data.Test.StandAlone { @@ -38,7 +37,7 @@ var failureMechanism = new MacroStabilityInwardsFailureMechanism(); // Assert - Assert.IsInstanceOf>(failureMechanism); + Assert.IsInstanceOf(failureMechanism); Assert.AreEqual("Dijken en dammen - Macrostabiliteit binnenwaarts", failureMechanism.Name); Assert.AreEqual("STBI", failureMechanism.Code); CollectionAssert.IsEmpty(failureMechanism.Sections); Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/PipingStructureFailureMechanismTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/PipingStructureFailureMechanismTest.cs (.../PipingStructureFailureMechanismTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/PipingStructureFailureMechanismTest.cs (.../PipingStructureFailureMechanismTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -24,7 +24,6 @@ using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.StandAlone; -using Ringtoets.Integration.Data.StandAlone.Result; namespace Ringtoets.Integration.Data.Test.StandAlone { @@ -38,7 +37,7 @@ var failureMechanism = new PipingStructureFailureMechanism(); // Assert - Assert.IsInstanceOf>(failureMechanism); + Assert.IsInstanceOf(failureMechanism); Assert.AreEqual("Kunstwerken - Piping bij kunstwerk", failureMechanism.Name); Assert.AreEqual("PKW", failureMechanism.Code); CollectionAssert.IsEmpty(failureMechanism.Sections); Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/StabilityStoneCoverFailureMechanismTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/StabilityStoneCoverFailureMechanismTest.cs (.../StabilityStoneCoverFailureMechanismTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/StabilityStoneCoverFailureMechanismTest.cs (.../StabilityStoneCoverFailureMechanismTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -24,7 +24,6 @@ using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.StandAlone; -using Ringtoets.Integration.Data.StandAlone.Result; namespace Ringtoets.Integration.Data.Test.StandAlone { @@ -38,7 +37,7 @@ var failureMechanism = new StabilityStoneCoverFailureMechanism(); // Assert - Assert.IsInstanceOf>(failureMechanism); + Assert.IsInstanceOf(failureMechanism); Assert.AreEqual("Dijken en dammen - Stabiliteit steenzetting", failureMechanism.Name); Assert.AreEqual("ZST", failureMechanism.Code); CollectionAssert.IsEmpty(failureMechanism.Sections); Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/StrengthStabilityPointConstructionFailureMechanismTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/StrengthStabilityPointConstructionFailureMechanismTest.cs (.../StrengthStabilityPointConstructionFailureMechanismTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/StrengthStabilityPointConstructionFailureMechanismTest.cs (.../StrengthStabilityPointConstructionFailureMechanismTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -24,7 +24,6 @@ using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.StandAlone; -using Ringtoets.Integration.Data.StandAlone.Result; namespace Ringtoets.Integration.Data.Test.StandAlone { @@ -38,7 +37,7 @@ var failureMechanism = new StrengthStabilityPointConstructionFailureMechanism(); // Assert - Assert.IsInstanceOf>(failureMechanism); + Assert.IsInstanceOf(failureMechanism); Assert.AreEqual("Kunstwerken - Sterkte en stabiliteit puntconstructies", failureMechanism.Name); Assert.AreEqual("STKWp", failureMechanism.Code); CollectionAssert.IsEmpty(failureMechanism.Sections); Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/WaveImpactAsphaltFailureMechanismTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/WaveImpactAsphaltFailureMechanismTest.cs (.../WaveImpactAsphaltFailureMechanismTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/WaveImpactAsphaltFailureMechanismTest.cs (.../WaveImpactAsphaltFailureMechanismTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -24,7 +24,6 @@ using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.StandAlone; -using Ringtoets.Integration.Data.StandAlone.Result; namespace Ringtoets.Integration.Data.Test.StandAlone { @@ -38,7 +37,7 @@ var failureMechanism = new MacroStabilityInwardsFailureMechanism(); // Assert - Assert.IsInstanceOf>(failureMechanism); + Assert.IsInstanceOf(failureMechanism); Assert.AreEqual("Dijken en dammen - Macrostabiliteit binnenwaarts", failureMechanism.Name); Assert.AreEqual("STBI", failureMechanism.Code); CollectionAssert.IsEmpty(failureMechanism.Sections); Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PresentationObjects/StandAloneFailureMechanismContextTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PresentationObjects/StandAloneFailureMechanismContextTest.cs (.../StandAloneFailureMechanismContextTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PresentationObjects/StandAloneFailureMechanismContextTest.cs (.../StandAloneFailureMechanismContextTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -25,7 +25,6 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Integration.Data.StandAlone; -using Ringtoets.Integration.Data.StandAlone.Result; using Ringtoets.Integration.Forms.PresentationObjects; namespace Ringtoets.Integration.Forms.Test.PresentationObjects Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj (.../Ringtoets.Integration.Forms.Test.csproj) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj (.../Ringtoets.Integration.Forms.Test.csproj) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -67,9 +67,8 @@ - + - Fisheye: Tag 41fac7fff0a505c08945108d795dcb877f10b816 refers to a dead (removed) revision in file `Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/CustomFailureMechanismContextTreeNodeInfoTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/FailureMechanismContextTreeNodeInfoTest.cs =================================================================== diff -u --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/FailureMechanismContextTreeNodeInfoTest.cs (revision 0) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/FailureMechanismContextTreeNodeInfoTest.cs (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -0,0 +1,469 @@ +// 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 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using System.Drawing; +using System.Linq; +using Core.Common.Base; +using Core.Common.Base.Geometry; +using Core.Common.Controls.TreeView; +using Core.Common.Gui; +using Core.Common.Gui.Commands; +using Core.Common.Gui.ContextMenu; +using Core.Common.Gui.TestUtil.ContextMenu; +using Core.Common.TestUtil; +using NUnit.Framework; +using Rhino.Mocks; +using Ringtoets.Common.Data; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Calculation; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Forms.PresentationObjects; +using Ringtoets.Integration.Forms.PresentationObjects; +using Ringtoets.Integration.Plugin; +using RingtoetsFormsResources = Ringtoets.Integration.Forms.Properties.Resources; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Ringtoets.Integration.Forms.Test.TreeNodeInfos +{ + [TestFixture] + public class FailureMechanismContextTreeNodeInfoTest + { + private MockRepository mocks; + + [SetUp] + public void SetUp() + { + mocks = new MockRepository(); + } + + [Test] + public void Initialized_Always_ExpectedPropertiesSet() + { + // Setup + using (var plugin = new RingtoetsGuiPlugin()) + { + var info = GetInfo(plugin); + + // Assert + Assert.AreEqual(typeof(FailureMechanismContext), info.TagType); + Assert.IsNull(info.EnsureVisibleOnCreate); + Assert.IsNull(info.CanRename); + Assert.IsNull(info.OnNodeRenamed); + Assert.IsNull(info.CanRemove); + Assert.IsNull(info.OnNodeRemoved); + Assert.IsNull(info.CanCheck); + Assert.IsNull(info.IsChecked); + Assert.IsNull(info.OnNodeChecked); + Assert.IsNull(info.CanDrag); + Assert.IsNull(info.CanDrop); + Assert.IsNull(info.CanInsert); + Assert.IsNull(info.OnDrop); + } + } + + [Test] + public void Text_Always_ReturnsName() + { + // Setup + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new TestFailureMechanism("name", "code"); + var failureMechanismContext = new CustomFailureMechanismContext(failureMechanism, assessmentSection); + + using (var plugin = new RingtoetsGuiPlugin()) + { + var info = GetInfo(plugin); + + // Call + var text = info.Text(failureMechanismContext); + + // Assert + Assert.AreEqual(failureMechanism.Name, text); + } + mocks.VerifyAll(); + } + + [Test] + public void Image_Always_ReturnsSetImage() + { + // Setup + using (var plugin = new RingtoetsGuiPlugin()) + { + var info = GetInfo(plugin); + + // Call + var image = info.Image(null); + + // Assert + TestHelper.AssertImagesAreEqual(RingtoetsCommonFormsResources.FailureMechanismIcon, image); + } + } + + [Test] + public void ForeColor_Always_ReturnsControlText() + { + // Setup + using (var plugin = new RingtoetsGuiPlugin()) + { + var info = GetInfo(plugin); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new TestFailureMechanism("C", "C"); + var context = new CustomFailureMechanismContext(failureMechanism, assessmentSection); + + // Call + var textColor = info.ForeColor(context); + + // Assert + Assert.AreEqual(Color.FromKnownColor(KnownColor.ControlText), textColor); + + mocks.VerifyAll(); + } + } + + [Test] + public void ChildNodeObjects_FailureMechanismIsRelevant_ReturnFoldersWithInputAndOutput() + { + // Setup + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + using (var plugin = new RingtoetsGuiPlugin()) + { + var info = GetInfo(plugin); + + var failureMechanism = new TestFailureMechanism("test", "C"); + failureMechanism.AddSection(new FailureMechanismSection("A", new[] + { + new Point2D(1, 2), + new Point2D(5, 6) + })); + var failureMechanismContext = new CustomFailureMechanismContext(failureMechanism, assessmentSection); + + // Call + object[] children = info.ChildNodeObjects(failureMechanismContext).ToArray(); + + // Assert + Assert.AreEqual(2, children.Length); + var inputFolder = (CategoryTreeFolder) children[0]; + Assert.AreEqual("Invoer", inputFolder.Name); + Assert.AreEqual(TreeFolderCategory.Input, inputFolder.Category); + + var failureMechanismSectionsContext = (FailureMechanismSectionsContext) inputFolder.Contents[0]; + CollectionAssert.AreEqual(failureMechanism.Sections, failureMechanismSectionsContext.WrappedData); + Assert.AreSame(failureMechanism, failureMechanismSectionsContext.ParentFailureMechanism); + Assert.AreSame(assessmentSection, failureMechanismSectionsContext.ParentAssessmentSection); + + var commentContext = (CommentContext) inputFolder.Contents[1]; + Assert.IsNotNull(commentContext); + Assert.AreSame(failureMechanism, commentContext.CommentContainer); + + var outputFolder = (CategoryTreeFolder) children[1]; + Assert.AreEqual("Uitvoer", outputFolder.Name); + Assert.AreEqual(TreeFolderCategory.Output, outputFolder.Category); + + var failureMechanismResultsContext = (FailureMechanismSectionResultContext) outputFolder.Contents[0]; + Assert.AreSame(failureMechanism, failureMechanismResultsContext.FailureMechanism); + Assert.AreSame(failureMechanism.SectionResults, failureMechanismResultsContext.SectionResults); + } + mocks.VerifyAll(); + } + + [Test] + public void ChildNodeObjects_FailureMechanismIsNotRelevant_ReturnOnlyFailureMechanismComments() + { + // Setup + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + using (var plugin = new RingtoetsGuiPlugin()) + { + var info = GetInfo(plugin); + + var failureMechanism = new TestFailureMechanism("test", "C") + { + IsRelevant = false + }; + failureMechanism.AddSection(new FailureMechanismSection("A", new[] + { + new Point2D(1, 2), + new Point2D(5, 6) + })); + var failureMechanismContext = new CustomFailureMechanismContext(failureMechanism, assessmentSection); + + // Call + object[] children = info.ChildNodeObjects(failureMechanismContext).ToArray(); + + // Assert + Assert.AreEqual(1, children.Length); + var commentContext = (CommentContext) children[0]; + Assert.AreSame(failureMechanism, commentContext.CommentContainer); + } + mocks.VerifyAll(); + } + + [Test] + public void ContextMenuStrip_FailureMechanismIsRelevant_CallsContextMenuBuilderMethods() + { + // Setup + using (var treeView = new TreeViewControl()) + { + var failureMechanism = new TestFailureMechanism("A", "C"); + var assessmentSection = mocks.Stub(); + var context = new CustomFailureMechanismContext(failureMechanism, assessmentSection); + + var gui = mocks.StrictMock(); + var menuBuilderMock = mocks.StrictMock(); + + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddImportItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddExportItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddExpandAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddPropertiesItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.Build()).Return(null); + + gui.Expect(cmp => cmp.Get(context, treeView)).Return(menuBuilderMock); + gui.Stub(g => g.ProjectOpened += null).IgnoreArguments(); + gui.Stub(g => g.ProjectOpened -= null).IgnoreArguments(); + + mocks.ReplayAll(); + + using (var plugin = new RingtoetsGuiPlugin()) + { + var info = GetInfo(plugin); + + plugin.Gui = gui; + + // Call + info.ContextMenuStrip(context, assessmentSection, treeView); + } + // Assert + mocks.VerifyAll(); + } + } + + [Test] + public void ContextMenuStrip_FailureMechanismIsNotRelevant_CallsContextMenuBuilderMethods() + { + // Setup + using (var treeView = new TreeViewControl()) + { + var failureMechanism = new TestFailureMechanism("A", "C") + { + IsRelevant = false + }; + var assessmentSection = mocks.Stub(); + var context = new CustomFailureMechanismContext(failureMechanism, assessmentSection); + + var gui = mocks.StrictMock(); + var menuBuilderMock = mocks.StrictMock(); + + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddExpandAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.Build()).Return(null); + + gui.Expect(cmp => cmp.Get(context, treeView)).Return(menuBuilderMock); + gui.Stub(g => g.ProjectOpened += null).IgnoreArguments(); + gui.Stub(g => g.ProjectOpened -= null).IgnoreArguments(); + + mocks.ReplayAll(); + + using (var plugin = new RingtoetsGuiPlugin()) + { + var info = GetInfo(plugin); + + plugin.Gui = gui; + + // Call + info.ContextMenuStrip(context, assessmentSection, treeView); + } + // Assert + mocks.VerifyAll(); + } + } + + [Test] + public void ContextMenuStrip_FailureMechanismIsRelevant_IsRelevantEnabled() + { + // Setup + using (var treeView = new TreeViewControl()) + { + var assessmentSection = mocks.Stub(); + var failureMechanism = new TestFailureMechanism("A", "C"); + var context = new CustomFailureMechanismContext(failureMechanism, assessmentSection); + + var menuBuilderMock = new CustomItemsOnlyContextMenuBuilder(); + + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(context, treeView)).Return(menuBuilderMock); + gui.Stub(g => g.ProjectOpened += null).IgnoreArguments(); + gui.Stub(g => g.ProjectOpened -= null).IgnoreArguments(); + + mocks.ReplayAll(); + + using (var plugin = new RingtoetsGuiPlugin()) + { + plugin.Gui = gui; + + var info = GetInfo(plugin); + + // Call + var menu = info.ContextMenuStrip(context, assessmentSection, treeView); + + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuRelevancyIndex, + RingtoetsCommonFormsResources.FailureMechanismContextMenuStrip_Is_relevant, + RingtoetsCommonFormsResources.FailureMechanismContextMenuStrip_Is_relevant_Tooltip, + RingtoetsCommonFormsResources.Checkbox_ticked); + } + + // Assert + mocks.VerifyAll(); + } + } + + [Test] + public void ContextMenuStrip_FailureMechanismIsRelevantAndClickOnIsRelevantItem_MakeFailureMechanismNotRelevant() + { + // Setup + var failureMechanismObserver = mocks.Stub(); + failureMechanismObserver.Expect(o => o.UpdateObserver()); + + var failureMechanism = new TestFailureMechanism("A", "C") + { + IsRelevant = true + }; + failureMechanism.Attach(failureMechanismObserver); + + var assessmentSection = mocks.Stub(); + var failureMechanismContext = new CustomFailureMechanismContext(failureMechanism, assessmentSection); + + var viewCommands = mocks.StrictMock(); + viewCommands.Expect(vs => vs.RemoveAllViewsForItem(failureMechanismContext)); + + var treeViewControl = mocks.StrictMock(); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + + var gui = mocks.StrictMock(); + gui.Stub(g => g.ViewCommands).Return(viewCommands); + gui.Stub(g => g.ProjectOpened += null).IgnoreArguments(); + gui.Stub(g => g.ProjectOpened -= null).IgnoreArguments(); + gui.Expect(g => g.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); + + mocks.ReplayAll(); + + using (var guiPlugin = new RingtoetsGuiPlugin()) + { + guiPlugin.Gui = gui; + + var info = GetInfo(guiPlugin); + + var contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + + // Call + contextMenu.Items[contextMenuRelevancyIndex].PerformClick(); + + // Assert + Assert.IsFalse(failureMechanism.IsRelevant); + } + mocks.VerifyAll(); + } + + [Test] + public void ContextMenuStrip_FailureMechanismIsNotRelevantAndClickOnIsRelevantItem_MakeFailureMechanismRelevant() + { + // Setup + var failureMechanismObserver = mocks.Stub(); + failureMechanismObserver.Expect(o => o.UpdateObserver()); + + var failureMechanism = new TestFailureMechanism("A", "C") + { + IsRelevant = false + }; + failureMechanism.Attach(failureMechanismObserver); + + var assessmentSection = mocks.Stub(); + var failureMechanismContext = new CustomFailureMechanismContext(failureMechanism, assessmentSection); + + var treeViewControl = mocks.StrictMock(); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + + var gui = mocks.StrictMock(); + gui.Stub(g => g.ProjectOpened += null).IgnoreArguments(); + gui.Stub(g => g.ProjectOpened -= null).IgnoreArguments(); + gui.Expect(g => g.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); + + mocks.ReplayAll(); + + using (var guiPlugin = new RingtoetsGuiPlugin()) + { + guiPlugin.Gui = gui; + + var info = GetInfo(guiPlugin); + + var contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + + // Call + contextMenu.Items[contextMenuRelevancyIndex].PerformClick(); + + // Assert + Assert.IsTrue(failureMechanism.IsRelevant); + } + mocks.VerifyAll(); + } + + private const int contextMenuRelevancyIndex = 0; + + private TreeNodeInfo GetInfo(RingtoetsGuiPlugin guiPlugin) + { + return guiPlugin.GetTreeNodeInfos().First(tni => tni.TagType == typeof(FailureMechanismContext)); + } + + public class TestFailureMechanism : FailureMechanismBase, IHasSectionResults + { + public TestFailureMechanism(string name, string code) + : base(name, code) + { + SectionResults = new List(); + } + + public IEnumerable SectionResults { get; private set; } + + public override IEnumerable Calculations + { + get + { + throw new NotImplementedException(); + } + } + } + } + +} \ No newline at end of file Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/FailureMechanismSectionResultContextTreeNodeInfoTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/FailureMechanismSectionResultContextTreeNodeInfoTest.cs (.../FailureMechanismSectionResultContextTreeNodeInfoTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/FailureMechanismSectionResultContextTreeNodeInfoTest.cs (.../FailureMechanismSectionResultContextTreeNodeInfoTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -31,7 +31,6 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Integration.Data.StandAlone; -using Ringtoets.Integration.Data.StandAlone.Result; using Ringtoets.Integration.Plugin; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; @@ -125,21 +124,22 @@ } } - public class SimpleFailureMechanism : FailureMechanismBase + public class SimpleFailureMechanism : FailureMechanismBase, IHasSectionResults { - public SimpleFailureMechanism() : base("N", "C") {} + public SimpleFailureMechanism() + : base("N", "C") + { + SectionResults = new List(); + } + public IEnumerable SectionResults { get; private set; } + public override IEnumerable Calculations { get { throw new System.NotImplementedException(); } } - - protected override CustomFailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) - { - throw new System.NotImplementedException(); - } } } \ No newline at end of file Fisheye: Tag 41fac7fff0a505c08945108d795dcb877f10b816 refers to a dead (removed) revision in file `Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/SimpleFailureMechanismContextTreeNodeInfoTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs (.../FailureMechanismContributionViewTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs (.../FailureMechanismContributionViewTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -200,7 +200,7 @@ var testName = "testName"; var testCode = "testCode"; - var someMechanism = mockRepository.StrictMock>(testName, testCode); + var someMechanism = mockRepository.StrictMock(testName, testCode); var assessmentSection = mockRepository.Stub(); assessmentSection.Stub(section => section.GetFailureMechanisms()) .Return(Enumerable.Empty()); Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/FileImporters/FailureMechanismSectionsImporterTest.cs =================================================================== diff -u -r266b001fc7fcb405383d2411a970efa735e3c66d -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/FileImporters/FailureMechanismSectionsImporterTest.cs (.../FailureMechanismSectionsImporterTest.cs) (revision 266b001fc7fcb405383d2411a970efa735e3c66d) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/FileImporters/FailureMechanismSectionsImporterTest.cs (.../FailureMechanismSectionsImporterTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -633,7 +633,7 @@ } } - private class Simple : FailureMechanismBase + private class Simple : FailureMechanismBase { public Simple() : base("Stubbed name","Stubbed code") {} @@ -644,11 +644,6 @@ throw new NotImplementedException(); } } - - protected override FailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) - { - return new FailureMechanismSectionResult(section); - } } private class ProgressNotification Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/RingtoetsGuiPluginTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/RingtoetsGuiPluginTest.cs (.../RingtoetsGuiPluginTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/RingtoetsGuiPluginTest.cs (.../RingtoetsGuiPluginTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -42,8 +42,6 @@ using Ringtoets.Common.Forms.Views; using Ringtoets.HydraRing.Data; using Ringtoets.Integration.Data; -using Ringtoets.Integration.Data.StandAlone; -using Ringtoets.Integration.Data.StandAlone.Result; using Ringtoets.Integration.Forms.PresentationObjects; using Ringtoets.Integration.Forms.PropertyClasses; using Ringtoets.Integration.Forms.Views; @@ -262,11 +260,10 @@ TreeNodeInfo[] treeNodeInfos = guiPlugin.GetTreeNodeInfos().ToArray(); // Assert - Assert.AreEqual(11, treeNodeInfos.Length); + Assert.AreEqual(10, treeNodeInfos.Length); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(IAssessmentSection))); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(ReferenceLineContext))); - Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(SimpleFailureMechanismContext))); - Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(CustomFailureMechanismContext))); + Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(FailureMechanismContext))); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(CategoryTreeFolder))); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(FailureMechanismSectionsContext))); Assert.IsTrue(treeNodeInfos.Any(tni => tni.TagType == typeof(FailureMechanismContributionContext))); Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/ViewInfos/CustomFailureMechanismResultViewInfoTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/ViewInfos/CustomFailureMechanismResultViewInfoTest.cs (.../CustomFailureMechanismResultViewInfoTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/ViewInfos/CustomFailureMechanismResultViewInfoTest.cs (.../CustomFailureMechanismResultViewInfoTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -30,7 +30,6 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Forms.PresentationObjects; -using Ringtoets.Integration.Data.StandAlone.Result; using Ringtoets.Integration.Forms.Views; using Ringtoets.Piping.Data; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; @@ -163,7 +162,7 @@ // Setup var viewMock = mocks.StrictMock(); var assessmentSectionMock = mocks.StrictMock(); - var failureMechanismMock = mocks.Stub>("N","C"); + var failureMechanismMock = mocks.Stub("N", "C"); var failureMechanism = new Simple(); viewMock.Expect(vm => vm.Data).Return(failureMechanism.SectionResults); @@ -296,22 +295,22 @@ mocks.VerifyAll(); } - private class Simple : FailureMechanismBase + private class Simple : FailureMechanismBase, IHasSectionResults { - public Simple() : base("simple failure mechanism", "simple code") {} + public Simple() : base("simple failure mechanism", "simple code") + { + SectionResults = new List(); + } + public IEnumerable SectionResults { get; private set; } + public override IEnumerable Calculations { get { throw new NotImplementedException(); } } - - protected override CustomFailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) - { - throw new NotImplementedException(); - } } } } \ No newline at end of file Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/ViewInfos/SimpleFailureMechanismResultViewInfoTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/ViewInfos/SimpleFailureMechanismResultViewInfoTest.cs (.../SimpleFailureMechanismResultViewInfoTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/ViewInfos/SimpleFailureMechanismResultViewInfoTest.cs (.../SimpleFailureMechanismResultViewInfoTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -30,7 +30,6 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Forms.PresentationObjects; -using Ringtoets.Integration.Data.StandAlone.Result; using Ringtoets.Integration.Forms.Views; using Ringtoets.Piping.Data; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; @@ -79,6 +78,7 @@ // Assert Assert.AreSame(failureMechanism.SectionResults, viewData); + mocks.VerifyAll(); } [Test] @@ -95,6 +95,7 @@ // Assert Assert.AreEqual("Oordeel", viewName); + mocks.VerifyAll(); } [Test] @@ -155,6 +156,7 @@ // Assert Assert.IsFalse(closeForData); + mocks.VerifyAll(); } [Test] @@ -163,7 +165,7 @@ // Setup var viewMock = mocks.StrictMock(); var assessmentSectionMock = mocks.StrictMock(); - var failureMechanismMock = mocks.Stub>("N","C"); + var failureMechanismMock = mocks.Stub("N","C"); var failureMechanism = new Simple(); viewMock.Expect(vm => vm.Data).Return(failureMechanism.SectionResults); @@ -179,6 +181,7 @@ // Assert Assert.IsFalse(closeForData); + mocks.VerifyAll(); } [Test] @@ -203,6 +206,7 @@ // Assert Assert.IsTrue(closeForData); + mocks.VerifyAll(); } [Test] @@ -220,6 +224,7 @@ // Assert Assert.IsTrue(closeForData); + mocks.VerifyAll(); } [Test] @@ -237,6 +242,7 @@ // Assert Assert.IsFalse(closeForData); + mocks.VerifyAll(); } [Test] @@ -256,6 +262,7 @@ // Assert Assert.IsTrue(closeForData); + mocks.VerifyAll(); } [Test] @@ -275,6 +282,7 @@ // Assert Assert.IsFalse(closeForData); + mocks.VerifyAll(); } [Test] @@ -296,22 +304,22 @@ mocks.VerifyAll(); } - private class Simple : FailureMechanismBase + private class Simple : FailureMechanismBase, IHasSectionResults { - public Simple() : base("simple failure mechanism", "simple code") {} + public Simple() : base("simple failure mechanism", "simple code") + { + SectionResults = new List(); + } + public IEnumerable SectionResults { get; private set; } + public override IEnumerable Calculations { get { throw new NotImplementedException(); } } - - protected override SimpleFailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) - { - throw new NotImplementedException(); - } } } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculationGroupExtensions.cs =================================================================== diff -u -r64d5609bb2912cd52dc74deffdd189222e240599 -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculationGroupExtensions.cs (.../PipingCalculationGroupExtensions.cs) (revision 64d5609bb2912cd52dc74deffdd189222e240599) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculationGroupExtensions.cs (.../PipingCalculationGroupExtensions.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -32,7 +32,7 @@ public static class PipingCalculationGroupExtensions { /// - /// Adds to . + /// Adds to . /// /// The group containing the calculations. /// The failure mechanism containing the section results. Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanism.cs =================================================================== diff -u -rb4640ce4b065b497e4401092aaf77f4d1fa2b5f0 -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanism.cs (.../PipingFailureMechanism.cs) (revision b4640ce4b065b497e4401092aaf77f4d1fa2b5f0) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanism.cs (.../PipingFailureMechanism.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -32,8 +32,10 @@ /// /// Model for performing piping calculations. /// - public class PipingFailureMechanism : FailureMechanismBase, ICalculatableFailureMechanism + public class PipingFailureMechanism : FailureMechanismBase, ICalculatableFailureMechanism, IHasSectionResults { + private readonly IList sectionResults; + /// /// Initializes a new instance of the class. /// @@ -45,6 +47,8 @@ SurfaceLines = new List(); StochasticSoilModels = new ObservableList(); CalculationsGroup = new CalculationGroup(RingtoetsCommonDataResources.FailureMechanism_Calculations_DisplayName, false); + + sectionResults = new List(); } public override IEnumerable Calculations @@ -90,9 +94,18 @@ public CalculationGroup CalculationsGroup { get; private set; } - protected override PipingFailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) + public override void AddSection(FailureMechanismSection section) { - return new PipingFailureMechanismSectionResult(section); + base.AddSection(section); + sectionResults.Add(new PipingFailureMechanismSectionResult(section)); } + + public IEnumerable SectionResults + { + get + { + return sectionResults; + } + } } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismResultView.cs =================================================================== diff -u -rd3f0653198191062883c7e51eb3842b72c883578 -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismResultView.cs (.../PipingFailureMechanismResultView.cs) (revision d3f0653198191062883c7e51eb3842b72c883578) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismResultView.cs (.../PipingFailureMechanismResultView.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -43,13 +43,13 @@ { private const double tolerance = 1e-6; private readonly Observer failureMechanismObserver; - private readonly RecursiveObserver, PipingFailureMechanismSectionResult> failureMechanismSectionResultObserver; + private readonly RecursiveObserver failureMechanismSectionResultObserver; private readonly RecursiveObserver calculationInputObserver; private readonly RecursiveObserver calculationOutputObserver; private readonly RecursiveObserver calculationGroupObserver; private IEnumerable failureMechanismSectionResult; - private FailureMechanismBase failureMechanism; + private PipingFailureMechanism failureMechanism; private DataGridViewTextBoxColumn assessmentLayerTwoA; private DataGridViewTextBoxColumn assessmentLayerTwoB; private DataGridViewTextBoxColumn assessmentLayerThree; @@ -63,7 +63,7 @@ InitializeDataGridView(); failureMechanismObserver = new Observer(UpdataDataGridViewDataSource); - failureMechanismSectionResultObserver = new RecursiveObserver, PipingFailureMechanismSectionResult>(RefreshDataGridView, mechanism => mechanism.SectionResults); + failureMechanismSectionResultObserver = new RecursiveObserver(RefreshDataGridView, mechanism => mechanism.SectionResults); // The concat is needed to observe the input of calculations in child groups. calculationInputObserver = new RecursiveObserver(UpdataDataGridViewDataSource, cg => cg.Children.Concat(cg.Children.OfType().Select(c => c.GetObservableInput()))); calculationOutputObserver = new RecursiveObserver(UpdataDataGridViewDataSource, cg => cg.Children.Concat(cg.Children.OfType().Select(c => c.GetObservableOutput()))); @@ -82,7 +82,7 @@ } set { - failureMechanism = value as FailureMechanismBase; + failureMechanism = value as PipingFailureMechanism; failureMechanismObserver.Observable = failureMechanism; failureMechanismSectionResultObserver.Observable = failureMechanism; Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs =================================================================== diff -u -ra3357275af675af3714fc89b99c554c288759ae2 -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision a3357275af675af3714fc89b99c554c288759ae2) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -283,7 +283,7 @@ { failureMechanism = failureMechanismContext.WrappedData; } - return failureMechanism != null && ReferenceEquals(view.Data, ((FailureMechanismBase) failureMechanism).SectionResults); + return failureMechanism != null && ReferenceEquals(view.Data, ((PipingFailureMechanism) failureMechanism).SectionResults); } # endregion Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismTest.cs =================================================================== diff -u -r64d5609bb2912cd52dc74deffdd189222e240599 -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismTest.cs (.../PipingFailureMechanismTest.cs) (revision 64d5609bb2912cd52dc74deffdd189222e240599) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismTest.cs (.../PipingFailureMechanismTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -48,7 +48,7 @@ var piping = new PipingFailureMechanism(); // Assert - Assert.IsInstanceOf>(piping); + Assert.IsInstanceOf(piping); Assert.IsInstanceOf(piping); Assert.AreEqual(Resources.PipingFailureMechanism_DisplayName, piping.Name); Assert.AreEqual(Resources.PipingFailureMechanism_DisplayCode, piping.Code); Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismResultViewTest.cs =================================================================== diff -u -r209bfd7b71ef53a57e1a52337f1333d38122282f -r41fac7fff0a505c08945108d795dcb877f10b816 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismResultViewTest.cs (.../PipingFailureMechanismResultViewTest.cs) (revision 209bfd7b71ef53a57e1a52337f1333d38122282f) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismResultViewTest.cs (.../PipingFailureMechanismResultViewTest.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) @@ -158,7 +158,7 @@ { // Setup var mocks = new MockRepository(); - var failureMechanism = new SimpleFailureMechanism(); + var failureMechanism = new PipingFailureMechanism(); mocks.ReplayAll(); using (var view = new PipingFailureMechanismResultView { @@ -578,7 +578,7 @@ private PipingFailureMechanismResultView ShowFullyConfiguredFailureMechanismResultsView() { - var failureMechanism = new SimpleFailureMechanism(); + var failureMechanism = new PipingFailureMechanism(); failureMechanism.AddSection(new FailureMechanismSection("Section 1", new List { @@ -599,22 +599,22 @@ return failureMechanismResultView; } - private class SimpleFailureMechanism : FailureMechanismBase + private class SimpleFailureMechanism : FailureMechanismBase, IHasSectionResults { - public SimpleFailureMechanism() : base("Stubbed name", "Stubbed code") {} + public SimpleFailureMechanism() : base("Stubbed name", "Stubbed code") + { + SectionResults = new List(); + } + public IEnumerable SectionResults { get; private set; } + public override IEnumerable Calculations { get { throw new NotImplementedException(); } } - - protected override PipingFailureMechanismSectionResult CreateFailureMechanismSectionResult(FailureMechanismSection section) - { - return new PipingFailureMechanismSectionResult(section); - } } private PipingFailureMechanismResultView ShowFailureMechanismResultsView()