Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs =================================================================== diff -u -rdf02e9274a94d8763da204833a4d93f984e242c6 -r766487194eab00bc9205f5cd29f269c9af5f2ab8 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision df02e9274a94d8763da204833a4d93f984e242c6) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 766487194eab00bc9205f5cd29f269c9af5f2ab8) @@ -68,30 +68,15 @@ public override IEnumerable GetViewInfos() { - yield return new ViewInfo { GetViewData = context => context.WrappedData, GetViewName = (view, calculationGroup) => RingtoetsCommonFormsResources.Scenarios_DisplayName, - AfterCreate = (view, context) => { view.FailureMechanism = context.ParentFailureMechanism; }, - CloseForData = (view, removedData) => - { - var assessmentSection = removedData as IAssessmentSection; - if (assessmentSection != null) - { - return assessmentSection.GetFailureMechanisms() - .OfType() - .Any(fm => ReferenceEquals(view.Data, fm.CalculationsGroup)); - } - - var grassCoverErosionInwardsFailureMechanism = removedData as GrassCoverErosionInwardsFailureMechanism; - if (grassCoverErosionInwardsFailureMechanism != null) - { - return ReferenceEquals(view.Data, grassCoverErosionInwardsFailureMechanism.CalculationsGroup); - } - return false; - }, + AfterCreate = (view, context) => view.FailureMechanism = context.ParentFailureMechanism, + CloseForData = CloseScenariosViewForData, Image = RingtoetsCommonFormsResources.ScenariosIcon }; @@ -209,6 +194,26 @@ EmptyProbabilityAssessmentOutputContextMenuStrip); } + private static bool CloseScenariosViewForData(GrassCoverErosionInwardsScenariosView view, object removedData) + { + var assessmentSection = removedData as IAssessmentSection; + if (assessmentSection != null) + { + return assessmentSection.GetFailureMechanisms() + .OfType() + .Any(fm => ReferenceEquals(view.Data, fm.CalculationsGroup)); + } + + var coverErosionInwardsFailureMechanism = removedData as GrassCoverErosionInwardsFailureMechanism; + if (coverErosionInwardsFailureMechanism != null) + { + return ReferenceEquals(view.Data, coverErosionInwardsFailureMechanism.CalculationsGroup); + } + + var coverErosionInwardsFailureMechanismContext = removedData as GrassCoverErosionInwardsFailureMechanismContext; + return coverErosionInwardsFailureMechanismContext != null && ReferenceEquals(view.Data, coverErosionInwardsFailureMechanismContext.WrappedData.CalculationsGroup); + } + private void CalculateAll(GrassCoverErosionInwardsFailureMechanism failureMechanism, IEnumerable calculations, IAssessmentSection assessmentSection) { ActivityProgressDialogRunner.Run(Gui.MainWindow, calculations.Select(calc => new GrassCoverErosionInwardsCalculationActivity(calc, @@ -286,7 +291,7 @@ if (failureMechanismContext != null) { failureMechanism = failureMechanismContext.WrappedData; - } + } var assessmentSection = o as IAssessmentSection; if (assessmentSection != null)