Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs =================================================================== diff -u -r6f96b9e0a720cda453d3402f16103b27523b28a1 -rfff5f023c5b150dd71f754b3c13e839596ec19a0 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 6f96b9e0a720cda453d3402f16103b27523b28a1) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision fff5f023c5b150dd71f754b3c13e839596ec19a0) @@ -29,6 +29,7 @@ using Ringtoets.HydraRing.Data; using Ringtoets.Piping.Data; using Ringtoets.Piping.Forms.Properties; +using Ringtoets.Piping.Primitives; namespace Ringtoets.Piping.Forms.Views { @@ -38,7 +39,9 @@ public partial class PipingCalculationsView : UserControl, IView { private AssessmentSectionBase assessmentSection; + private PipingFailureMechanism pipingFailureMechanism; private PipingCalculationGroup pipingCalculationGroup; + private DataGridViewComboBoxColumn soilProfileColumn; private DataGridViewComboBoxColumn hydraulicBoundaryLocationColumn; /// @@ -69,6 +72,27 @@ } /// + /// Gets or sets the piping failure mechanism. + /// + public PipingFailureMechanism PipingFailureMechanism + { + get + { + return pipingFailureMechanism; + } + set + { + pipingFailureMechanism = value; + + soilProfileColumn.DataSource = pipingFailureMechanism != null + ? pipingFailureMechanism.SoilProfiles + .Select(psp => new DataGridViewComboBoxItemWrapper(psp)) + .ToList() + : GetDefaultSoilProfilesDataSource(); + } + } + + /// /// Gets or sets the assessment section. /// public AssessmentSectionBase AssessmentSection @@ -99,12 +123,15 @@ AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells }; - var soilProfileColumn = new DataGridViewTextBoxColumn + soilProfileColumn = new DataGridViewComboBoxColumn { DataPropertyName = "SoilProfile", HeaderText = Resources.PipingInput_SoilProfile_DisplayName, Name = "column_SoilProfile", - AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells + AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells, + ValueMember = "This", + DisplayMember = "DisplayName", + DataSource = GetDefaultSoilProfilesDataSource() }; hydraulicBoundaryLocationColumn = new DataGridViewComboBoxColumn @@ -154,6 +181,14 @@ dataGridView.Columns.AddRange(nameColumn, soilProfileColumn, hydraulicBoundaryLocationColumn, dampingFactorExitMeanColumn, phreaticLevelExitMeanColumn, entryPointLColumn, exitPointLColumn); } + private static List> GetDefaultSoilProfilesDataSource() + { + return new List> + { + new DataGridViewComboBoxItemWrapper(null) + }; + } + private static List> GetDefaultHydraulicBoundaryLocationsDataSource() { return new List> @@ -179,14 +214,18 @@ } } - public string SoilProfile + public DataGridViewComboBoxItemWrapper SoilProfile { get { - var soilProfile = pipingCalculation.InputParameters.SoilProfile; - - return soilProfile != null ? soilProfile.Name : string.Empty; + return new DataGridViewComboBoxItemWrapper(pipingCalculation.InputParameters.SoilProfile); } + set + { + pipingCalculation.InputParameters.SoilProfile = value != null + ? value.WrappedObject + : null; + } } public DataGridViewComboBoxItemWrapper HydraulicBoundaryLocation @@ -197,7 +236,9 @@ } set { - pipingCalculation.InputParameters.HydraulicBoundaryLocation = value.WrappedObject; + pipingCalculation.InputParameters.HydraulicBoundaryLocation = value != null + ? value.WrappedObject + : null; } }