Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs =================================================================== diff -u -r048ca910b1d2e3ddcd6a59eea8b6ccf2bdf63116 -r2190156241cd307f0d9d784f2ff50ed339c3beac --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision 048ca910b1d2e3ddcd6a59eea8b6ccf2bdf63116) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision 2190156241cd307f0d9d784f2ff50ed339c3beac) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using System.Collections; using System.Collections.Generic; using System.Drawing; @@ -76,6 +77,15 @@ GetViewData = context => context.WrappedData, AfterCreate = (view, context) => view.FailureMechanism = context.FailureMechanism }; + + yield return new ViewInfo + { + GetViewData = context => context.WrappedData, + GetViewName = (view, calculationGroup) => RingtoetsCommonFormsResources.Scenarios_DisplayName, + Image = RingtoetsCommonFormsResources.ScenariosIcon, + AfterCreate = (view, context) => view.FailureMechanism = context.ParentFailureMechanism, + CloseForData = CloseScenariosViewForData + }; } public override IEnumerable GetTreeNodeInfos() @@ -187,8 +197,33 @@ #endregion + #region ClosingStructuresScenariosView ViewInfo + + private static bool CloseScenariosViewForData(ClosingStructuresScenariosView view, object removedData) + { + var failureMechanism = removedData as ClosingStructuresFailureMechanism; + + var failureMechanismContext = removedData as ClosingStructuresFailureMechanismContext; + if (failureMechanismContext != null) + { + failureMechanism = failureMechanismContext.WrappedData; + } + + var assessmentSection = removedData as IAssessmentSection; + if (assessmentSection != null) + { + failureMechanism = assessmentSection.GetFailureMechanisms() + .OfType() + .FirstOrDefault(); + } + + return failureMechanism != null && ReferenceEquals(view.Data, failureMechanism.CalculationsGroup); + } + #endregion + #endregion + private static string ValidateAllDataAvailableAndGetErrorMessage(IAssessmentSection assessmentSection, ClosingStructuresFailureMechanism failureMechanism) { if (!failureMechanism.Sections.Any())