Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationRow.cs =================================================================== diff -u -r8dbe77c4864b019630360007c972593b2e91a753 -rbdb9c629119758daea7b3238691c8fbb84dabd1f --- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationRow.cs (.../GrassCoverErosionInwardsCalculationRow.cs) (revision 8dbe77c4864b019630360007c972593b2e91a753) +++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationRow.cs (.../GrassCoverErosionInwardsCalculationRow.cs) (revision bdb9c629119758daea7b3238691c8fbb84dabd1f) @@ -40,6 +40,7 @@ /// public class GrassCoverErosionInwardsCalculationRow : CalculationRow, IHasColumnStateDefinitions { + private const int useBreakWaterColumnIndex = 3; private const int breakWaterTypeColumnIndex = 4; private const int breakWaterHeightColumnIndex = 5; private const int useForeshoreColumnIndex = 6; @@ -57,6 +58,7 @@ ColumnStateDefinitions = new Dictionary(); CreateColumnStateDefinitions(); UpdateUseBreakWaterColumnStateDefinitions(); + UpdateBreakWaterTypeAndHeightColumnStateDefinitions(); UpdateUseForeshoreColumnStateDefinitions(); } @@ -72,6 +74,7 @@ if (!ReferenceEquals(Calculation.InputParameters.DikeProfile, valueToSet)) { PropertyChangeHelper.ChangePropertyAndNotify(() => Calculation.InputParameters.DikeProfile = valueToSet, PropertyChangeHandler); + UpdateUseBreakWaterColumnStateDefinitions(); } } } @@ -87,7 +90,7 @@ if (!Calculation.InputParameters.UseBreakWater.Equals(value)) { PropertyChangeHelper.ChangePropertyAndNotify(() => Calculation.InputParameters.UseBreakWater = value, PropertyChangeHandler); - UpdateUseBreakWaterColumnStateDefinitions(); + UpdateBreakWaterTypeAndHeightColumnStateDefinitions(); } } } @@ -198,12 +201,13 @@ private void CreateColumnStateDefinitions() { + ColumnStateDefinitions.Add(useBreakWaterColumnIndex, new DataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(breakWaterTypeColumnIndex, new DataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(breakWaterHeightColumnIndex, new DataGridViewColumnStateDefinition()); ColumnStateDefinitions.Add(useForeshoreColumnIndex, new DataGridViewColumnStateDefinition()); } - private void UpdateUseBreakWaterColumnStateDefinitions() + private void UpdateBreakWaterTypeAndHeightColumnStateDefinitions() { if (!UseBreakWater) { @@ -219,8 +223,8 @@ private void UpdateUseForeshoreColumnStateDefinitions() { - DikeProfile dikeProfileForeshoreGeometry = Calculation.InputParameters.DikeProfile; - if (dikeProfileForeshoreGeometry == null || !dikeProfileForeshoreGeometry.ForeshoreGeometry.Any()) + DikeProfile dikeProfile = Calculation.InputParameters.DikeProfile; + if (dikeProfile == null || !dikeProfile.ForeshoreGeometry.Any()) { ColumnStateHelper.DisableColumn(ColumnStateDefinitions[useForeshoreColumnIndex]); } @@ -229,5 +233,22 @@ ColumnStateHelper.EnableColumn(ColumnStateDefinitions[useForeshoreColumnIndex]); } } + + private void UpdateUseBreakWaterColumnStateDefinitions() + { + DikeProfile dikeProfile = Calculation.InputParameters.DikeProfile; + if (dikeProfile == null) + { + ColumnStateHelper.DisableColumn(ColumnStateDefinitions[useBreakWaterColumnIndex]); + ColumnStateHelper.DisableColumn(ColumnStateDefinitions[breakWaterTypeColumnIndex]); + ColumnStateHelper.DisableColumn(ColumnStateDefinitions[breakWaterHeightColumnIndex]); + } + else + { + ColumnStateHelper.EnableColumn(ColumnStateDefinitions[useBreakWaterColumnIndex]); + ColumnStateHelper.EnableColumn(ColumnStateDefinitions[breakWaterTypeColumnIndex]); + ColumnStateHelper.EnableColumn(ColumnStateDefinitions[breakWaterHeightColumnIndex]); + } + } } } \ No newline at end of file Index: Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsCalculationRowTest.cs =================================================================== diff -u -r084841826fac2142498b963305a2265119a0c774 -rbdb9c629119758daea7b3238691c8fbb84dabd1f --- Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsCalculationRowTest.cs (.../GrassCoverErosionInwardsCalculationRowTest.cs) (revision 084841826fac2142498b963305a2265119a0c774) +++ Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsCalculationRowTest.cs (.../GrassCoverErosionInwardsCalculationRowTest.cs) (revision bdb9c629119758daea7b3238691c8fbb84dabd1f) @@ -44,6 +44,7 @@ [TestFixture] public class GrassCoverErosionInwardsCalculationRowTest { + private const int useBreakWaterTypeColumnIndex = 3; private const int breakWaterTypeColumnIndex = 4; private const int breakWaterHeightColumnIndex = 5; private const int useForeshoreColumnIndex = 6; @@ -67,8 +68,9 @@ Assert.AreSame(calculationScenario, row.Calculation); IDictionary columnStateDefinitions = row.ColumnStateDefinitions; - Assert.AreEqual(3, columnStateDefinitions.Count); + Assert.AreEqual(4, columnStateDefinitions.Count); + DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, useBreakWaterTypeColumnIndex); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, breakWaterTypeColumnIndex); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, breakWaterHeightColumnIndex); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, useForeshoreColumnIndex);