private void CB_Param_Optional_Click(object sender, EventArgs e) { if (SelectParam != null) { NodeParam Param = (NodeParam)SelectParam.Tag; Param.Optional = CB_Param_Optional.Checked; } }
private void TB_Param_Describe_Leave(object sender, EventArgs e) { if (SelectParam != null) { NodeParam Param = (NodeParam)SelectParam.Tag; Param.Describe = ToHtml(TB_Param_Describe.Text); } }
private void LB_Param_DataType_Leave(object sender, EventArgs e) { if (SelectParam != null) { NodeParam Param = (NodeParam)SelectParam.Tag; Param.DataType = LB_Param_DataType.Text; } }
// 参数 四个控件保存流程单独处理,不然逻辑太复杂了 private void TB_Param_Caption_Leave(object sender, EventArgs e) { if (SelectParam != null) { NodeParam Param = (NodeParam)SelectParam.Tag; Param.Caption = ToHtml(TB_Param_Caption.Text); // 改标题后要刷新列表 SelectParam.Text = Param.Caption; } }
// 设置参数数据 private void LoadParam(NodeParam Param) { if (Param != null) { TB_Param_Caption.Text = ToText(Param.Caption); LB_Param_DataType.Text = Param.DataType; TB_Param_Describe.Text = ToText(Param.Describe); CB_Param_Optional.Checked = Param.Optional; } else { TB_Param_Caption.Text = ""; LB_Param_DataType.Text = ""; TB_Param_Describe.Text = ""; CB_Param_Optional.Checked = false; } }
// 添加参数 private void AddParam_Click(object sender, EventArgs e) { // 添加参数 NodeData Item = (NodeData)SelectNode.Tag; NodeParam Param = new NodeParam(); Param.Caption = "Param"; Param.DataType = "Integer"; Param.Describe = "参数说明"; Param.Optional = false; Item.Cmd_Param.Add(Param); // 刷新参数列表 ListViewItem item = LB_Param.Items.Add(Param.Caption); item.Tag = Param; SelectParam = item; LoadParam(Param); }
// 递归遍历命令树 [加载用] private void RecuCommandList(TreeNodeCollection node, JObject item) { NodeData Node = new NodeData(); Node.Caption = item["Caption"] == null ? "" : item["Caption"].ToString(); Node.Remark = item["Remark"] == null ? "" : item["Remark"].ToString(); Node.Icon = item["Icon"] == null ? "函数" : item["Icon"].ToString(); Node.InsCode = item["InsCode"] == null ? "" : item["InsCode"].ToString(); Node.InsCodeTop = item["InsCodeTop"] == null ? "" : item["InsCodeTop"].ToString(); Node.InsCodeEnd = item["InsCodeEnd"] == null ? "" : item["InsCodeEnd"].ToString(); Node.Templet = item["Templet"] == null ? "" : item["Templet"].ToString(); Node.Visible = item["Visible"] == null ? true : item["Visible"].Value <bool>(); Node.Function = item["Function"] == null ? true : item["Function"].Value <bool>(); Node.Cmd_Caption = ""; Node.Cmd_Define = ""; Node.Cmd_Describe = ""; Node.Cmd_RetType = ""; Node.Cmd_Return = ""; Node.Cmd_Param = new ArrayList(); Node.Doc_Caption = ""; Node.Doc_Document = ""; Node.Syn_Caption = ""; Node.Syn_Define = ""; Node.Syn_Describe = ""; Node.Tpe_Caption = ""; Node.Tpe_Define = ""; Node.Tpe_Describe = ""; Node.Help_Else = ""; if (item["Help"] is JObject) { switch (Node.Templet.ToLower()) { case "command.html": Node.Cmd_Caption = item["Help"]["Caption"] == null ? "" : item["Help"]["Caption"].ToString(); Node.Cmd_Define = item["Help"]["Define"] == null ? "" : item["Help"]["Define"].ToString(); Node.Cmd_Describe = item["Help"]["Describe"] == null ? "" : item["Help"]["Describe"].ToString(); Node.Cmd_RetType = item["Help"]["RetType"] == null ? "" : item["Help"]["RetType"].ToString(); Node.Cmd_Return = item["Help"]["Return"] == null ? "" : item["Help"]["Return"].ToString(); if (item["Help"]["Param"] is JArray) { foreach (JObject ParamItem in item["Help"]["Param"]) { NodeParam Param = new NodeParam(); Param.Caption = ParamItem["Caption"] == null ? "" : ParamItem["Caption"].ToString(); Param.DataType = ParamItem["DataType"] == null ? "" : ParamItem["DataType"].ToString(); Param.Describe = ParamItem["Describe"] == null ? "" : ParamItem["Describe"].ToString(); Param.Optional = ParamItem["Optional"] == null ? false : ParamItem["Optional"].Value <bool>(); Node.Cmd_Param.Add(Param); } } break; case "document.html": Node.Doc_Caption = item["Help"]["Caption"] == null ? "" : item["Help"]["Caption"].ToString(); Node.Doc_Document = item["Help"]["Document"] == null ? "" : item["Help"]["Document"].ToString(); break; case "index.html": break; case "syntax.html": Node.Syn_Caption = item["Help"]["Caption"] == null ? "" : item["Help"]["Caption"].ToString(); Node.Syn_Define = item["Help"]["Define"] == null ? "" : item["Help"]["Define"].ToString(); Node.Syn_Describe = item["Help"]["Describe"] == null ? "" : item["Help"]["Describe"].ToString(); break; case "variant.html": Node.Tpe_Caption = item["Help"]["Caption"] == null ? "" : item["Help"]["Caption"].ToString(); Node.Tpe_Define = item["Help"]["Define"] == null ? "" : item["Help"]["Define"].ToString(); Node.Tpe_Describe = item["Help"]["Describe"] == null ? "" : item["Help"]["Describe"].ToString(); break; default: Node.Help_Else = item["Help"].ToString(); break; } } // 添加到命令列表 string sCaption; if (Node.Remark == "") { sCaption = Node.Caption; } else { sCaption = Node.Caption + " (" + Node.Remark + ")"; } TreeNode root = node.Add(sCaption); root.Tag = Node; root.ContextMenuStrip = TreeMenu; if (Node.Icon != "") { root.ImageKey = Node.Icon; root.SelectedImageKey = Node.Icon; } if (item["Child"] != null) { foreach (JObject child_item in item["Child"]) { RecuCommandList(root.Nodes, child_item); } // 是否展开列表项 if (item["Expand"] != null) { if (item["Expand"].Value <bool>() == true) { root.Expand(); } } } }