public Option <IEnumerable <ModelEntity> > Select(PackageTree entities) { entityTree.Nodes.Clear(); entityTree.Nodes.Add(CreateNode(entities)); var res = ShowDialog(); if (res == System.Windows.Forms.DialogResult.OK) { return(Options.Some(SelectedEntities(entityTree.Nodes.Cast <TreeNode>()))); } else { return(Options.None <IEnumerable <ModelEntity> >()); } }
private TreeNode CreateNode(PackageTree entityTree) { var node = new TreeNode( entityTree.Entity.ToString(), entityTree.Children.Select(CreateNode).ToArray()); if (entityTree.Selectable) { node.ImageIndex = 0; node.SelectedImageIndex = 0; } else { node.ForeColor = SystemColors.GrayText; node.ImageIndex = 2; node.SelectedImageIndex = 2; } node.Tag = entityTree; node.Expand(); return(node); }