Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs =================================================================== diff -u -r60233a739e6b40a3182f53bb9ebd923703bd745c -r6af0f01bd9b9b6da145bea0b4f8b8b1b4b09e02b --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs (.../StabilityPointStructuresPlugin.cs) (revision 60233a739e6b40a3182f53bb9ebd923703bd745c) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs (.../StabilityPointStructuresPlugin.cs) (revision 6af0f01bd9b9b6da145bea0b4f8b8b1b4b09e02b) @@ -77,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 + }; } /// @@ -193,8 +202,33 @@ #endregion + #region StabilityPointStructuresScenariosView ViewInfo + + private static bool CloseScenariosViewForData(StabilityPointStructuresScenariosView view, object removedData) + { + var failureMechanism = removedData as StabilityPointStructuresFailureMechanism; + + var failureMechanismContext = removedData as StabilityPointStructuresFailureMechanismContext; + 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 + #region Validation and Calculation private static string ValidateAllDataAvailableAndGetErrorMessage(IAssessmentSection assessmentSection, StabilityPointStructuresFailureMechanism failureMechanism) @@ -414,15 +448,15 @@ private StrictContextMenuItem CreateGenerateStabilityPointStructuresCalculationsItem(StabilityPointStructuresCalculationGroupContext nodeData) { - ObservableList closingStructures = nodeData.FailureMechanism.StabilityPointStructures; - bool structuresAvailable = closingStructures.Any(); + ObservableList stabilityPointStructures = nodeData.FailureMechanism.StabilityPointStructures; + bool structuresAvailable = stabilityPointStructures.Any(); - string closingStructuresCalculationGroupContextToolTip = structuresAvailable + string stabilityPointStructuresCalculationGroupContextToolTip = structuresAvailable ? RingtoetsCommonFormsResources.StructuresPlugin_Generate_calculations_for_selected_structures : RingtoetsCommonFormsResources.StructuresPlugin_No_structures_to_generate_for; return new StrictContextMenuItem(RingtoetsCommonFormsResources.CalculationsGroup_Generate_calculations, - closingStructuresCalculationGroupContextToolTip, + stabilityPointStructuresCalculationGroupContextToolTip, RingtoetsCommonFormsResources.GenerateScenariosIcon, (sender, args) => { ShowStabilityPointStructuresSelectionDialog(nodeData); }) {