Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationRow.cs
===================================================================
diff -u -re385fc00bf3c2a7e9363acc70a997463e125fc94 -rec14fc942722c507e8227ee0ad1a188173399834
--- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationRow.cs (.../GrassCoverErosionInwardsCalculationRow.cs) (revision e385fc00bf3c2a7e9363acc70a997463e125fc94)
+++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationRow.cs (.../GrassCoverErosionInwardsCalculationRow.cs) (revision ec14fc942722c507e8227ee0ad1a188173399834)
@@ -48,7 +48,7 @@
///
/// Fired when has changed.
///
- public EventHandler DikeProfileChanged;
+ public event EventHandler DikeProfileChanged;
///
/// Creates a new instance of .
Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationsView.cs
===================================================================
diff -u -r3a9bdc607d09f3c608af661cb261480eb52abe33 -rec14fc942722c507e8227ee0ad1a188173399834
--- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationsView.cs (.../GrassCoverErosionInwardsCalculationsView.cs) (revision 3a9bdc607d09f3c608af661cb261480eb52abe33)
+++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsCalculationsView.cs (.../GrassCoverErosionInwardsCalculationsView.cs) (revision ec14fc942722c507e8227ee0ad1a188173399834)
@@ -202,6 +202,38 @@
#endregion
+ protected override void SubscribeToCalculationRow(GrassCoverErosionInwardsCalculationRow calculationRow)
+ {
+ base.SubscribeToCalculationRow(calculationRow);
+
+ calculationRow.DikeProfileChanged += DikeProfileChanged;
+ }
+
+ protected override void UnsubscribeFromCalculationRow(GrassCoverErosionInwardsCalculationRow calculationRow)
+ {
+ base.UnsubscribeFromCalculationRow(calculationRow);
+
+ calculationRow.DikeProfileChanged -= DikeProfileChanged;
+ }
+
+ private void DikeProfileChanged(object sender, EventArgs e)
+ {
+ if (IsProfileInSelectedFailureMechanismSection())
+ {
+ return;
+ }
+
+ UpdateDataGridViewDataSource(false);
+ }
+
+ private bool IsProfileInSelectedFailureMechanismSection()
+ {
+ IEnumerable lineSegments = Math2D.ConvertPointsToLineSegments(SelectedFailureMechanismSection.Points);
+ GrassCoverErosionInwardsCalculationScenario calculation = ((GrassCoverErosionInwardsCalculationRow) Selection).Calculation;
+
+ return IsCalculationIntersectionWithReferenceLineInSection(calculation, lineSegments);
+ }
+
private void AddWarningMessage()
{
var warningPanel = new Panel();