// Copyright (C) Stichting Deltares 2017. 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.ComponentModel; using Ringtoets.AssemblyTool.Data; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; using Ringtoets.Common.Forms.TypeConverters; using Ringtoets.Common.Forms.Views; using Ringtoets.Common.Primitives; using Ringtoets.Integration.Data.StandAlone; using Ringtoets.Integration.Data.StandAlone.AssemblyFactories; using Ringtoets.Integration.Data.StandAlone.SectionResults; namespace Ringtoets.Integration.Forms.Views.SectionResultRows { /// /// Class for displaying as a row in a grid view. /// public class MacroStabilityOutwardsSectionResultRow : FailureMechanismSectionResultRow { private readonly MacroStabilityOutwardsFailureMechanism failureMechanism; private readonly IAssessmentSection assessmentSection; /// /// Creates a new instance of . /// /// The to wrap /// so that it can be displayed as a row. /// The failure mechanism the section result belongs to. /// The assessment section the section result belongs to. /// Thrown when any parameter is null. public MacroStabilityOutwardsSectionResultRow(MacroStabilityOutwardsFailureMechanismSectionResult sectionResult, MacroStabilityOutwardsFailureMechanism failureMechanism, IAssessmentSection assessmentSection) : base(sectionResult) { if (failureMechanism == null) { throw new ArgumentNullException(nameof(failureMechanism)); } if (assessmentSection == null) { throw new ArgumentNullException(nameof(assessmentSection)); } this.failureMechanism = failureMechanism; this.assessmentSection = assessmentSection; } /// /// Gets or sets the value representing the simple assessment result. /// public SimpleAssessmentResultType SimpleAssessmentResult { get { return SectionResult.SimpleAssessmentResult; } set { SectionResult.SimpleAssessmentResult = value; SectionResult.NotifyObservers(); } } /// /// Gets or sets the value representing the detailed assessment result. /// public DetailedAssessmentResultType DetailedAssessmentResult { get { return SectionResult.DetailedAssessmentResult; } set { SectionResult.DetailedAssessmentResult = value; SectionResult.NotifyObservers(); } } /// /// Gets or sets the detailed assessment probability of the . /// /// Thrown when is /// not in the range [0,1]. [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] public double DetailedAssessmentProbability { get { return SectionResult.DetailedAssessmentProbability; } set { SectionResult.DetailedAssessmentProbability = value; SectionResult.NotifyObservers(); } } /// /// Gets or sets the value representing the tailor made assessment result. /// public TailorMadeAssessmentResultType TailorMadeAssessmentResult { get { return SectionResult.TailorMadeAssessmentResult; } set { SectionResult.TailorMadeAssessmentResult = value; SectionResult.NotifyObservers(); } } /// /// Gets or sets the tailor made assessment probability of the . /// /// Thrown when is /// not in the range [0,1]. [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] public double TailorMadeAssessmentProbability { get { return SectionResult.TailorMadeAssessmentProbability; } set { SectionResult.TailorMadeAssessmentProbability = value; SectionResult.NotifyObservers(); } } /// /// Gets the simple assembly category group. /// /// Thrown when the /// could not be created. public FailureMechanismSectionAssemblyCategoryGroup SimpleAssemblyCategoryGroup { get { return MacroStabilityOutwardsFailureMechanismSectionResultAssemblyFactory.AssembleSimpleAssessment(SectionResult).Group; } } /// /// Gets the detailed assembly category group. /// /// Thrown when the /// could not be created. public FailureMechanismSectionAssemblyCategoryGroup DetailedAssemblyCategoryGroup { get { return MacroStabilityOutwardsFailureMechanismSectionResultAssemblyFactory.AssembleDetailedAssembly( SectionResult, failureMechanism, assessmentSection).Group; } } /// /// Gets the tailor made assembly category group. /// /// Thrown when the /// could not be created. public FailureMechanismSectionAssemblyCategoryGroup TailorMadeAssemblyCategoryGroup { get { return MacroStabilityOutwardsFailureMechanismSectionResultAssemblyFactory.AssembleTailorMadeAssembly( SectionResult, failureMechanism, assessmentSection).Group; } } /// /// Gets the combined assembly category group. /// /// Thrown when the /// could not be created. public FailureMechanismSectionAssemblyCategoryGroup CombinedAssemblyCategoryGroup { get { return MacroStabilityOutwardsFailureMechanismSectionResultAssemblyFactory.AssembleCombinedAssembly( SectionResult, failureMechanism, assessmentSection).Group; } } /// /// Gets or sets the indicator whether the combined assembly should be overwritten by . /// public bool UseManualAssemblyCategoryGroup { get { return SectionResult.UseManualAssemblyCategoryGroup; } set { SectionResult.UseManualAssemblyCategoryGroup = value; SectionResult.NotifyObservers(); } } /// /// Gets or sets the manually selected assembly category group. /// public FailureMechanismSectionAssemblyCategoryGroup ManualAssemblyCategoryGroup { get { return SectionResult.ManualAssemblyCategoryGroup; } set { SectionResult.ManualAssemblyCategoryGroup = value; SectionResult.NotifyObservers(); } } } }