コード例 #1
0
        static private Control GenerateDropdownList(AMLParam param)
        {
            DropDownList drop = new DropDownList();

            drop.ID = param.Name;
            drop.Attributes.Add("Class", "form-control");
            foreach (string ele in param.StrEnum)
            {
                ListItem litem = new ListItem();
                litem.Text = ele;
                if (litem.Text.ToLower() == param.DefaultValue.ToLower())
                {
                    litem.Selected = true;
                }
                drop.Items.Add(litem);
            }
            return(drop);
        }
コード例 #2
0
        private Control GenerateControlDefault(AMLParam param, string id)
        {
            TextBox txt = new TextBox();

            txt.ID   = id;
            txt.Text = param.DefaultValue;
            txt.Attributes.Add("Class", "amount form-control form-control-number");
            if (param.Type == "integer")
            {
                txt.TextMode = TextBoxMode.Number;
                return(txt);
            }
            else if (param.StrEnum != null && param.StrEnum.Count > 0)      // Droplist
            {
                return(GenerateDropdownList(param, id));
            }
            else
            {
                return(txt);
            }
        }
コード例 #3
0
        static private Control GenerateRadio(AMLParam param)
        {
            RadioButtonList rabtnList = new RadioButtonList();

            rabtnList.ID = param.Name;
            var listEmum = param.StrEnum.OrderBy(x => x.Length).ToList();

            foreach (string ele in listEmum)
            {
                ListItem litem = new ListItem();
                litem.Text = ele;
                if (litem.Text.ToLower() == param.DefaultValue.ToLower())
                {
                    litem.Selected = true;
                }
                rabtnList.Items.Add(litem);
            }
            rabtnList.RepeatLayout    = RepeatLayout.Flow;
            rabtnList.RepeatDirection = RepeatDirection.Horizontal;
            return(rabtnList);
        }
コード例 #4
0
        private Control GenerateControlMax(AMLParam param, string id)
        {
            TextBox txt = new TextBox();

            txt.ID   = id;
            txt.Text = param.MaxValue;
            txt.Attributes.Add("Class", "amount form-control form-control-number");

            if (param.Type == "integer")
            {
                txt.TextMode = TextBoxMode.Number;
                return(txt);
            }
            else if (param.Type == "number")
            {
                return(txt);
            }
            else
            {
                txt.Text     = "Null";
                txt.ReadOnly = true;
                return(txt);
            }
        }
        static IEnumerable <Control> GenerateInputControl(AMLParam param, HttpBrowserCapabilities browser)
        {
            if (param.StrEnum != null && param.StrEnum.Count > 3)           // Drop list
            {
                yield return(GenerateDropdownList(param));
            }
            else if (param.StrEnum != null && param.StrEnum.Count <= 3 && param.StrEnum.Count > 0)     // Radio Button
            {
                yield return(new LiteralControl("<p>"));

                yield return(GenerateRadio(param));

                yield return(new LiteralControl("</p>"));
            }
            else if (param.Type.ToLower() == "integer")   // slider number Integer
            {
                TextBox txt = new TextBox();
                txt.ID   = param.Name;
                txt.Text = param.DefaultValue;
                txt.Attributes.Add("Class", "amount form-control form-control-number");
                if (param.Type == "integer")
                {
                    txt.TextMode = TextBoxMode.Number;
                }
                if (browser.Browser.ToLower() == "internetexplorer")
                {
                    yield return(GenerateSliderHTML(param, "1"));

                    yield return(txt);

                    yield return(new LiteralControl("</div>"));  // end of div

                    yield return(GenerateScriptSlideIE(param));
                }

                else
                {
                    yield return(GenerateSliderHTML(param, "1"));

                    yield return(txt);

                    yield return(new LiteralControl("</div>"));  // end of div

                    yield return(GenerateScriptSlideHTML(param));
                }
            }
            else if (param.Type.ToLower() == "number")   // slider number Integer
            {
                TextBox txt = new TextBox();
                txt.ID   = param.Name;
                txt.Text = param.DefaultValue;
                txt.Attributes.Add("Class", "amount form-control form-control-number");
                if (browser.Browser.ToLower() == "internetexplorer")
                {
                    yield return(GenerateSliderHTML(param, "0.01"));

                    yield return(txt);

                    yield return(new LiteralControl("</div>"));  // end of div

                    yield return(GenerateScriptSlideIE(param));
                }

                else
                {
                    yield return(GenerateSliderHTML(param, "0.01"));

                    yield return(txt);

                    yield return(new LiteralControl("</div>"));  // end of div

                    yield return(GenerateScriptSlideHTML(param));
                }
            }
            else
            {
                TextBox txt = new TextBox();
                txt.ID   = param.Name;
                txt.Text = param.DefaultValue;
                txt.Attributes.Add("Class", "form-control");
                if (param.Format == "script")
                {
                    txt.TextMode = TextBoxMode.MultiLine;
                }
                else if (param.Format == "password")
                {
                    txt.TextMode = TextBoxMode.Password;
                }
                yield return(txt);
            }
        }
        /// <summary>
        /// Show list of input
        /// </summary>
        /// <param name="inputPlace1"> div of clolumn 1 </param>
        /// <param name="inputPlace2"> div of clolumn 2 </param>
        /// <param name="inputParam"> list of Parameter Object </param>
        /// <param name="browser"> Detect Browser </param>
        static public void ShowInput(PlaceHolder inputPlace1, PlaceHolder inputPlace2, List <AMLParam> inputParam, HttpBrowserCapabilities browser)
        {
            inputPlace1.Controls.Add(new LiteralControl("<fieldset><legend>Global Parameters <!-- <span class=\"glyphicon glyphicon-triangle-bottom\" id=\"icon_expand_global\" style=\"float: right\"></span> --></legend><div id=\"globalArea\">"));

            if (inputParam == null || inputParam.Count == 0)
            {
                inputPlace1.Controls.Add(new LiteralControl("<h3>No web service input</h3>"));
                return;
            }
            int count = 0;

            for (int i = 0; i < inputParam.Count; i++) //MLParameter param in inputParam)
            {
                Literal lcssFormGroup = new Literal();
                lcssFormGroup.Text = "<div class=\"form-group\">";
                Literal ldiv = new Literal();
                ldiv.Text = "</div>";


                AMLParam param = inputParam[i];
                Label    lbl   = new Label();
                if (string.IsNullOrEmpty(param.Alias))
                {
                    lbl.Text = textInfo.ToTitleCase(param.Name);
                }
                else
                {
                    lbl.Text = textInfo.ToTitleCase(param.Alias);
                }
                lbl.ID = "lbl" + param + count++;
                lbl.Attributes.Add("Class", "fieldname");

                int numOfPlace1 = inputParam.Count / 2;
                if (inputPlace2 == null)
                {
                    numOfPlace1 = inputParam.Count;
                }

                if (i <= numOfPlace1)
                {
                    inputPlace1.Controls.Add(lcssFormGroup);
                    inputPlace1.Controls.Add(lbl);

                    foreach (var control in GenerateInputControl(param, browser))
                    {
                        inputPlace1.Controls.Add(control);
                    }

                    if (!string.IsNullOrEmpty(param.Description))
                    {
                        inputPlace1.Controls.Add(new LiteralControl(string.Format("<div style=\"width=:100%\"><samp>{0}</samp></div>", param.Description)));
                    }
                    inputPlace1.Controls.Add(ldiv);
                }
                else
                {
                    inputPlace2.Controls.Add(lcssFormGroup);
                    inputPlace2.Controls.Add(lbl);
                    foreach (var control in GenerateInputControl(param, browser))
                    {
                        inputPlace2.Controls.Add(control);
                    }
                    if (!string.IsNullOrEmpty(param.Description))
                    {
                        inputPlace2.Controls.Add(new LiteralControl(string.Format("<div style=\"width=:100%\"><samp>{0}</samp></div>", param.Description)));
                    }
                    inputPlace2.Controls.Add(ldiv);
                }
            }

            inputPlace1.Controls.Add(new LiteralControl("</div></fieldset>"));
        }
コード例 #7
0
        /// <summary>
        /// Show list of Output to user by OutputParameter and value
        /// </summary>
        /// <param name="outputPlace">div of output</param>
        /// <param name="sciprtPlaceHolde"> div of script if need </param>
        /// <param name="outputParam"> list of output Prameter </param>
        /// <param name="listOutput"> list of Output Object (name, list value) </param>
        /// <param name="page"> Main page </param>
        static public void ShowOutput(PlaceHolder outputPlace, PlaceHolder sciprtPlaceHolde, List <AMLParam> outputParam, List <OutputObject> listOutput, Page page)
        {
            Dictionary <string, double> listOutputNumber = new Dictionary <string, double>();

            outputPlace.Controls.Add(new LiteralControl("<p class=\"titleresult\">Result</p>"));
            int count = 0;

            outputPlace.Controls.Add(new LiteralControl("<table class=\"table table-hover table-bordered\">"));
            outputPlace.Controls.Add(new LiteralControl("<tr class=\"info\"><th>Label</th><th>Value</th></tr>"));

            foreach (OutputObject outputObj in listOutput)
            {
                bool showOutputLabel = false;
                for (int i = 0; i < outputObj.Values.Count; i++)
                {
                    if (outputParam[count + i].Enable)
                    {
                        showOutputLabel = true; break;
                    }
                }

                if (showOutputLabel)
                {
                    outputPlace.Controls.Add(new LiteralControl("<tr><td colspan=\"2\" style=\"background-color: azure\">" + outputObj.Name + "</td></tr>"));
                }

                for (int i = 0; i < outputObj.Values.Count; i++)
                {
                    AMLParam param = outputParam[count];
                    // Check value, if empty, skip this field, don't show on output region

                    if (param.Enable)
                    {
                        //if (string.IsNullOrEmpty(outputObj.Values[i])) continue;
                        // Show image from output
                        if (param.Name.Contains("R Output JSON"))
                        {
                            outputPlace.Controls.Add(new LiteralControl("<tr>"));
                            outputPlace.Controls.Add(new LiteralControl(string.Format("<td class=\"textresult\">{0}</td>", textInfo.ToTitleCase(param.Name))));
                            if (!string.IsNullOrEmpty(outputObj.Values[i]))
                            {
                                outputPlace.Controls.Add(new LiteralControl(string.Format("<td>{0}</td>", "Please check Image")));
                            }
                            else
                            {
                                outputPlace.Controls.Add(new LiteralControl(string.Format("<td></td>")));
                            }
                            outputPlace.Controls.Add(new LiteralControl("</tr>"));

                            if (!string.IsNullOrEmpty(outputObj.Values[i]))
                            {
                                Image img = new Image();
                                img.ImageUrl           = @"data:image/png;base64," + getImageData(outputObj.Values[i]);
                                img.Style["width"]     = "100%";
                                img.Style["max-width"] = "480px";

                                // add picture outsite of table (script path)

                                sciprtPlaceHolde.Controls.Add(new LiteralControl("<div style=\"text-align:center\">"));
                                sciprtPlaceHolde.Controls.Add(img);
                                sciprtPlaceHolde.Controls.Add(new LiteralControl("</div>"));
                            }
                        }
                        else if (param.Name.Equals("Graphics"))
                        {
                            outputPlace.Controls.Add(new LiteralControl("<tr>"));
                            outputPlace.Controls.Add(new LiteralControl(string.Format("<td class=\"textresult\">{0}</td>", textInfo.ToTitleCase(param.Name))));
                            if (!string.IsNullOrEmpty(outputObj.Values[i]))
                            {
                                outputPlace.Controls.Add(new LiteralControl(string.Format("<td>{0}</td>", "Please check Image")));
                            }
                            else
                            {
                                outputPlace.Controls.Add(new LiteralControl(string.Format("<td></td>")));
                            }
                            outputPlace.Controls.Add(new LiteralControl("</tr>"));

                            if (!string.IsNullOrEmpty(outputObj.Values[i]))
                            {
                                Image img = new Image();
                                img.ImageUrl           = @"data:image/png;base64," + outputObj.Values[i];
                                img.Style["width"]     = "100%";
                                img.Style["max-width"] = "480px";

                                // add picture outsite of table (script path)

                                sciprtPlaceHolde.Controls.Add(new LiteralControl("<div style=\"text-align:center\">"));
                                sciprtPlaceHolde.Controls.Add(img);
                                sciprtPlaceHolde.Controls.Add(new LiteralControl("</div>"));
                            }
                        }

                        else
                        {
                            outputPlace.Controls.Add(new LiteralControl("<tr>"));
                            outputPlace.Controls.Add(new LiteralControl(string.Format("<td class=\"textresult\">{0}</td>", string.IsNullOrEmpty(param.Alias) ? textInfo.ToTitleCase(param.Name) : param.Alias)));
                            outputPlace.Controls.Add(new LiteralControl(string.Format("<td>{0}</td>", outputObj.Values[i].Trim('\"'))));
                            if (param.Type == "number")
                            {
                                double tmp = 0;
                                try
                                {
                                    tmp = Math.Round(Convert.ToDouble(outputObj.Values[i].Trim('\"')), 2);
                                    listOutputNumber.Add(!string.IsNullOrEmpty(param.Alias) ? param.Alias : param.Name, tmp);
                                }
                                catch (Exception) { };
                            }
                            outputPlace.Controls.Add(new LiteralControl("</tr>"));
                        }
                    }
                    count++;
                }
            }
            outputPlace.Controls.Add(new LiteralControl("</table>"));
            //if (listOutputNumber.Count == 1)
            //    ScriptManager.RegisterStartupScript(page, page.GetType(), "script", "loadPercentage(" + listOutputNumber.First().Value + ");", true);
            //else if (listOutputNumber.Count > 1) sciprtPlaceHolde.Controls.Add(GenerateScriptBarGraph(listOutputNumber));
        }
コード例 #8
0
        /// <summary>
        /// Show list of input
        /// </summary>
        /// <param name="inputPlace1"> div of clolumn 1 </param>
        /// <param name="inputPlace2"> div of clolumn 2 </param>
        /// <param name="inputParam"> list of Parameter Object </param>
        /// <param name="browser"> Detect Browser </param>
        static public void ShowInput(PlaceHolder inputPlace1, PlaceHolder inputPlace2, List <AMLParam> inputParam, HttpBrowserCapabilities browser)
        {
            if (inputParam == null || inputParam.Count == 0)
            {
                inputPlace1.Controls.Add(new LiteralControl("<h3>No web service input</h3>"));
                return;
            }
            int count = 0;

            for (int i = 0; i < inputParam.Count; i++) //MLParameter param in inputParam)
            {
                Literal lcssFormGroup = new Literal();
                lcssFormGroup.Text = "<div class=\"form-group\">";
                Literal ldiv = new Literal();
                ldiv.Text = "</div>";


                AMLParam param = inputParam[i];
                Label    lbl   = new Label();
                if (string.IsNullOrEmpty(param.Alias))
                {
                    lbl.Text = textInfo.ToTitleCase(param.Name);
                }
                else
                {
                    lbl.Text = textInfo.ToTitleCase(param.Alias);
                }
                lbl.ID = "lbl" + param + count++;
                lbl.Attributes.Add("Class", "fieldname");

                if (i <= inputParam.Count / 2)
                {
                    inputPlace1.Controls.Add(lcssFormGroup);
                    inputPlace1.Controls.Add(lbl);

                    foreach (var control in GenerateInputControl(param, browser))
                    {
                        inputPlace1.Controls.Add(control);
                    }

                    if (!string.IsNullOrEmpty(param.Description))
                    {
                        inputPlace1.Controls.Add(new LiteralControl(string.Format("<div style=\"width=:100%\"><samp>{0}</samp></div>", param.Description)));
                    }
                    inputPlace1.Controls.Add(ldiv);
                }
                else
                {
                    inputPlace2.Controls.Add(lcssFormGroup);
                    inputPlace2.Controls.Add(lbl);
                    foreach (var control in GenerateInputControl(param, browser))
                    {
                        inputPlace2.Controls.Add(control);
                    }
                    if (!string.IsNullOrEmpty(param.Description))
                    {
                        inputPlace2.Controls.Add(new LiteralControl(string.Format("<div style=\"width=:100%\"><samp>{0}</samp></div>", param.Description)));
                    }
                    inputPlace2.Controls.Add(ldiv);
                }
            }
        }
コード例 #9
0
 static private string GenerateID(AMLParam param)
 {
     return(param.Group + param.Name);
 }
コード例 #10
0
        /// <summary>
        /// Show list of input
        /// </summary>
        /// <param name="inputPlace1"> div of clolumn 1 </param>
        /// <param name="inputPlace2"> div of clolumn 2 </param>
        /// <param name="inputParam"> list of Parameter Object </param>
        /// <param name="browser"> Detect Browser </param>
        static public void ShowInput(PlaceHolder Main, List <AMLParam> inputParam, HttpBrowserCapabilities browser, string Title)
        {
            if (inputParam == null || inputParam.Count == 0)
            {
                //inputPlace1.Controls.Add(new LiteralControl("<h3>No web service input</h3>"));
                return;
            }


            Main.Controls.Add(new LiteralControl("<fieldset style=\"margin-top: 30px\" id=\"" + Title + "\"><legend>" + textInfo.ToTitleCase(Title.ToLower()) + "</legend>"));
            Main.Controls.Add(new LiteralControl("<div id=\"div" + Title + "\"><div class=\"row\">"));
            Main.Controls.Add(new LiteralControl("<div class=\"col-lg-6\"><p>"));
            var inputPlace1 = new PlaceHolder();
            var inputPlace2 = new PlaceHolder();


            int count = 0;

            for (int i = 0; i < inputParam.Count; i++) //MLParameter param in inputParam)
            {
                Literal lcssFormGroup = new Literal();
                lcssFormGroup.Text = "<div class=\"form-group\">";
                Literal ldiv = new Literal();
                ldiv.Text = "</div>";


                AMLParam param = inputParam[i];
                Label    lbl   = new Label();
                if (string.IsNullOrEmpty(param.Alias))
                {
                    lbl.Text = textInfo.ToTitleCase(param.Name);
                }
                else
                {
                    lbl.Text = textInfo.ToTitleCase(param.Alias);
                }
                lbl.ID = "lbl" + GenerateID(param);
                lbl.Attributes.Add("Class", "fieldname");

                int numOfPlace1 = inputParam.Count / 2;
                if (inputPlace2 == null)
                {
                    numOfPlace1 = inputParam.Count;
                }

                if (i <= numOfPlace1)
                {
                    inputPlace1.Controls.Add(lcssFormGroup);
                    inputPlace1.Controls.Add(lbl);

                    foreach (var control in GenerateInputControl(param, browser))
                    {
                        inputPlace1.Controls.Add(control);
                    }

                    if (!string.IsNullOrEmpty(param.Description))
                    {
                        inputPlace1.Controls.Add(new LiteralControl(string.Format("<div style=\"width=:100%\"><samp>{0}</samp></div>", param.Description)));
                    }
                    inputPlace1.Controls.Add(ldiv);
                }
                else
                {
                    inputPlace2.Controls.Add(lcssFormGroup);
                    inputPlace2.Controls.Add(lbl);
                    foreach (var control in GenerateInputControl(param, browser))
                    {
                        inputPlace2.Controls.Add(control);
                    }
                    if (!string.IsNullOrEmpty(param.Description))
                    {
                        inputPlace2.Controls.Add(new LiteralControl(string.Format("<div style=\"width=:100%\"><samp>{0}</samp></div>", param.Description)));
                    }
                    inputPlace2.Controls.Add(ldiv);
                }
            }

            Main.Controls.Add(inputPlace1);
            Main.Controls.Add(new LiteralControl("</p></div>"));
            Main.Controls.Add(new LiteralControl("<div class=\"col-lg-6\"><p>"));
            Main.Controls.Add(inputPlace2);
            Main.Controls.Add(new LiteralControl("</p></div></div></div></fieldset>"));
        }