public static bool OpenPropEditorForm(FCYResPackageDataNode tNode) { PropEditor tForm = new PropEditor(tNode.IsCompressed, tNode.AdditionData, tNode.Name); if (tForm.ShowDialog() == DialogResult.Cancel) { tForm.Dispose(); return false; } else { tNode.IsCompressed = tForm.checkBox1.Checked; tNode.AdditionData = tForm.textBox1.Text; try { if(tNode.Name != tForm.textBox2.Text) tNode.Name = tForm.textBox2.Text; } catch(FCYExcpNameErr) { MessageBox.Show("修改节点名称失败。可能存在同名节点或者节点名称不合法。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } tForm.Dispose(); return true; } }
/// <summary> /// 追加节点 /// </summary> /// <param name="Node">节点</param> public void Add(FCYResPackageNode Node) { if (Contains(Node.Name)) { throw new FCYExcpNameErr("Name exsited."); } if (FCYResPackageDataNode.CheckName(Node.Name) == false) { throw new FCYExcpNameErr("Invalid Name."); } else { NodeList.Add(Node); } }
/// <summary> /// 从Xml创建文件夹节点 /// </summary> /// <param name="Package">绑定的资源包</param> /// <param name="Parent">父节点</param> /// <param name="XmlNode">Xml节点</param> public FCYResPackageFloderNode(FCYResPackage Package, FCYResPackageFloderNode Parent, XmlElement XmlNode) : base(Parent, XmlNode.HasAttribute("Name") ? XmlNode.GetAttribute("Name") : "") { m_NodeList.Clear(); foreach (XmlElement x in XmlNode) { if (x.Name == "Floder") { FCYResPackageFloderNode tFloder = new FCYResPackageFloderNode(Package, this, x); Add(tFloder); } else { FCYResPackageDataNode tData = new FCYResPackageDataNode(Package, this, x); Add(tData); } } }
// --- 创建流 --- 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(); } }