Exemple #1
0
 public static void ForEachNodeData(this LabelEditEnhancedTreeView @this, Predicate <ITreeNodeData> predicate)
 {
     foreach (TreeNode treeNode in @this.Nodes)
     {
         predicate(treeNode.GetNodeData());
     }
 }
Exemple #2
0
//        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);
        }
Exemple #3
0
        public static bool HasNewItemNode(this LabelEditEnhancedTreeView @this)
        {
            foreach (TreeNode treeNode in @this.Nodes)
            {
                if (treeNode.GetNodeProxy().IsNewItemNode)
                {
                    return(true);
                }
            }

            return(false);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
 public static void RegisterNodeDataType(this LabelEditEnhancedTreeView @this, Type type)
 {
     @this.Tag = type;
 }
Exemple #7
0
 public static IEnumerable <ITreeNodeData> AllNodeData(this LabelEditEnhancedTreeView @this)
 {
     return(@this.Nodes.OfType <TreeNode>().Select(node => node.GetNodeData()));
 }