private void UpdateUiFromSelectedItem(CustomizationFunction customizationFunction) { pnlParameters.Controls.Clear(); txtFunctionName.Text = customizationFunction.localName; txtDescription.Text = customizationFunction.localDescription; for (int i = 0; i < customizationFunction.localVariableTypeAndName.Count; i++) { for (int j = 0; j < customizationFunction.localVariableTypeAndName.ElementAt(i).Value.Count; j++) { Label lbl = new Label(); lbl.Text = customizationFunction.localVariableTypeAndName.ElementAt(i).Value[j].Substring(0, 1).ToUpperInvariant() + customizationFunction.localVariableTypeAndName.ElementAt(i).Value[j].Substring(1); lbl.Dock = DockStyle.Top; if (string.Equals(customizationFunction.localVariableTypeAndName.ElementAt(i).Key, "boolean")) { ComboBox cbo = new ComboBox(); cbo.Items.Add("True"); cbo.Items.Add("False"); cbo.DropDownStyle = ComboBoxStyle.DropDown; cbo.Name = customizationFunction.localVariableTypeAndName.ElementAt(i).Value[j]; cbo.Dock = DockStyle.Top; cbo.SelectedIndex = 0; cbo.ContextMenuStrip = cmsAddPropertyMenu; pnlParameters.Controls.Add(cbo); pnlParameters.Controls.Add(lbl); } else { TextBox txt = new TextBox(); txt.Name = customizationFunction.localVariableTypeAndName.ElementAt(i).Value[j]; txt.Dock = DockStyle.Top; txt.Text = "\"\""; txt.ContextMenuStrip = cmsAddPropertyMenu; pnlParameters.Controls.Add(txt); pnlParameters.Controls.Add(lbl); } } } }
private void LoadAvailableFunctionsToList(string utilsFilePath) { string readFile = FrontendUtils.ReadFile(utilsFilePath); Regex regex = new Regex("(public).*?(\\S+).?\\((.*)\\)\\{"); MatchCollection matches = regex.Matches(readFile); foreach (Match match in matches) { string functionName = match.Groups[2].Value; string allFunctionVariables = match.Groups[3].Value; string[] variables = allFunctionVariables.Split(','); Dictionary<string, List<string>> variableTypAndName = new Dictionary<string, List<string>>(); variableTypAndName.Add("boolean", new List<string>()); variableTypAndName.Add("other", new List<string>()); string functionCall = string.Empty; for (int i = 0; i < variables.Length; i++) { string[] variableTypeAndName = variables[i].Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); if (variableTypeAndName.Length > 1) { functionCall = functionCall + variableTypeAndName[1] + " ,"; if (string.Equals(variableTypeAndName[0], "boolean") || string.Equals(variableTypeAndName[0], "Boolean")) { variableTypAndName["boolean"].Add(variableTypeAndName[1]); } else { variableTypAndName["other"].Add(variableTypeAndName[1]); } } } functionCall = functionCall.Trim(new char[] { ',' }); CustomizationFunction function = new CustomizationFunction(functionName, "desc", variableTypAndName, functionCall); function.localDescription = GetDiscription(function.localName, readFile); lbAvailableFunctions.Items.Add(function); //Label lbl = new Label(); //lbl.Text = variableTypeAndName[1]; //pnlParameters.Controls.Add(lbl); //lbl.Dock = DockStyle.Top; //if (string.Equals(variableTypeAndName[0], "boolean") || string.Equals(variableTypeAndName[0], "Boolean")) { // ComboBox cbo = new ComboBox(); // cbo.Items.Add("True"); // cbo.Items.Add("False"); // cbo.DropDownStyle = ComboBoxStyle.DropDownList; // cbo.Name = variableTypeAndName[1]; // pnlParameters.Controls.Add(cbo); // cbo.Dock = DockStyle.Top; //} else { // TextBox txt = new TextBox(); // txt.Name = variableTypeAndName[1]; // pnlParameters.Controls.Add(txt); // txt.Dock = DockStyle.Top; //} } }