public static void ForEachNodeData(this LabelEditEnhancedTreeView @this, Predicate <ITreeNodeData> predicate) { foreach (TreeNode treeNode in @this.Nodes) { predicate(treeNode.GetNodeData()); } }
// public static void RegisterNodeDataType<T>(this LabelEditEnhancedTreeView @this) where T : ITreeNodeData, new() // { // @this.Tag = new Func<string, T>(s => (T) CreateNodeDataInstance<T>(s)); // } public static ITreeNodeData CreateNewNodeData(this LabelEditEnhancedTreeView @this, string displayValue) { //Func<string, ITreeNodeData> createFunc = (Func<string, ITreeNodeData>)@this.Tag; //return createFunc(displayValue); Type type = (Type)@this.Tag; ITreeNodeData newData = (ITreeNodeData)System.Activator.CreateInstance(type); newData.DisplayValue = displayValue; return(newData); }
public static bool HasNewItemNode(this LabelEditEnhancedTreeView @this) { foreach (TreeNode treeNode in @this.Nodes) { if (treeNode.GetNodeProxy().IsNewItemNode) { return(true); } } return(false); }
public static TreeNode CreateNewItemNode(this LabelEditEnhancedTreeView @this) { ITreeNodeData treeNodeData = @this.CreateNewNodeData(TreeNodeProxy.NEW_ITEM_NODE_TEXT); TreeNode treeNode = CreateNode(@this, treeNodeData); treeNode.ForeColor = Color.Gray; treeNode.ImageIndex = 0; treeNode.StateImageIndex = 0; treeNode.SelectedImageIndex = 0; TreeNodeProxy treeNodeProxy = treeNode.GetNodeProxy(); treeNodeProxy.IsNewItemNode = true; return(treeNode); }
public static TreeNode CreateNode <T>(this LabelEditEnhancedTreeView @this, T nodeData) where T : ITreeNodeData { string displayValue = nodeData == null ? string.Empty : nodeData.DisplayValue; TreeNode treeNode = @this.Nodes.Add(displayValue); bool isNewItemNode = nodeData == null; TreeNodeProxy nodeProxy = new TreeNodeProxy <T>(nodeData, isNewItemNode); int iconIndex = isNewItemNode ? 0 : nodeData.IconIndex; treeNode.ImageIndex = iconIndex; treeNode.StateImageIndex = iconIndex; treeNode.SelectedImageIndex = iconIndex; treeNode.SetNodeProxy(nodeProxy); return(treeNode); }
public static void RegisterNodeDataType(this LabelEditEnhancedTreeView @this, Type type) { @this.Tag = type; }
public static IEnumerable <ITreeNodeData> AllNodeData(this LabelEditEnhancedTreeView @this) { return(@this.Nodes.OfType <TreeNode>().Select(node => node.GetNodeData())); }