Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Plugin/HeightStructuresGuiPlugin.cs =================================================================== diff -u -rb60b7e12cf211bdbe11e0a54734fa097e8ef2146 -r3280840f72a6c61740b803385f3af8ec1f6ede91 --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Plugin/HeightStructuresGuiPlugin.cs (.../HeightStructuresGuiPlugin.cs) (revision b60b7e12cf211bdbe11e0a54734fa097e8ef2146) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Plugin/HeightStructuresGuiPlugin.cs (.../HeightStructuresGuiPlugin.cs) (revision 3280840f72a6c61740b803385f3af8ec1f6ede91) @@ -22,17 +22,20 @@ using System.Collections; using System.Collections.Generic; using System.Drawing; +using System.Linq; using System.Windows.Forms; using Core.Common.Controls.TreeView; using Core.Common.Gui.Plugin; using Ringtoets.Common.Data; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; +using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Forms.Helpers; using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Common.Forms.TreeNodeInfos; using Ringtoets.HeightStructures.Data; using Ringtoets.HeightStructures.Forms.PresentationObjects; +using Ringtoets.HeightStructures.Forms.Views; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; using HeightStructuresDataResources = Ringtoets.HeightStructures.Data.Properties.Resources; @@ -45,6 +48,22 @@ /// public class HeightStructuresGuiPlugin : GuiPlugin { + public override IEnumerable GetViewInfos() + { + yield return new ViewInfo< + FailureMechanismSectionResultContext, + IEnumerable, + HeightStructuresFailureMechanismResultView + > + { + GetViewName = (v, o) => RingtoetsCommonDataResources.FailureMechanism_AssessmentResult_DisplayName, + Image = RingtoetsCommonFormsResources.FailureMechanismSectionResultIcon, + CloseForData = CloseFailureMechanismResultViewForData, + GetViewData = context => context.SectionResults, + AfterCreate = (view, context) => view.FailureMechanism = context.FailureMechanism + }; + } + public override IEnumerable GetTreeNodeInfos() { yield return RingtoetsTreeNodeInfoFactory.CreateFailureMechanismContextTreeNodeInfo( @@ -109,6 +128,29 @@ }; } + #region HeightStructuresFailureMechanismResultView ViewInfo + + private static bool CloseFailureMechanismResultViewForData(HeightStructuresFailureMechanismResultView view, object o) + { + var assessmentSection = o as IAssessmentSection; + var failureMechanism = o as IFailureMechanism; + var failureMechanismContext = o as IFailureMechanismContext; + if (assessmentSection != null) + { + return assessmentSection + .GetFailureMechanisms() + .OfType() + .Any(fm => ReferenceEquals(view.Data, fm.SectionResults)); + } + if (failureMechanismContext != null) + { + failureMechanism = failureMechanismContext.WrappedData; + } + return failureMechanism != null && ReferenceEquals(view.Data, ((HeightStructuresFailureMechanism)failureMechanism).SectionResults); + } + + #endregion + #region HeightStructuresFailureMechanismContext TreeNodeInfo private object[] FailureMechanismEnabledChildNodeObjects(HeightStructuresFailureMechanismContext context)