/// <summary> /// Construct a settings option from parameters. /// </summary> /// <param name="name"> The name of the option (unlocalized). </param> /// <param name="key"> The key to save. </param> /// <param name="defaultValue"> The default value. </param> /// <param name="classData"> Any class data associated with the option. </param> public SettingsOption(string name, string key, string defaultValue, UIClassData classData) { this.name = name; this.key = key; this.defaultValue = defaultValue; this.classData = classData; }
/// <summary> /// A nice little helper. /// </summary> public SettingsOption(XmlReader reader) { XmlReader subReader = reader.ReadSubtree(); name = reader.GetAttribute("Name"); key = reader.GetAttribute("Key"); defaultValue = reader.GetAttribute("DefaultValue"); classData = new UIClassData(reader.GetAttribute("ClassName"), (reader != null && subReader.ReadToDescendant("Params")) ? Parameter.ReadXml(reader) : new Parameter()); subReader.Close(); }
public async Task <string> RenderAsync(SerializableList <LocalizationData.ClassData> model) { HtmlBuilder hb = new HtmlBuilder(); hb.Append($@" <div class='yt_yetawf_languages_localizeclasses t_edit'>"); string linkClass = UniqueId(); int countClasses = model.Count; if (countClasses > 1) { hb.Append($@" <div class='t_links'>"); for (int i = 0; i < countClasses; ++i) { hb.Append($@" <div class='t_link_{i}'> <a href='#{linkClass}_{i}'>{Utility.HtmlEncode(model[i].Name)}</a> </div>"); } hb.Append($@" </div>"); } int classIndex = 0; foreach (LocalizationData.ClassData classData in model) { UIClassData uiClassData = new UIClassData(classData); hb.Append($@" <div class='t_class'>"); using (Manager.StartNestedComponent($"{FieldName}[{classIndex}]")) { hb.Append(await HtmlHelper.ForDisplayAsync(uiClassData, nameof(uiClassData.Name))); hb.Append(await HtmlHelper.ForDisplayAsync(uiClassData, nameof(uiClassData.BaseTypeName))); if (countClasses > 1) { hb.Append($@" <div class='t_classname'> <a class='t_target' id='{linkClass}_{classIndex}'>{Utility.HtmlEncode(uiClassData.Name)}</a> </div>"); } hb.Append($@" <div class='t_classinfo'> <div class='t_labels'> {await HtmlHelper.ForLabelAsync(uiClassData, nameof(uiClassData.Header))} </div> <div class='t_header'> {await HtmlHelper.ForEditAsync(uiClassData, nameof(uiClassData.Header))} </div> <div class='y_cleardiv'></div> <div class='t_labels'> {await HtmlHelper.ForLabelAsync(uiClassData, nameof(uiClassData.Footer))} </div> <div class='t_footer'> {await HtmlHelper.ForEditAsync(uiClassData, nameof(uiClassData.Footer))} </div> <div class='y_cleardiv'></div> <div class='t_labels'> {await HtmlHelper.ForLabelAsync(uiClassData, nameof(uiClassData.Legend))} </div> <div class='t_legend'> {await HtmlHelper.ForEditAsync(uiClassData, nameof(uiClassData.Legend))} </div> <div class='y_cleardiv'></div> </div>"); int entryIndex = 0; hb.Append($@" <div class='t_propentries'>"); foreach (LocalizationData.PropertyData prop in classData.Properties) { using (Manager.StartNestedComponent($"{Manager.NestedComponentPrefix}.Properties[{entryIndex}]")) { UIPropertyData uiProp = new UIPropertyData(prop) { NameFieldCaption = prop.Name, NameFieldDescription = this.__ResStr("strNameTT", "Text found in attributes for property {0}", prop.Name), }; hb.Append($@" <div class='t_propentry'> <div class='t_name'> {await HtmlHelper.ForEditAsync(uiProp, nameof(uiProp.Name))} </div> <div class='t_name'> {await HtmlHelper.ForLabelAsync(uiProp, nameof(uiProp.Name))} </div> <div class='t_propvars'> <div class='t_caption'> {await HtmlHelper.ForEditAsync(uiProp, nameof(uiProp.Caption))}{Utility.HtmlEncode(this.__ResStr("cmtCaption", " (Caption)"))} </div> <div class='t_desc'> {await HtmlHelper.ForEditAsync(uiProp, nameof(uiProp.Description))}{Utility.HtmlEncode(this.__ResStr("cmtDescription", " (Description)"))} </div> <div class='t_helplink'> {await HtmlHelper.ForEditAsync(uiProp, nameof(uiProp.HelpLink))}{Utility.HtmlEncode(this.__ResStr("cmtHelpLink", " (HelpLink)"))} </div> <div class='t_textabove'> {await HtmlHelper.ForEditAsync(uiProp, nameof(uiProp.TextAbove))}{Utility.HtmlEncode(this.__ResStr("cmtTextAbove", " (TextAbove)"))} </div> <div class='t_textbelow'> {await HtmlHelper.ForEditAsync(uiProp, nameof(uiProp.TextBelow))}{Utility.HtmlEncode(this.__ResStr("cmtTextBelow", " (TextBelow)"))} </div> </div> </div> <div class='y_cleardiv'></div>"); } ++entryIndex; } hb.Append($@" </div> </div>"); } ++classIndex; } hb.Append($@" </div>"); return(hb.ToString()); }