using System; using System.Collections; using System.Drawing; using System.Windows.Forms; using Core.Common.Controls; using Core.Common.Controls.Swf.TreeViewControls; using Core.Common.Gui; using Core.Common.Gui.ContextMenu; using Ringtoets.Common.Forms.NodePresenters; using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Integration.Data.Placeholders; using Ringtoets.Integration.Forms.Properties; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; namespace Ringtoets.Integration.Forms.NodePresenters { public class FailureMechanismNodePresenter : RingtoetsNodePresenterBase { /// /// Creates a new instance of , which uses the /// to create and bind its . /// /// The /// to use for building a . /// Thrown when no was provided. public FailureMechanismNodePresenter(IContextMenuBuilderProvider contextMenuBuilderProvider) : base(contextMenuBuilderProvider) { } protected override void UpdateNode(ITreeNode parentNode, ITreeNode node, FailureMechanismPlaceholder nodeData) { node.Text = nodeData.Name; node.ForegroundColor = Color.FromKnownColor(KnownColor.GrayText); node.Image = Resources.FailureMechanismIcon; } protected override IEnumerable GetChildNodeObjects(FailureMechanismPlaceholder nodeData) { yield return new CategoryTreeFolder(RingtoetsCommonFormsResources.FailureMechanism_Inputs_DisplayName, GetInputs(nodeData), TreeFolderCategory.Input); yield return new CategoryTreeFolder(RingtoetsCommonFormsResources.FailureMechanism_Outputs_DisplayName, GetOutputs(nodeData), TreeFolderCategory.Output); } protected override ContextMenuStrip GetContextMenu(ITreeNode node, FailureMechanismPlaceholder nodeData) { var calculateItem = new StrictContextMenuItem( RingtoetsCommonFormsResources.Calculate_all, RingtoetsCommonFormsResources.Calculate_all_ToolTip, RingtoetsCommonFormsResources.CalculateAllIcon, null) { Enabled = false }; var clearOutputItem = new StrictContextMenuItem( RingtoetsCommonFormsResources.Clear_all_output, RingtoetsCommonFormsResources.Clear_all_output_ToolTip, RingtoetsCommonFormsResources.ClearIcon, null ) { Enabled = false }; return contextMenuBuilderProvider.Get(node) .AddCustomItem(calculateItem) .AddCustomItem(clearOutputItem) .AddSeparator() .AddExpandAllItem() .AddCollapseAllItem() .AddSeparator() .AddImportItem() .AddExportItem() .AddSeparator() .AddPropertiesItem() .Build(); } private IEnumerable GetInputs(FailureMechanismPlaceholder nodeData) { yield return nodeData.SectionDivisions; yield return nodeData.Locations; yield return nodeData.BoundaryConditions; } private IEnumerable GetOutputs(FailureMechanismPlaceholder nodeData) { yield return nodeData.AssessmentResult; } } }