Ejemplo n.º 1
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="e"></param>
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            TreeNode rootNode = new TreeNode()
            {
                Text = Path.GetFileName(rootPath)
            };

            TreeNodeHelper.Edit(rootNode, "isDir", "1");

            dirView.Nodes.Add(rootNode);

/*            string allText = File.ReadAllText("Test_Data/demo.json");
 *          dynamic dirsObj = JsonConvert.DeserializeObject(allText);
 *          CreateTreeNodes(dirsObj, dirView.Nodes[0]);*/

            dirView.Nodes[0].Expand();

            comboBox1.Items.Add("默认组");
            AllPlaceHolders.Add("默认组", new Dictionary <string, string>());
            comboBox1.SelectedIndex = comboBox1.Items.Count - 1;

//            Placeholders.Add("123", "$$$");
//            Placeholders.Add("1231", "$$$1");

            dirView.ImageList = treeViewIcon;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 保存节点名修改
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dirView_AfterSelect_1(object sender, TreeViewEventArgs e)
        {
            //            bool isDir = e.Node.Nodes.Count != 0;
            if (dirView.SelectedNode != null)
            {
                bool isDir = TreeNodeHelper.Get <string>(dirView.SelectedNode, "isDir") == "1";

                if (isDir)
                {
                    textBox1.Enabled = false;
                    return;
                }
                else
                {
                    textBox1.Enabled = true;
                    SelectedNode     = e.Node;
                    //this.textBox1.Text = e.Node.Tag == null ? "" : e.Node.Tag.ToString();

                    textBox1.Text = TreeNodeHelper.Get <string>(e.Node, "template");

                    Console.WriteLine(1);
                }
            }


            if (EditingNode == null)
            {
                return;
            }
            else
            {
                EditingNode.EndEdit(false);
                EditingNode = null;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 生成树节点
        /// </summary>
        /// <param name="dirsObjs"></param>
        /// <param name="node"></param>
        public void CreateTreeNodes(dynamic dirsObjs, TreeNode node)
        {
            foreach (JObject dirsObj in dirsObjs)
            {
                bool flag = dirsObj.ContainsKey("children");

                if (flag)
                {
                    TreeNode newNode = new TreeNode
                    {
                        Text               = dirsObj.GetValue("name").ToString(),
                        ImageIndex         = 0,
                        SelectedImageIndex = 0,
                    };

                    TreeNodeHelper.Edit(newNode, "isDir", "1");

                    node.Nodes.Add(newNode);
                    var children = dirsObj.GetValue("children");
                    if (children != null)
                    {
                        CreateTreeNodes(children, newNode);
                    }
                }
                else
                {
                    TreeNode newNode = new TreeNode()
                    {
                        Text = dirsObj.GetValue("name").ToString()
                    };
                    if (!string.IsNullOrEmpty(dirsObj.GetValue("template")?.ToString()))
                    {
                        //                        newNode.Tag = dirsObj.GetValue("template").ToString();
                        TreeNodeHelper.Edit(newNode, "template", dirsObj.GetValue("template").ToString());
                        TreeNodeHelper.Edit(newNode, "isDir", 0);
                    }

                    if (dirsObj.GetValue("isDir")?.ToString() == "1")
                    {
                        newNode.ImageIndex         = 0;
                        newNode.SelectedImageIndex = 0;
                        TreeNodeHelper.Edit(newNode, "isDir", "1");
                    }
                    else
                    {
                        newNode.ImageIndex         = 1;
                        newNode.SelectedImageIndex = 1;
                        TreeNodeHelper.Edit(newNode, "isDir", "0");
                    }

                    node.Nodes.Add(newNode);
                }
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 递归生成treeView的json数据
        /// </summary>
        /// <param name="tr"></param>
        /// <returns></returns>
        public List <dynamic> AddChildren(TreeNode tr)
        {
            List <dynamic> list = new List <dynamic>();

            if (tr.Nodes.Count > 0)
            {
                foreach (TreeNode treeNode in tr.Nodes)
                {
                    if (treeNode.Nodes.Count > 0)
                    {
                        List <dynamic> children = AddChildren(treeNode);
                        dynamic        item     = new { children = children, name = treeNode.Text, isDir = "1" };
                        list.Add(item);
                    }
                    else
                    {
                        //if (string.IsNullOrEmpty(treeNode.Tag?.ToString()))
                        if (string.IsNullOrEmpty(TreeNodeHelper.Get <string>(treeNode, "template")))
                        {
                            if (TreeNodeHelper.Get <string>(treeNode, "isDir") == "1")
                            {
                                list.Add(new { name = treeNode.Text, isDir = "1" });
                            }
                            else
                            {
                                list.Add(new { name = treeNode.Text });
                            }
                        }
                        else
                        {
                            //list.Add(new {name = treeNode.Text, template = treeNode.Tag.ToString()});
                            list.Add(new
                            {
                                name     = treeNode.Text,
                                template = TreeNodeHelper.Get <string>(treeNode, "template"),
                                isDir    = "0"
                            });
                        }
                    }
                }
            }
            else
            {
                list.Add(new { name = tr.Text });
            }

            return(list);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 在硬盘上创建文件及文件夹
        /// </summary>
        /// <param name="node"></param>
        /// <param name="pathList"></param>
        protected void CreateFiles(TreeNode node, List <string> pathList, string path)
        {
            string parentPath = Path.Combine(Path.GetFullPath(path), string.Join("/", pathList.ToArray()));

            if (node.Nodes.Count > 0)
            {
                var replaceedToken = ReplaceToken(node.Text);
                Directory.CreateDirectory(Path.Combine(parentPath, replaceedToken));
                pathList.Add(replaceedToken);
                foreach (TreeNode treeNode in node.Nodes)
                {
                    List <string> list = DeepCopyByBin(pathList);
                    CreateFiles(treeNode, list, path);
                }
            }

            else
            {
                if (node.Text.Split('.').Length > 1)
                {
                    //File.WriteAllText(Path.Combine(parentPath, node.Text), ReplaceToken(node.Tag?.ToString()));
                    File.WriteAllText(Path.Combine(parentPath, ReplaceToken(node.Text)),
                                      ReplaceToken(TreeNodeHelper.Get <string>(node, "template")));
                }
                else
                {
                    if (TreeNodeHelper.Get <string>(node, "isDir") == "1")
                    {
                        Directory.CreateDirectory(Path.Combine(parentPath, ReplaceToken(node.Text)));
                        //ReplaceToken(node.Tag?.ToString()));
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(FileExt))
                        {
                            File.WriteAllText(Path.Combine(parentPath, $"{ReplaceToken(node.Text)}.{FileExt}"),
                                              //ReplaceToken(node.Tag?.ToString()));
                                              ReplaceToken(TreeNodeHelper.Get <string>(node, "template")));
                        }
                    }
                }
            }
        }
Ejemplo n.º 6
0
        public void CreateTreeNodesDo(string path, TreeNode node, string[] exts)
        {
            string[] files = Directory.GetFiles(path).Concat(Directory.GetDirectories(path)).ToArray();


            foreach (string file in files)
            {
                if (File.Exists(file))
                {
                    if (exts.Contains(Path.GetExtension(file).Substring(1)))
                    {
                        TreeNode newNode = new TreeNode()
                        {
                            Text               = Path.GetFileName(file),
                            ImageIndex         = 1,
                            SelectedImageIndex = 1
                        };
                        TreeNodeHelper.Edit(newNode, "isDir", "0");
                        string content = File.ReadAllText(file);
                        TreeNodeHelper.Edit(newNode, "template", content);

                        node.Nodes.Add(newNode);
                    }
                }
                else if (Directory.Exists(file))
                {
                    TreeNode newNode = new TreeNode()
                    {
                        Text               = Path.GetFileName(file),
                        ImageIndex         = 0,
                        SelectedImageIndex = 0
                    };
                    TreeNodeHelper.Edit(newNode, "isDir", "1");
                    node.Nodes.Add(newNode);
                    CreateTreeNodesDo(file, newNode, exts);
                }
            }
        }
Ejemplo n.º 7
0
        protected void createDirOrFile(bool isDir)
        {
            if (dirView.SelectedNode == null)
            {
                Tip tip = new Tip();
                tip.Show();
            }
            else if (TreeNodeHelper.Get <string>(dirView.SelectedNode, "isDir") == "0")
            {
                Tip tip = new Tip("请选择文件夹");
                tip.Show();
            }
            else
            {
                bool isFirst = true;
                dirView.SelectedNode.Expand();
                int i = 0;
                while (true)
                {
                    bool b = false;
                    foreach (TreeNode node in dirView.SelectedNode.Nodes)
                    {
                        if (isDir)
                        {
                            b = node.Text.Equals(isFirst ? $"新建文件夹" : $"新建文件夹({i})");
                        }
                        else
                        {
                            b = node.Text.Equals(isFirst ? $"新建文件" : $"新建文件({i})");
                        }

                        if (b)
                        {
                            break;
                        }
                    }

                    if (b)
                    {
                        isFirst = false;
                        i++;
                    }
                    else
                    {
                        if (isDir)
                        {
                            TreeNode newNode = isFirst
                                ? new TreeNode()
                            {
                                Text               = $"新建文件夹",
                                ImageIndex         = 0,
                                SelectedImageIndex = 0
                            }
                                : new TreeNode()
                            {
                                Text               = $"新建文件夹({i})",
                                ImageIndex         = 0,
                                SelectedImageIndex = 0
                            };
                            newNode.BeginEdit();

                            TreeNodeHelper.Edit(newNode, "isDir", "1");

                            dirView.SelectedNode.Nodes.Add(newNode);
                            dirView.SelectedNode = newNode;
                            newNode.BeginEdit();
                        }
                        else
                        {
                            TreeNode newNode = isFirst
                                ? new TreeNode()
                            {
                                Text               = $"新建文件",
                                ImageIndex         = 1,
                                SelectedImageIndex = 1
                            }
                                : new TreeNode()
                            {
                                Text               = $"新建文件({i})",
                                ImageIndex         = 1,
                                SelectedImageIndex = 1
                            };
                            newNode.BeginEdit();

                            TreeNodeHelper.Edit(newNode, "isDir", "0");

                            dirView.SelectedNode.Nodes.Add(newNode);
                            dirView.SelectedNode = newNode;
                            newNode.BeginEdit();
                        }

                        break;
                    }
                }
            }
        }
Ejemplo n.º 8
0
 /// <summary>
 /// 文本改变事件
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void textBox1_KeyUp(object sender, KeyEventArgs e)
 {
     TreeNodeHelper.Edit(dirView.SelectedNode, "template", textBox1.Text);
 }