protected internal void ExcelInit(ITemplateDefinitionPart header, ITemplateDefinitionPart body, ITemplateDefinitionPart footer) { Init(header, body, footer); RetrieveSelectionChangeMethod(); RetrieveContextualMenu(); RetrieveDecorator(); }
protected virtual void Init(ITemplateDefinitionPart header, ITemplateDefinitionPart body, ITemplateDefinitionPart footer) { Header = header; Body = body; Footer = footer; BindingType = BindingType.CreateInstance(this); ((TemplateDefinitionPart)Header)?.Init(); ((TemplateDefinitionPart)Body)?.Init(); ((TemplateDefinitionPart)Footer)?.Init(); }
protected BindingFilterDefinition(ITemplateDefinitionPart templateDefinitionPart, string definition, string watermark, IEnumerable <string> path) { FilterOwner = templateDefinitionPart; Watermark = watermark; this.definition = definition; DefinitionToFilterName = path.Last(); DefinitionToFilterName = DefinitionToFilterName.Replace('.', '_'); if (path.Count() > 1) { propertyToFilterPath = path.Take(path.Count() - 1); } }
/// <summary>For the header/footer</summary> public static BindingContextPart CreateHeaderOrFooterBindingContextPart(IBindingContext parent, ITemplateDefinitionPart templateDefinitionPart, BindingContextPartType partType, object dataSource) { BindingContextPart ret = new BindingContextPart(parent, templateDefinitionPart, partType); ret.Elements = new BindingContextElement[] { new BindingContextElement(ret, dataSource, 0) }; ret.ElementsToRender = ret.Elements.ToList(); return(ret); }
public static BindingContextPart CreateBodyBindingContextPart(BindingContext parent, ITemplateDefinitionPart templateDefinitionPart, List <object> dataSourceAsList, ISortersAndFilters externalSorterAndFilter, ISortersAndFilters templatedSorterAndFilter) { BindingContextPart ret = new BindingContextPart(parent, templateDefinitionPart, BindingContextPartType.Body); ret.ExternalSorterAndFilter = parent.ExternalSortsAndFilters; int elementIndex = 0; // Bug => Closure !!!! // ret.Elements = dataSourceAsList.Select(ds => new BindingContextElement(ret, ds, elementIndex++)); List <IBindingContextElement> tmpElements = new List <IBindingContextElement>(); foreach (object obj in dataSourceAsList) { tmpElements.Add(new BindingContextElement(ret, obj, elementIndex++)); } ret.Elements = tmpElements; // The sorterers and filters defined outside templates have the priority if (parent.ExternalSortsAndFilters != null) { Dictionary <object, IBindingContextElement> contextItemByElement = ret.Elements.ToDictionary(e => e.Element, e => e); IEnumerable <object> elements = parent.ExternalSortsAndFilters.Execute(contextItemByElement.Keys) as IEnumerable <object>; ret.ElementsToRender = elements.Select(e => { IBindingContextElement el = null; contextItemByElement.TryGetValue(e, out el); return(el); }); } else { ret.ElementsToRender = ret.Elements; } // Manage the filters defined in the templates if (templatedSorterAndFilter != null) { Dictionary <object, IBindingContextElement> contextItemByElement = ret.ElementsToRender.ToDictionary(e => e.Element, e => e); IEnumerable <object> elements = templatedSorterAndFilter.Execute(contextItemByElement.Keys) as IEnumerable <object>; ret.ElementsToRender = elements.Select(e => { IBindingContextElement el = null; contextItemByElement.TryGetValue(e, out el); return(el); }); } return(ret); }
private BindingContextPart(IBindingContext parent, ITemplateDefinitionPart templateDefinitionPart, BindingContextPartType partType) { ParentContext = parent; TemplateDefinitionPart = templateDefinitionPart; PartType = partType; }