コード例 #1
0
 /// <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;
 }
コード例 #2
0
    /// <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();
    }
コード例 #3
0
        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());
        }