Esempio n. 1
0
        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.Visible = false;
                    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.Visible = false;
                        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;
                        cbo.TabIndex = customizationFunction.localVariableTypeAndName.ElementAt(i).Value.Count - j;
                        pnlParameters.Controls.Add(cbo);
                        pnlParameters.Controls.Add(lbl);

                    } else {
                        TextBox txt = new TextBox();
                        txt.Visible = false;
                        txt.Name = customizationFunction.localVariableTypeAndName.ElementAt(i).Value[j];
                        txt.Dock = DockStyle.Top;
                        txt.TabIndex = customizationFunction.localVariableTypeAndName.ElementAt(i).Value.Count - j;
                        //txt.Text = "\"\"";
                        txt.ContextMenuStrip = cmsAddPropertyMenu;
                        pnlParameters.Controls.Add(txt);
                        pnlParameters.Controls.Add(lbl);

                    }
                }
            }
            foreach (Control control in pnlParameters.Controls) {
                control.Visible = true;
            }
        }
Esempio n. 2
0
        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;

                List<string> variablesIndexes = new List<string>();

                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]);
                            variablesIndexes.Add(variableTypeAndName[1]);
                        } else {
                            variableTypAndName["other"].Add(variableTypeAndName[1]);
                            variablesIndexes.Add(variableTypeAndName[1]);
                        }
                    }
                }
                functionCall = functionCall.Trim(new char[] { ',' });
                CustomizationFunction function = new CustomizationFunction(functionName, "desc", variableTypAndName, functionCall);
                function.variablesIndexes = variablesIndexes;
                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;
                //}

            }
        }