Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs =================================================================== diff -u -r5b1276bcb70296a150fd4a26fbf8867e6f8aa0f2 -rfbf9eca188c20c352a702ee20c183e5dc3c7acf1 --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision 5b1276bcb70296a150fd4a26fbf8867e6f8aa0f2) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision fbf9eca188c20c352a702ee20c183e5dc3c7acf1) @@ -21,6 +21,7 @@ using System.Collections; using System.Collections.Generic; +using System.Drawing; using System.Linq; using System.Windows.Forms; using Core.Common.Controls.TreeView; @@ -75,8 +76,49 @@ .AddOpenItem() .Build() }; + + yield return new TreeNodeInfo() + { + Text = context => RingtoetsCommonFormsResources.StructuresCollection_DisplayName, + Image = context => RingtoetsCommonFormsResources.GeneralFolderIcon, + ForeColor = context => context.WrappedData.Any() ? Color.FromKnownColor(KnownColor.ControlText) : Color.FromKnownColor(KnownColor.GrayText), + ChildNodeObjects = context => context.WrappedData.Cast().ToArray(), + ContextMenuStrip = (nodeData, parentData, treeViewControl) => Gui.Get(nodeData, treeViewControl) + .AddImportItem() + .AddSeparator() + .AddExpandAllItem() + .AddCollapseAllItem() + .Build() + }; } + #region ViewInfo + + #region ClosingStructuresFailureMechanismResultView ViewInfo + + private static bool CloseFailureMechanismResultViewForData(ClosingStructuresFailureMechanismResultView view, object o) + { + var assessmentSection = o as IAssessmentSection; + var failureMechanism = o as ClosingStructuresFailureMechanism; + 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, failureMechanism.SectionResults); + } + + #endregion + + #endregion + #region TreeNodeInfo #region ClosingStructuresFailureMechanismContext TreeNodeInfo @@ -104,6 +146,7 @@ return new ArrayList { new FailureMechanismSectionsContext(failureMechanism, assessmentSection), + new ClosingStructureContext(failureMechanism.ClosingStructures, assessmentSection), new CommentContext(failureMechanism) }; } @@ -148,32 +191,5 @@ #endregion #endregion - - #region ViewInfo - - #region ClosingStructuresFailureMechanismResultView ViewInfo - - private static bool CloseFailureMechanismResultViewForData(ClosingStructuresFailureMechanismResultView view, object o) - { - var assessmentSection = o as IAssessmentSection; - var failureMechanism = o as ClosingStructuresFailureMechanism; - 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, failureMechanism.SectionResults); - } - - #endregion - - #endregion } } \ No newline at end of file