예제 #1
0
        public override Action <IRendererTreeBuilder> BuildBodyRendererTree(
            CreateItemRendererContext <TModel> createItemRendererContext,
            IFormInputRendererTreeProvider formInputRendererTreeProvider)
        {
            return(builder =>
            {
                var fields = createItemRendererContext.GetModelFields().ToList();

                builder.OpenElement(HtmlTagNames.Div, "center-block");

                for (int i = 0; i < fields.Count; i = i + ColumnsCount)
                {
                    builder.OpenElement(HtmlTagNames.Div, "form-group row");

                    var rowFields = fields.Skip(i).Take(ColumnsCount);
                    foreach (var field in rowFields)
                    {
                        BuildFormFieldRendererTree(field, createItemRendererContext, formInputRendererTreeProvider)?.Invoke(builder);
                    }

                    builder.CloseElement();
                }

                builder.CloseElement();
            });
        }
예제 #2
0
        public Action <IRendererTreeBuilder> BuildFormFieldRendererTree(
            PropertyInfo field,
            CreateItemRendererContext <TModel> createItemRendererContext,
            IFormInputRendererTreeProvider formInputRendererTreeProvider)
        {
            createItemRendererContext.ActualColumnName = field.Name;
            var inputBuilder = formInputRendererTreeProvider.GetFormInputRendererTreeBuilder(field.GetMemberType());

            return(builder =>
            {
                BuildFieldRendererTree(field, createItemRendererContext, inputBuilder)?.Invoke(builder);
            });
        }
예제 #3
0
        public override Action <IRendererTreeBuilder> BuildBodyRendererTree(
            CreateItemRendererContext <TModel> createItemRendererContext,
            IFormInputRendererTreeProvider formInputRendererTreeProvider)
        {
            return(builder =>
            {
                builder.OpenElement(HtmlTagNames.Div, "center-block");

                foreach (var field in createItemRendererContext.GetModelFields())
                {
                    BuildFormFieldRendererTree(field, createItemRendererContext, formInputRendererTreeProvider)?.Invoke(builder);
                }

                builder.CloseElement();
            });
        }
        public Action <IRendererTreeBuilder> BuildFormFieldRendererTree(
            PropertyInfo field,
            CreateItemRendererContext <TModel> createItemRendererContext,
            IFormInputRendererTreeProvider formInputRendererTreeProvider,
            string columnName)
        {
            var inputBuilder = formInputRendererTreeProvider.GetFormInputRendererTreeBuilder(new FormField(field));

            if (inputBuilder == null)
            {
                return (builder) => { }
            }
            ;
            return(builder =>
            {
                BuildFieldRendererTree(field, createItemRendererContext, inputBuilder, columnName)?.Invoke(builder);
            });
        }
        public override Action <IRendererTreeBuilder> BuildBodyRendererTree(
            CreateItemRendererContext <TModel> createItemRendererContext, // todo - add wrapped properties to this with annotation info
            IFormInputRendererTreeProvider formInputRendererTreeProvider)
        {
            return(builder =>
            {
                builder.OpenElement(HtmlTagNames.Div, "center-block");

                foreach (var field in createItemRendererContext.GetModelFields())
                {
                    //var configProperty = entityType.FindProperty(field.Name);
                    //if(configProperty == null || configProperty.IsEditable)
                    BuildFormFieldRendererTree(field, createItemRendererContext, formInputRendererTreeProvider, field.Name)?.Invoke(builder);
                }

                builder.CloseElement();
            });
        }
예제 #6
0
 public CreateItemFormRenderer(IFormInputRendererTreeProvider formInputRendererTreeProvider)
 {
     this.formInputRendererTreeProvider = formInputRendererTreeProvider ?? throw new ArgumentNullException(nameof(formInputRendererTreeProvider));
     this.eventCallbackFactory          = new EventCallbackFactory();
 }
예제 #7
0
 public abstract Action <IRendererTreeBuilder> BuildBodyRendererTree(
     CreateItemRendererContext <TModel> createItemRendererContext,
     IFormInputRendererTreeProvider formInputRendererTreeProvider);