public object Create(PrintElementBuildContext buildContext, dynamic elementMetadata) { var element = new PrintElementParagraph { Margin = BuildHelper.DefaultMargin, Padding = BuildHelper.DefaultPadding }; BuildHelper.ApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.ApplyTextProperties(element, elementMetadata); BuildHelper.ApplyBlockProperties(element, buildContext.ElementStyle); BuildHelper.ApplyBlockProperties(element, elementMetadata); ApplyIndent(element, elementMetadata); // Генерация содержимого элемента var contentContext = CreateContentContext(element, buildContext); var inlines = buildContext.ElementBuilder.BuildElements(contentContext, elementMetadata.Inlines); if (inlines != null) { foreach (var inline in inlines) { element.Inlines.Add(inline); } } BuildHelper.PostApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.PostApplyTextProperties(element, elementMetadata); return(element); }
public object Create(PrintElementBuildContext buildContext, dynamic elementMetadata) { var element = new PrintElementPageBreak(); BuildHelper.ApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.ApplyTextProperties(element, elementMetadata); BuildHelper.ApplyBlockProperties(element, buildContext.ElementStyle); BuildHelper.ApplyBlockProperties(element, elementMetadata); return(element); }
public object Create(PrintElementBuildContext buildContext, dynamic elementMetadata) { var element = new PrintElementLine { Border = new PrintElementBorder { Thickness = new PrintElementThickness(0, 0, 0, 1), Color = "Black" } }; BuildHelper.ApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.ApplyTextProperties(element, elementMetadata); BuildHelper.ApplyBlockProperties(element, buildContext.ElementStyle); BuildHelper.ApplyBlockProperties(element, elementMetadata); return(element); }
public object Create(PrintElementBuildContext buildContext, dynamic elementMetadata) { var element = new PrintElementTable { Border = new PrintElementBorder { Thickness = new PrintElementThickness(1, 1, 0, 0), Color = PrintElementColors.Black }, Margin = BuildHelper.DefaultMargin, Padding = BuildHelper.DefaultPadding, }; BuildHelper.ApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.ApplyTextProperties(element, elementMetadata); BuildHelper.ApplyBlockProperties(element, buildContext.ElementStyle); BuildHelper.ApplyBlockProperties(element, elementMetadata); // Генерация стобцов таблицы CreateTableColumns(buildContext, element, elementMetadata.Columns); // Генерация заголовка таблицы bool showHeader; if (!ConvertHelper.TryToBool(elementMetadata.ShowHeader, out showHeader) || showHeader) { var tableRow = CreateHeaderTableRow(buildContext, element, elementMetadata.Columns); element.Rows.Add(tableRow); } // Генерация явно объявленных строк таблицы CreateStaticTableRows(buildContext, element, elementMetadata.Rows); // Генерация строк таблицы по данным источника var tableSource = buildContext.ElementSourceValue; if (ConvertHelper.ObjectIsCollection(tableSource)) { if (HasCellTemplate(elementMetadata.Columns)) { foreach (var rowSource in (IEnumerable)tableSource) { var tableRow = CreateDynamicTableRow(buildContext, element, elementMetadata.Columns, rowSource); element.Rows.Add(tableRow); } } } else if (buildContext.IsDesignMode) { // Отображение шаблона строки в дизайнере if (HasCellTemplate(elementMetadata.Columns)) { var tableRow = CreateDynamicTableRow(buildContext, element, elementMetadata.Columns, null); element.Rows.Add(tableRow); } } BuildHelper.PostApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.PostApplyTextProperties(element, elementMetadata); return(element); }
public object Create(PrintElementBuildContext buildContext, dynamic elementMetadata) { var element = new PrintElementList { Margin = BuildHelper.DefaultMargin, Padding = BuildHelper.DefaultPadding, MarkerStyle = PrintElementListMarkerStyle.None }; BuildHelper.ApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.ApplyTextProperties(element, elementMetadata); BuildHelper.ApplyBlockProperties(element, buildContext.ElementStyle); BuildHelper.ApplyBlockProperties(element, elementMetadata); ApplyStartIndex(element, elementMetadata.StartIndex); ApplyMarkerStyle(element, elementMetadata.MarkerStyle); MarkerOffsetStyle(element, elementMetadata.MarkerOffsetSize, elementMetadata.MarkerOffsetSizeUnit); var itemContext = CreateItemContext(element, buildContext); // Генерация явно объявленных элементов списка var staticItems = buildContext.ElementBuilder.BuildElements(itemContext, elementMetadata.Items); if (staticItems != null) { foreach (var staticItem in staticItems) { var listItem = new PrintElementSection(); listItem.Blocks.Add(staticItem); element.Items.Add(listItem); } } // Генерация элементов списка по данным источника var listItemTemplate = elementMetadata.ItemTemplate; var listSource = buildContext.ElementSourceValue; if (listItemTemplate != null) { if (ConvertHelper.ObjectIsCollection(listSource)) { foreach (var itemSource in (IEnumerable)listSource) { itemContext.ElementSourceValue = itemSource; var dynamicItem = buildContext.ElementBuilder.BuildElement(itemContext, listItemTemplate); if (dynamicItem is PrintElementBlock) { var listItem = new PrintElementSection(); listItem.Blocks.Add(dynamicItem); element.Items.Add(listItem); } } } else if (buildContext.IsDesignMode) { // Отображение шаблона элемента в дизайнере itemContext.ElementSourceValue = null; var dynamicItem = buildContext.ElementBuilder.BuildElement(itemContext, listItemTemplate); if (dynamicItem is PrintElementBlock) { var listItem = new PrintElementSection(); listItem.Blocks.Add(dynamicItem); element.Items.Add(listItem); } } } BuildHelper.PostApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.PostApplyTextProperties(element, elementMetadata); return(element); }