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); }
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); } }
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); }
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>")); }
/// <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)); }
/// <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); } } }
static private string GenerateID(AMLParam param) { return(param.Group + param.Name); }
/// <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>")); }