Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Plugin/DuneErosionPlugin.cs =================================================================== diff -u -rc1a0627a863918a087d41afd6b1857344dd6620f -r4f7eba3e9725bd6cc0e4406e21995056c86501b7 --- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Plugin/DuneErosionPlugin.cs (.../DuneErosionPlugin.cs) (revision c1a0627a863918a087d41afd6b1857344dd6620f) +++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Plugin/DuneErosionPlugin.cs (.../DuneErosionPlugin.cs) (revision 4f7eba3e9725bd6cc0e4406e21995056c86501b7) @@ -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; @@ -115,6 +116,16 @@ CloseForData = CloseFailureMechanismViewForData, AdditionalDataCheck = context => context.WrappedData.IsRelevant }; + + yield return new ViewInfo, DuneLocationsView> + { + GetViewName = (view, context) => RingtoetsCommonDataResources.HydraulicBoundaryConditions_DisplayName, + Image = RingtoetsCommonFormsResources.GenericInputOutputIcon, + GetViewData = context => context.WrappedData, + CloseForData = CloseDuneLocationViewForData, + AfterCreate = (view, context) => view.AssessmentSection = context.AssessmentSection, + AdditionalDataCheck = context => context.WrappedData.Any() + }; } public override IEnumerable GetExportInfos() @@ -236,6 +247,8 @@ }; return Gui.Get(context, treeViewControl) + .AddOpenItem() + .AddSeparator() .AddExportItem() .AddSeparator() .AddCustomItem(calculateAllItem) @@ -290,6 +303,34 @@ #endregion + #region DuneLocationsView ViewInfo + + private static bool CloseDuneLocationViewForData(DuneLocationsView view, object dataToCloseFor) + { + DuneErosionFailureMechanism viewFailureMechanism = null; + if (view.AssessmentSection != null) + { + viewFailureMechanism = view.AssessmentSection.GetFailureMechanisms().OfType().Single(); + } + + var failureMechanismContext = dataToCloseFor as DuneErosionFailureMechanismContext; + var assessmentSection = dataToCloseFor as IAssessmentSection; + var failureMechanism = dataToCloseFor as DuneErosionFailureMechanism; + + if (assessmentSection != null) + { + failureMechanism = ((IAssessmentSection)dataToCloseFor).GetFailureMechanisms().OfType().Single(); + } + + if (failureMechanismContext != null) + { + failureMechanism = failureMechanismContext.Parent.GetFailureMechanisms().OfType().Single(); + } + return failureMechanism != null && ReferenceEquals(failureMechanism, viewFailureMechanism); + } + #endregion + + #endregion } } \ No newline at end of file