protected GeneratorContext(GeneratorContext context) { Name = context.Name; FullName = context.FullName; Metadata = context.Metadata; HtmlAttributes = new RouteValueDictionary(context.HtmlAttributes); }
public virtual IEnumerable<NestedTagBuilder> GenerateForEnum(GeneratorContext context) { Setup(context); var tags = new List<NestedTagBuilder>(); foreach (var enumName in Enum.GetNames(Context.Metadata.ModelType)) { var tagBuilder = CreatePrimaryTag("input"); tagBuilder.MergeAttribute("type", "radio", true); if (!string.IsNullOrEmpty(Context.Metadata.Description)) tagBuilder.MergeAttribute("title", Context.Metadata.Description); if (GetValue() == enumName) tagBuilder.MergeAttribute("checked", "checked"); var label = new NestedTagBuilder("label"); var title = new NestedTagBuilder("span"); title.SetInnerText(LocalizedStringProvider.GetEnumString(Context.Metadata.ModelType, enumName)); label.AddChild(tagBuilder); label.AddChild(title); tags.Add(label); } return tags; }
public virtual IEnumerable<NestedTagBuilder> GenerateForEnum(GeneratorContext context) { Setup(context); var selectTag = CreatePrimaryTag("select"); if (!string.IsNullOrEmpty(Context.Metadata.Description)) selectTag.MergeAttribute("title", Context.Metadata.Description); foreach (var enumName in Enum.GetNames(Context.Metadata.ModelType)) { var tagBuilder = new NestedTagBuilder("option"); tagBuilder.MergeAttribute("value", enumName, true); if (GetValue() == enumName) tagBuilder.MergeAttribute("selected", "selected"); var title = LocalizedStringProvider.GetEnumString(Context.Metadata.ModelType, enumName); tagBuilder.SetInnerText(title); selectTag.AddChild(tagBuilder); } return new[] {selectTag}; }
/// <summary> /// I know, really. Setup/Init methods are a pain and spawn of satan and all that. But I couldn't figure out a better solution. /// </summary> /// <param name="context"></param> protected virtual void Setup(GeneratorContext context) { Context = context; }
/// <summary> /// Generate HTML tags for a property /// </summary> /// <param name="context">Context specific information</param> /// <returns>Generated HTML tags</returns> public IEnumerable<NestedTagBuilder> Generate(GeneratorContext context) { Setup(context); return GenerateTags(); }
/// <summary> /// Initializes a new instance of the <see cref="SelectContext"/> class. /// </summary> /// <param name="context">Base context.</param> /// <param name="formatter"><see cref="Formatter"/></param> /// <param name="listItems"><seealso cref="ListItems"/></param> public SelectContext(GeneratorContext context, ISelectItemFormatter formatter, IEnumerable listItems) : base(context) { Formatter = formatter; ListItems = listItems; }