using System; using System.Collections; using System.Drawing; using System.Windows.Forms; using Core.Common.Controls; using Core.Common.Gui; using Ringtoets.Common.Forms.PresentationObjects; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; namespace Ringtoets.Common.Forms.NodePresenters { /// /// Node presenter for . /// public class CategoryTreeFolderNodePresenter : 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 CategoryTreeFolderNodePresenter(IContextMenuBuilderProvider contextMenuBuilderProvider) : base(contextMenuBuilderProvider) { } protected override void UpdateNode(ITreeNode parentNode, ITreeNode node, CategoryTreeFolder nodeData) { node.Text = nodeData.Name; node.Image = GetFolderIcon(nodeData.Category); node.ForegroundColor = Color.FromKnownColor(KnownColor.ControlText); } protected override IEnumerable GetChildNodeObjects(CategoryTreeFolder nodeData) { return nodeData.Contents; } protected override ContextMenuStrip GetContextMenu(ITreeNode sender, CategoryTreeFolder nodeData) { return contextMenuBuilderProvider .Get(sender) .AddExpandAllItem() .AddCollapseAllItem() .Build(); } private Image GetFolderIcon(TreeFolderCategory category) { switch (category) { case TreeFolderCategory.General: return RingtoetsCommonFormsResources.GeneralFolderIcon; case TreeFolderCategory.Input: return RingtoetsCommonFormsResources.InputFolderIcon; case TreeFolderCategory.Output: return RingtoetsCommonFormsResources.OutputFolderIcon; default: throw new NotImplementedException(); } } } }