Esempio n. 1
0
        static public bool OpenPropEditorForm(FCYResPackageFloderNode tNode)
        {
            PropEditor tForm = new PropEditor(tNode.Name);

            if (tForm.ShowDialog() == DialogResult.Cancel)
            {
                tForm.Dispose();
                return(false);
            }
            else
            {
                try
                {
                    if (tNode.Name != tForm.textBox2.Text)
                    {
                        tNode.Name = tForm.textBox2.Text;
                    }
                }
                catch (FCYExcpNameErr)
                {
                    MessageBox.Show("修改节点名称失败。可能存在同名节点或者节点名称不合法。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                tForm.Dispose();
                return(true);
            }
        }
Esempio n. 2
0
        // --- 创建文件夹 ---
        private void ToolStripMenuItem_CreateFloder_Click(object sender, EventArgs e)
        {
            // 获得父节点
            TreeNode tParent = treeView_Main.SelectedNode;

            if (tParent != null)
            {
                // 检查父节点
                if (!((FCYResPackageNode)tParent.Tag).IsFloder())
                {
                    showErr("请选择一个文件夹节点。");
                    return;
                }

                // 获得父节点
                FCYResPackageFloderNode tParentFloder = (FCYResPackageFloderNode)tParent.Tag;

                // 获得新节点名称
                string tNodeName = "";
                if (!CreateFloderForm.OpenCreateFloderForm(treeView_Main.SelectedNode.FullPath, ref tNodeName))
                {
                    return;
                }

                if (tNodeName == "")
                {
                    showErr("无效的名称。");
                    return;
                }

                // 创建节点
                FCYResPackageFloderNode tNewSubNode = new FCYResPackageFloderNode(tParentFloder, tNodeName);

                // 尝试加入
                try
                {
                    tParentFloder.Add(tNewSubNode);
                }
                catch
                {
                    showErr("节点名已存在或者无效。");
                    return;
                }

                // 创建树节点
                TreeNode tTreeNode = new TreeNode(tNodeName, 0, 0);
                tTreeNode.Tag = tNewSubNode;

                // 加入
                tParent.Nodes.Add(tTreeNode);
                tParent.Expand();
            }
        }
Esempio n. 3
0
        // --- 导入文件夹 ---
        /// <summary>
        /// 将文件夹导入
        /// </summary>
        /// <param name="Dir">当前目录信息</param>
        /// <param name="Node">当前目录的节点</param>
        private void importFloder(DirectoryInfo Dir, TreeNode Node)
        {
            // 获得节点
            FCYResPackageFloderNode tFloder = (FCYResPackageFloderNode)Node.Tag;

            // 处理所有文件夹
            foreach (DirectoryInfo x in Dir.GetDirectories())
            {
                TreeNode tNewNode = new TreeNode(Path.GetFileName(x.FullName), 0, 0);
                tNewNode.Tag = new FCYResPackageFloderNode(tFloder, tNewNode.Text);

                try
                {
                    tFloder.Add((FCYResPackageNode)tNewNode.Tag);
                }
                catch (FCYExcpNameErr)
                {
                    showErr("添加节点时遭遇错误,该节点可能已经存在。\n\n文件:" + x.FullName);

                    continue;
                }

                importFloder(x, tNewNode);

                Node.Nodes.Add(tNewNode);
            }

            // 处理所有文件
            foreach (FileInfo x in Dir.GetFiles())
            {
                TreeNode tNewNode = new TreeNode(Path.GetFileName(x.FullName), 1, 1);
                tNewNode.Tag = new FCYResPackageDataNode((FCYResPackage)treeView_Main.Tag, tFloder, tNewNode.Text, x.FullName);

                try
                {
                    tFloder.Add((FCYResPackageNode)tNewNode.Tag);
                }
                catch (FCYExcpNameErr)
                {
                    showErr("添加节点时遭遇错误,该节点可能已经存在。\n\n文件:" + x.FullName);

                    continue;
                }

                Node.Nodes.Add(tNewNode);
            }

            GC.Collect();
        }
Esempio n. 4
0
        // --- 选择流 ---
        private void updateDetail(TreeNode pNode)
        {
            tabControl_Data.Tag = pNode;

            if (pNode != null)
            {
                toolStripTextBox_Path.Text = pNode.FullPath;
            }
            else
            {
                toolStripTextBox_Path.Text = "";
            }

            textBox1.Text     = "";
            textBox2.Text     = "";
            textBox3.Text     = "";
            textBox4.Text     = "";
            checkBox1.Checked = false;

            if (pNode != null)
            {
                if (((FCYResPackageNode)pNode.Tag).IsFloder())
                {
                    FCYResPackageFloderNode tFolderNode = (FCYResPackageFloderNode)pNode.Tag;

                    textBox1.Text = tFolderNode.Name;
                }
                else
                {
                    FCYResPackageDataNode tDataNode = (FCYResPackageDataNode)pNode.Tag;

                    textBox1.Text     = tDataNode.Name;
                    textBox2.Text     = tDataNode.DataRealSize.ToString();
                    textBox3.Text     = tDataNode.DataCompressedSize.ToString();
                    textBox4.Text     = tDataNode.AdditionData;
                    checkBox1.Checked = tDataNode.IsCompressed;
                }
            }
        }
Esempio n. 5
0
        // --- 删除节点 ---
        private void toolStripButton_Remove_Click(object sender, EventArgs e)
        {
            // 获得节点
            TreeNode tNode = treeView_Main.SelectedNode;

            if (tNode != null)
            {
                if (tNode.Parent == null)
                {
                    return;
                }

                if (MessageBox.Show("确认删除节点?", "删除确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    FCYResPackageFloderNode tParentFloder = (FCYResPackageFloderNode)tNode.Parent.Tag;

                    // 移除节点
                    tParentFloder.NodeList.Remove((FCYResPackageNode)tNode.Tag);

                    tNode.Parent.Nodes.Remove(tNode);
                }
            }
        }
Esempio n. 6
0
        // --- 创建流 ---
        private void ToolStripMenuItem_CreateStream_Click(object sender, EventArgs e)
        {
            // 获得父节点
            TreeNode tParent = treeView_Main.SelectedNode;

            if (tParent != null)
            {
                // 检查父节点
                if (!((FCYResPackageNode)tParent.Tag).IsFloder())
                {
                    showErr("请选择一个文件夹节点。");
                    return;
                }

                // 获得父节点
                FCYResPackageFloderNode tParentFloder = (FCYResPackageFloderNode)tParent.Tag;

                // 获得新节点名称
                string tNodeName = "";
                string tFileName = "";
                string tAddition = "";
                bool   tCompress = false;

                if (!CreateStreamForm.OpenCreateStreamForm(treeView_Main.SelectedNode.FullPath, ref tNodeName, ref tFileName, ref tAddition, ref tCompress))
                {
                    return;
                }

                if (tNodeName == "")
                {
                    showErr("无效的名称。");
                    return;
                }

                // 创建节点
                FCYResPackageDataNode tNewSubNode = new FCYResPackageDataNode((FCYResPackage)treeView_Main.Tag, tParentFloder, tNodeName, tFileName);

                // 尝试加入
                try
                {
                    tParentFloder.Add(tNewSubNode);
                }
                catch
                {
                    showErr("节点名已存在或者无效。");
                    return;
                }

                // 设置属性
                tNewSubNode.IsCompressed = tCompress;
                tNewSubNode.AdditionData = tAddition;

                // 创建树节点
                TreeNode tTreeNode = new TreeNode(tNodeName, 1, 1);
                tTreeNode.Tag = tNewSubNode;

                // 加入
                tParent.Nodes.Add(tTreeNode);
                tParent.Expand();
            }
        }