public IGridTableBuilder CreateDecoratedTableBuilder(IEnumerable<GridColData> colsData, GridRenderingData renderingData)
 {
     var tableBuilder = CreateTableBuilder(colsData);
     tableBuilder.Decorators.Add(new GridTableBuilderGroupColDecorator(renderingData.GroupMembers.Count()));
     tableBuilder.Decorators.Add(new GridTableBuilderDetailViewColDecorator(renderingData.HasDetailView));
     return tableBuilder;
 }
        public IHtmlNode CreateFooter(GridRenderingData data)
        {
            var builder = rowBuilderFactory.CreateFooterBuilder(data);
            var tr = builder.CreateRow(); 

            tr.AddClass(UIPrimitives.Grid.FooterTemplateRow);
            return tr;
        }
Exemplo n.º 3
0
 protected void AppendFooter(IHtmlNode table, GridRenderingData renderingData)
 {
     if (renderingData.ShowFooter)
     {
         var tfoot = CreateFooter(renderingData);
         tfoot.AppendTo(table);
     }
 }
        public IHtmlNode CreateBody(GridRenderingData renderingData)
        {
            var enumerator = new GridDataSourceEnumerator(renderingData.DataSource, itemCreatorFactory.Create(renderingData.DataKeyStore, renderingData), renderingData.InsertRowPosition);

            var rowBuilders = enumerator.Select(item => rowBuilderFactory.CreateBuilder(renderingData, item));

            return CreateBody(rowBuilders);
        }
        protected virtual IGridRowBuilder CreateDataRowBuilder(GridRenderingData renderingData, GridItem item)
        {
            if (renderingData.RowTemplate != null)
            {
                return new GridTemplateRowBuilder(td => renderingData.RowTemplate(item.DataItem, td), renderingData.Colspan);
            }

            return new GridDataRowBuilder(item.DataItem, renderingData.Columns.Select(column => cellBuilderFactory.CreateDisplayCellBuilder(column, renderingData.HtmlHelper)));
        }
        protected virtual IHtmlNode CreateContentTable(GridRenderingData renderingData)
        {
            var table = CreateTable(renderingData);
            
            var tbody = CreateBody(renderingData);

            tbody.AppendTo(table);

            return table;
        }
        public IGridRowBuilder CreateBuilder(GridRenderingData renderingData, GridItem item)
        {
            var creator = BuilderRegistry[item.Type];

            ExecuteRowCallback(item, renderingData.Callback);

            var gridRowBuilder = creator(renderingData, item);

            return decoratorProvider.ApplyDecorators(gridRowBuilder, item, renderingData.HasDetailView);
        }
        protected override void AppendData(IHtmlNode div, GridRenderingData renderingData)
        {
            AppendHeader(div,renderingData);

            var content = CreateContent(renderingData);

            content.AppendTo(div);

            AppendFooter(div, renderingData);
        }
        protected virtual IHtmlNode CreateContent(GridRenderingData renderingData)
        {
            var content = new HtmlElement("div").AddClass(UIPrimitives.Grid.ScrollableContent)
                                            .Css("height", renderingData.ScrollingHeight);

            var table = CreateContentTable(renderingData);

            table.AppendTo(content);
            
            return content;
        }
Exemplo n.º 10
0
        public virtual IGridRowBuilder CreateHeaderBuilder(GridRenderingData renderingData)
        {
            var builder = new GridRowBuilder(renderingData.Columns.Select(cellBuilderFactory.CreateHeaderCellBuilder));

            var item = new GridItem
            {
                GroupLevel = renderingData.GroupMembers.Count(),
                Type = GridItemType.HeaderRow
            };
            
            return decoratorProvider.ApplyDecorators(builder, item, renderingData.HasDetailView);
        }
Exemplo n.º 11
0
        protected virtual void AppendData(IHtmlNode div, GridRenderingData renderingData)
        {
            var table = CreateTable(renderingData);

            table.AppendTo(div);

            AppendHeader(table, renderingData);

            AppendFooter(table, renderingData);

            var tbody = CreateBody(renderingData);
            tbody.AppendTo(table);
        }
        protected override IHtmlNode CreateFooter(GridRenderingData renderingData)
        {
            var div = new HtmlElement("div").AddClass("t-grid-footer");
            
            var wrapper = new HtmlElement("div").AddClass("t-grid-footer-wrap");
            wrapper.AppendTo(div);

            var table = CreateTable(renderingData);
            table.AppendTo(wrapper);

            var tfoot = DataSectionBuilder.CreateFooter(renderingData);
            tfoot.AppendTo(table);

            return div;
        }
        protected override IHtmlNode CreateHeader(GridRenderingData renderingData)
        {
            var header = new HtmlElement("div").AddClass("t-grid-header");

            var headerWrapper = new HtmlElement("div").AddClass("t-grid-header-wrap");

            headerWrapper.AppendTo(header);

            var table = CreateTable(renderingData);

            table.AppendTo(headerWrapper);

            var thead = DataSectionBuilder.CreateHeader(renderingData);

            thead.AppendTo(table);

            return header;
        }
Exemplo n.º 14
0
        public virtual IHtmlNode CreateGrid(IDictionary<string, object> htmlAttributes, GridFunctionalData functionalData, GridRenderingData renderingData)
        {
            var div = CreateWrapper(htmlAttributes);

            AppendTopToolBar(div, functionalData);

            AppendGroupHeader(div, functionalData);

            AppendTopPager(div, functionalData);

            AppendData(div, renderingData);

            AppendBottomToolBar(div, functionalData);

            AppendBottomPager(div, functionalData);

            return div;
        }
Exemplo n.º 15
0
 protected virtual IGridEditFormBuilder CreateInsertFormBuilder(GridRenderingData renderingData, GridItem item)
 {
     return CreateEditFormBuilder(renderingData,
         item,
         (command) => command.CreateInsertButtons(renderingData.Localization, renderingData.UrlBuilder,
                                                 renderingData.HtmlHelper), 
         renderingData.UrlBuilder.InsertUrl
     );
 }
Exemplo n.º 16
0
 protected virtual IGridRowBuilder CreateDetailRowBuilder(GridRenderingData renderingData, GridItem item)
 {
     return new GridDetailRowBuilder
     {
         Colspan = (renderingData.Colspan - 1) - item.GroupLevel,
         DataItem = item.DataItem,
         Template = renderingData.DetailViewTemplate,
         Expanded = item.Expanded,
         IsMasterAlternate = item is GridDetailViewItem && ((item as GridDetailViewItem).Parent.State & GridItemStates.Alternating) == GridItemStates.Alternating,
         Html = item.DetailRowHtml,
         HtmlAttributes = item.DetailRowHtmlAttributes
     };
 }
Exemplo n.º 17
0
        protected virtual IHtmlNode CreateHeader(GridRenderingData renderingData)
        {
            var thead = new HtmlElement("thead").AddClass("t-grid-header");

            var tr = DataSectionBuilder.CreateHeader(renderingData);
            tr.AppendTo(thead);

            return thead;
        }        
Exemplo n.º 18
0
 protected void AppendHeader(IHtmlNode container, GridRenderingData renderingData)
 {
     var thead = CreateHeader(renderingData);
     thead.AppendTo(container);
 }
Exemplo n.º 19
0
 protected virtual IHtmlNode CreateTable(GridRenderingData renderingData)
 {
     var tableBuilder = tableBuilderFactory.CreateDecoratedTableBuilder(renderingData.Columns.Select(c => new GridColData{ Width = c.Width, Hidden = c.Hidden}), renderingData);
     
     return tableBuilder.CreateTable()
                        .Attributes(renderingData.TableHtmlAttributes);
 }
Exemplo n.º 20
0
        private IGridRowBuilder CreateInLineRowBuilder(GridRenderingData renderingData, GridItem item, Func<object, string> action, Func<IGridColumn, IGridHtmlHelper, IGridDataCellBuilder> cellBuilder)
        {
            var tableBuilder = tableBuilderFactory.CreateTableBuilder(renderingData.Columns.Select(c => new GridColData { Width = c.Width, Hidden = c.Hidden }));

            var cellBuilders = renderingData.Columns.Select(column => cellBuilder(column, renderingData.HtmlHelper));

            var formHtmlAttributes = CreateFormAttributes(renderingData.FormId, action(item.DataItem));
            formHtmlAttributes.Merge(renderingData.EditFormHtmlAttributes);

            return new GridInLineEditRowBuilder(tableBuilder, new GridFormBuilder(formHtmlAttributes),
                                                renderingData.Colspan, item.DataItem, cellBuilders);
        }
Exemplo n.º 21
0
        private IGridEditFormBuilder CreateEditFormBuilder(GridRenderingData renderingData, GridItem item, 
            Func<IGridActionCommand, IEnumerable<IGridButtonBuilder>> buttons, Func<object, string> action)
        {
            var commands = renderingData.Columns.OfType<IGridActionColumn>().SelectMany(column => column.Commands);

            var editCommand = commands.OfType<GridEditActionCommand>().FirstOrDefault() ?? new GridEditActionCommand();

            var buttonBuilders = buttons(editCommand).Select(builder =>
            {
                Func<IHtmlNode> result = () => builder.Create(item.DataItem);
                return result;
            });

            var formHtmlAttributes = CreateFormAttributes(renderingData.FormId, action(item.DataItem));
            formHtmlAttributes.Merge(renderingData.EditFormHtmlAttributes);

            return new GridEditFormBuilder(new GridFormBuilder(formHtmlAttributes), 
                () => renderingData.HtmlHelper.EditorForModel(item.DataItem, 
                    renderingData.EditTemplateName, 
                    renderingData.Columns.OfType<IGridForeignKeyColumn>().Select(c => c.SerializeSelectList),
                    renderingData.AdditionalViewData
                ), 
                buttonBuilders);
        }
Exemplo n.º 22
0
 protected virtual IGridRowBuilder CreateEmptyRowBuilder(GridRenderingData renderingData, GridItem item)
 {
     return new GridEmptyRowBuilder(renderingData.Colspan, renderingData.NoRecordsTemplate);
 }
Exemplo n.º 23
0
        protected virtual IGridRowBuilder CreateGroupRowBuilder(GridRenderingData renderingData, GridItem item)
        {
            var groupKey = ((IGroup) item.DataItem).Key;
            
            var colspan = renderingData.Colspan - item.GroupLevel;
            
            var member = renderingData.GroupMembers.ElementAtOrDefault(item.GroupLevel);
            
            var column = renderingData.Columns.OfType<IGridBoundColumn>().FirstOrDefault(c => c.Member == member);

            var format = column != null && column.Format.HasValue() ? column.Format : "{0}";
                       

            var template = new HtmlTemplate<GridGroupAggregateResult>
            {
                InlineTemplate = (result) => "{0}: {1}".FormatWith(result.Title, format.FormatWith(ExtractForeignKeyText(column, result.Key)))
            };

            var title = member.AsTitle();

            if (column != null)
            {
                title = column.Title.HasValue() ? column.Title : column.Member.AsTitle();
                if (column.GroupHeaderTemplate.HasValue())
                {
                    template = column.GroupHeaderTemplate;
                }
            }
            
            var functionsGroup = item.DataItem as AggregateFunctionsGroup;
            var itemAggregateResult = functionsGroup.GetAggregateResults(renderingData.Aggregates);

            var aggregateResult = new GridGroupAggregateResult(title, groupKey, itemAggregateResult);
            
            return new GridGroupRowBuilder((container) => template.Apply(aggregateResult, container), colspan);
        }
Exemplo n.º 24
0
        protected virtual IHtmlNode CreateFooter(GridRenderingData renderingData)
        {
            var tfoot = new HtmlElement("tfoot");

            var tr = DataSectionBuilder.CreateFooter(renderingData);
            tr.AppendTo(tfoot);
            return tfoot;
        }
Exemplo n.º 25
0
 protected virtual IGridRowBuilder CreateInFormInsertRowBuilder(GridRenderingData renderingData, GridItem item)
 {
     return new GridInFormEditRowBuilder(CreateInsertFormBuilder(renderingData, item), renderingData.Colspan);
 }
Exemplo n.º 26
0
 protected virtual IGridRowBuilder CreateGroupFooterRowBuilder(GridRenderingData renderingData, GridItem item)
 {
     var functionsGroup = item.DataItem as AggregateFunctionsGroup;
     var itemAggregateResult = functionsGroup.GetAggregateResults(renderingData.Aggregates);
     return new GridGroupFooterRowBuilder(renderingData.Columns.Select(column => cellBuilderFactory.CreateGroupFooterCellBuilder(column, itemAggregateResult)));
 }
Exemplo n.º 27
0
 protected virtual IGridRowBuilder CreateInsertRowBuilder(GridRenderingData renderingData, GridItem item)
 {
     switch (renderingData.EditMode)
     {
         case GridEditMode.InForm:
             return CreateInFormInsertRowBuilder(renderingData, item);
         case GridEditMode.PopUp:
             return CreatePopUpInsertRowBuilder(renderingData, item);
         default:
             return CreateInLineInsertRowBuilder(renderingData, item);
     }
 }
Exemplo n.º 28
0
 protected virtual IGridRowBuilder CreatePopUpInsertRowBuilder(GridRenderingData renderingData, GridItem item)
 {
     return new GridPopUpInsertRowBuilder(CreateInsertFormBuilder(renderingData, item), renderingData.PopUpContainer);
 }
Exemplo n.º 29
0
 protected virtual IGridRowBuilder CreateInLineInsertRowBuilder(GridRenderingData renderingData, GridItem item)
 {
     return CreateInLineRowBuilder(renderingData, item, renderingData.UrlBuilder.InsertUrl, cellBuilderFactory.CreateInsertCellBuilder);
 }
Exemplo n.º 30
0
 protected virtual IHtmlNode CreateBody(GridRenderingData renderingData)
 {
     return DataSectionBuilder.CreateBody(renderingData);
 }