// 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.Collections.Generic; using System.Drawing; using Core.Common.Base.Data; using Core.Common.Controls.DataGrid; using Ringtoets.AssemblyTool.Data; using Ringtoets.Common.Forms.Helpers; using Ringtoets.Integration.Data.Assembly; namespace Ringtoets.Integration.Forms.Views { /// /// This class represents a row displaying the properties of the . /// public class CombinedFailureMechanismSectionAssemblyResultRow : IHasColumnStateDefinitions { private const int totalResultIndex = 2; private const int pipingIndex = 3; private const int grassCoverErosionInwardsIndex = 4; private const int macroStabilityInwardsIndex = 5; private const int macroStabilityOutwardsIndex = 6; private const int microstabililityIndex = 7; private const int stabilityStoneCoverIndex = 8; private const int waveImpactAsphaltCoverIndex = 9; private const int waterPressureAsphaltCoverIndex = 10; private const int grassCoverErosionOutwardsIndex = 11; private const int grassCoverSlipOffOutwardsIndex = 12; private const int grassCoverSlipOffInwardsIndex = 13; private const int heightStructuresIndex = 14; private const int closingStructuresIndex = 15; private const int pipingStructureIndex = 16; private const int stabilityPointStructuresIndex = 17; private const int strengthStabilityLengthwiseConstructionIndex = 18; private const int duneErosionIndex = 19; private const int technicalInnovationIndex = 20; private readonly CombinedFailureMechanismSectionAssemblyResult combinedFailureMechanismSectionAssemblyResult; /// /// Creates a new instance of . /// /// The /// to wrap so that it can be displayed as a row. /// Thrown when /// is null. public CombinedFailureMechanismSectionAssemblyResultRow( CombinedFailureMechanismSectionAssemblyResult combinedFailureMechanismSectionAssemblyResult) { if (combinedFailureMechanismSectionAssemblyResult == null) { throw new ArgumentNullException(nameof(combinedFailureMechanismSectionAssemblyResult)); } this.combinedFailureMechanismSectionAssemblyResult = combinedFailureMechanismSectionAssemblyResult; ColumnStateDefinitions = new Dictionary(); CreateColumnStateDefinitions(); SetColumnStateDefinitionColors(); } /// /// Gets the start of the section from the beginning of the reference line. /// [km] /// public RoundedDouble SectionStart { get { return new RoundedDouble(3, combinedFailureMechanismSectionAssemblyResult.SectionStart); } } /// /// Gets the end of the section from the beginning of the reference line. /// [km] /// public RoundedDouble SectionEnd { get { return new RoundedDouble(3, combinedFailureMechanismSectionAssemblyResult.SectionEnd); } } /// /// Gets the total assembly result. /// public string TotalResult { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.TotalResult); } } /// /// Gets the assembly result for piping. /// public string Piping { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.Piping); } } /// /// Gets the assembly result for grass cover erosion inwards. /// public string GrassCoverErosionInwards { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.GrassCoverErosionInwards); } } /// /// Gets the assembly result for macro stability inwards. /// public string MacroStabilityInwards { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.MacroStabilityInwards); } } /// /// Gets the assembly result for macro stability outwards. /// public string MacroStabilityOutwards { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.MacroStabilityOutwards); } } /// /// Gets the assembly result for microstability. /// public string Microstability { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.Microstability); } } /// /// Gets the assembly result for stability stone cover. /// public string StabilityStoneCover { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.StabilityStoneCover); } } /// /// Gets the assembly result for wave impact asphalt cover. /// public string WaveImpactAsphaltCover { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.WaveImpactAsphaltCover); } } /// /// Gets the assembly result for water pressure asphalt cover. /// public string WaterPressureAsphaltCover { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.WaterPressureAsphaltCover); } } /// /// Gets the assembly result for grass cover erosion outwards. /// public string GrassCoverErosionOutwards { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.GrassCoverErosionOutwards); } } /// /// Gets the assembly result for grass cover slip off outwards. /// public string GrassCoverSlipOffOutwards { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.GrassCoverSlipOffOutwards); } } /// /// Gets the assembly result for grass cover slip off inwards. /// public string GrassCoverSlipOffInwards { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.GrassCoverSlipOffInwards); } } /// /// Gets the assembly result for height structures. /// public string HeightStructures { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.HeightStructures); } } /// /// Gets the assembly result for closing structures. /// public string ClosingStructures { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.ClosingStructures); } } /// /// Gets the assembly result for piping structure. /// public string PipingStructure { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.PipingStructure); } } /// /// Gets the assembly result for stability point structures. /// public string StabilityPointStructures { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.StabilityPointStructures); } } /// /// Gets the assembly result for strength stability lengthwise construction. /// public string StrengthStabilityLengthwiseConstruction { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.StrengthStabilityLengthwiseConstruction); } } /// /// Gets the assembly result for dune erosion. /// public string DuneErosion { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.DuneErosion); } } /// /// Gets the assembly result for technical innovation. /// public string TechnicalInnovation { get { return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayname(combinedFailureMechanismSectionAssemblyResult.TechnicalInnovation); } } public IDictionary ColumnStateDefinitions { get; } private void CreateColumnStateDefinitions() { ColumnStateDefinitions.Add(totalResultIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(pipingIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(grassCoverErosionInwardsIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(macroStabilityInwardsIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(macroStabilityOutwardsIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(microstabililityIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(stabilityStoneCoverIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(waveImpactAsphaltCoverIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(waterPressureAsphaltCoverIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(grassCoverErosionOutwardsIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(grassCoverSlipOffOutwardsIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(grassCoverSlipOffInwardsIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(heightStructuresIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(closingStructuresIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(pipingStructureIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(stabilityPointStructuresIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(strengthStabilityLengthwiseConstructionIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(duneErosionIndex, CreateDefaultDataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(technicalInnovationIndex, CreateDefaultDataGridViewColumnStateDefinition()); } private static DataGridViewColumnStateDefinition CreateDefaultDataGridViewColumnStateDefinition() { return new DataGridViewColumnStateDefinition { ReadOnly = true }; } private void SetColumnStateDefinitionColors() { ColumnStateDefinitions[totalResultIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.TotalResult); ColumnStateDefinitions[pipingIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.Piping); ColumnStateDefinitions[grassCoverErosionInwardsIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.GrassCoverErosionInwards); ColumnStateDefinitions[macroStabilityInwardsIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.MacroStabilityInwards); ColumnStateDefinitions[macroStabilityOutwardsIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.MacroStabilityOutwards); ColumnStateDefinitions[microstabililityIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.Microstability); ColumnStateDefinitions[stabilityStoneCoverIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.StabilityStoneCover); ColumnStateDefinitions[waveImpactAsphaltCoverIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.WaveImpactAsphaltCover); ColumnStateDefinitions[waterPressureAsphaltCoverIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.WaterPressureAsphaltCover); ColumnStateDefinitions[grassCoverErosionOutwardsIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.GrassCoverErosionOutwards); ColumnStateDefinitions[grassCoverSlipOffOutwardsIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.GrassCoverSlipOffOutwards); ColumnStateDefinitions[grassCoverSlipOffInwardsIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.GrassCoverSlipOffInwards); ColumnStateDefinitions[heightStructuresIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.HeightStructures); ColumnStateDefinitions[closingStructuresIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.ClosingStructures); ColumnStateDefinitions[pipingStructureIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.PipingStructure); ColumnStateDefinitions[stabilityPointStructuresIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.StabilityPointStructures); ColumnStateDefinitions[strengthStabilityLengthwiseConstructionIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.StrengthStabilityLengthwiseConstruction); ColumnStateDefinitions[duneErosionIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.DuneErosion); ColumnStateDefinitions[technicalInnovationIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.TechnicalInnovation); } private static CellStyle CreateCellStyle(FailureMechanismSectionAssemblyCategoryGroup assemblyCategoryGroup) { return new CellStyle(Color.FromKnownColor(KnownColor.ControlText), AssemblyCategoryGroupColorHelper.GetFailureMechanismSectionAssemblyCategoryGroupColor(assemblyCategoryGroup)); } } }