Пример #1
0
        private static object CreateGridRenderer(IServiceProvider provider)
        {
            var gridRowRenderer = new GridRowRenderer()
                                  .AddRenderer(new GridCellMasterActionRenderer())
                                  .AddRenderer(new GridCellRenderer(provider.GetRequiredService <EditInputRendererTree>()))
                                  .AddRenderer(new GridTabControlRenderer(provider.GetRequiredService <ITableDataAdapterProvider>()), RendererType.AfterTag)
                                  .AddRenderer(new GridActionButtonsRenderer(provider.GetRequiredService <FlexGridInterop>()));

            var gridBodySimpleRenderer = new GridBodySimpleRenderer(provider.GetRequiredService <ILogger <GridBodySimpleRenderer> >())
                                         .AddRenderer(gridRowRenderer);

            var gridBodyGroupedRenderer = new GridBodyGroupedRenderer(
                provider.GetRequiredService <ITableDataAdapterProvider>(),
                provider.GetRequiredService <ILogger <GridBodyGroupedRenderer> >())
                                          .AddRenderer(gridRowRenderer);

            var gridBodyRenderer = new GridBodyRenderer(gridBodySimpleRenderer, gridBodyGroupedRenderer);
            var gridRenderer     = new GridRenderer(provider.GetRequiredService <ILogger <GridRenderer> >())
                                   .AddRenderer(new GridHeaderRenderer(provider.GetRequiredService <FlexGridInterop>()))
                                   .AddRenderer(new GridEmptyItemsRenderer())
                                   .AddRenderer(gridBodyRenderer)
                                   .AddRenderer(new GridFooterRenderer(), RendererType.AfterTag)
                                   .AddRenderer(new DeleteModalRenderer(provider.GetRequiredService <FlexGridInterop>()), RendererType.AfterTag);

            return(gridRenderer);
        }
        private static void RegisterGridRendererTree(IServiceCollection services)
        {
            services.AddSingleton(typeof(IGridRenderer), provider =>
            {
                var gridRowRenderer = new GridRowRenderer();
                gridRowRenderer.AddRenderer(new GridCellMasterActionRenderer());
                gridRowRenderer.AddRenderer(new GridCellRenderer());
                gridRowRenderer.AddRenderer(new GridTabControlRenderer(provider.GetRequiredService <ITableDataAdapterProvider>()), RendererType.AfterTag);

                var gridBodyRenderer = new GridBodyRenderer(provider.GetRequiredService <ILogger <GridBodyRenderer> >());
                gridBodyRenderer.AddRenderer(gridRowRenderer);

                var gridRenderer = new GridRenderer(provider.GetRequiredService <ILogger <GridRenderer> >());
                gridRenderer.AddRenderer(new GridMesurablePartRenderer(
                                             new GridHeaderRenderer(provider.GetRequiredService <ILogger <GridHeaderRenderer> >()),
                                             provider.GetRequiredService <ILogger <GridMesurablePartRenderer> >())
                                         );

                gridRenderer.AddRenderer(new GridLoadingRenderer(), RendererType.BeforeTag);
                gridRenderer.AddRenderer(new GridMesurablePartRenderer(gridBodyRenderer, provider.GetRequiredService <ILogger <GridMesurablePartRenderer> >()));
                gridRenderer.AddRenderer(new GridPaginationRenderer(), RendererType.AfterTag);

                return(gridRenderer);
            });
        }
Пример #3
0
        private static void RegisterGridRendererTree(IServiceCollection services)
        {
            services.AddSingleton(typeof(BlazorComponentColumnCollection <>));
            services.AddSingleton <GridContextsFactory>();
            services.AddSingleton <EditInputRendererTree>();

            services.AddSingleton(typeof(IGridRenderer), provider =>
            {
                var measurableLogger = provider.GetRequiredService <ILogger <GridMesurablePartRenderer> >();

                var gridRowRenderer = new GridRowRenderer()
                                      .AddRenderer(new GridCellMasterActionRenderer())
                                      .AddRenderer(new GridCellRenderer(provider.GetRequiredService <EditInputRendererTree>()))
                                      .AddRenderer(new GridTabControlRenderer(provider.GetRequiredService <ITableDataAdapterProvider>()), RendererType.AfterTag)
                                      .AddRenderer(new GridActionButtonsRenderer());

                var gridBodyRenderer = new GridBodyRenderer(provider.GetRequiredService <ILogger <GridBodyRenderer> >())
                                       .AddRenderer(gridRowRenderer);

                var gridRenderer = new GridMesurablePartRenderer(
                    new GridRenderer(provider.GetRequiredService <ILogger <GridRenderer> >()), measurableLogger)
                                   .AddRenderer(new GridLoadingRenderer(), RendererType.BeforeTag)
                                   .AddRenderer(new GridMesurablePartRenderer(new GridHeaderRenderer(), measurableLogger))
                                   .AddRenderer(new GridMesurablePartRenderer(gridBodyRenderer, measurableLogger))
                                   .AddRenderer(new GridPaginationRenderer(), RendererType.AfterTag);

                return(gridRenderer);
            });
        }
        private static void RegisterRendererTreeBuilders(IServiceCollection services)
        {
            services.AddSingleton(typeof(CreateItemFormRenderer <>));
            services.AddSingleton(typeof(BlazorComponentColumnCollection <>));
            services.AddSingleton <GridContextsFactory>();
            services.AddSingleton <EditInputRendererTree>();

            services.AddSingleton(typeof(IGridRendererTreeBuilder), provider =>
            {
                var measurableLogger = provider.GetRequiredService <ILogger <GridMesurablePartRenderer> >();

                var gridRowRenderer = new GridRowRenderer()
                                      .AddRenderer(new GridCellMasterActionRenderer())
                                      .AddRenderer(new GridCellRenderer(provider.GetRequiredService <EditInputRendererTree>()))
                                      .AddRenderer(new GridTabControlRenderer(provider.GetRequiredService <ITableDataAdapterProvider>()), RendererType.AfterTag)
                                      .AddRenderer(new GridActionButtonsRenderer());

                var gridGroupRowRenderer = new GridGroupRowRenderer()
                                           .AddRenderer(gridRowRenderer);

                var gridBodyRenderer = new GridBodyRenderer(provider.GetRequiredService <ILogger <GridBodyRenderer> >())
                                       .AddRenderer(gridRowRenderer)
                                       .AddRenderer(gridGroupRowRenderer);

                var gridRenderer = new GridMesurablePartRenderer(
                    new GridRenderer(provider.GetRequiredService <ILogger <GridRenderer> >()), measurableLogger)
                                   .AddRenderer(new GridLoadingRenderer(), RendererType.BeforeTag)
                                   .AddRenderer(new GridMesurablePartRenderer(new GridHeaderRenderer(provider.GetRequiredService <FlexGridInterop>()), measurableLogger))
                                   .AddRenderer(new GridMesurablePartRenderer(gridBodyRenderer, measurableLogger))
                                   .AddRenderer(new GridFooterRenderer(), RendererType.AfterTag);

                return(gridRenderer);
            });

            services.AddSingleton <IFormInputRendererBuilder, TextInputBuilder>();
            services.AddSingleton <IFormInputRendererBuilder, NumberInputBuilder>();
            services.AddSingleton <IFormInputRendererBuilder, DateInputBuilder>();
            services.AddSingleton <IFormInputRendererBuilder, SelectInputBuilder>();
            services.AddSingleton <IFormInputRendererTreeProvider, FormInputsRendererTreeProvider>();
        }
Пример #5
0
        public void GridBodyRendererShouldRenderTBodyTag()
        {
            //Arrange
            var modelBuilder = new ModelBuilder();

            modelBuilder.Entity <WeatherForecast>()
            .Property(p => p.Date)
            .HasOrder(2)
            .HasValueFormatter(d => d.ToShortDateString());

            modelBuilder.Entity <WeatherForecast>()
            .Property(p => p.Summary)
            .HasOrder(1)
            .HasValueFormatter(s => $"{s}!");

            var configurationProvider  = new GridConfigurationProvider(modelBuilder.Model);
            var rendererContextFactory = new GridRendererContextFactory(configurationProvider);

            var source = Enumerable.Range(1, 20).Select(index =>
                                                        new WeatherForecast
            {
                Date         = DateTime.Now.AddDays(index),
                TemperatureC = 120,
                Summary      = "test"
            }).AsQueryable();

            var tableDataSet = new TableDataSet <WeatherForecast>(source);

            tableDataSet.GoToPage(0);
            var rendererTreeBuilder = new RenderTreeBuilder(new TestRenderer());
            var rendererContext     = rendererContextFactory.CreateRendererContext(tableDataSet, rendererTreeBuilder);
            var gridBodyRenderer    = new GridBodyRenderer(NullLogger <GridBodyRenderer> .Instance);

            //Act
            gridBodyRenderer.Render(rendererContext);
        }