/// <summary> /// Constructs a new title with dynamic texts /// </summary> public ReportTitle(ReportTitleSize size, Func <TModel, string> leftAlignedTextGetter, Func <TModel, string> rightAlignedTextGetter = null) { if (leftAlignedTextGetter == null) { throw new ArgumentNullException("leftAlignedTextGetter"); } this.Size = size; this.LeftAlignedTextGetter = leftAlignedTextGetter; this.RightAlignedTextGetter = rightAlignedTextGetter; }
/// <summary> /// Constructs a new title with static texts /// </summary> public ReportTitle(ReportTitleSize size, string leftAlignedText, string rightAlignedText = null) { if (leftAlignedText == null) { throw new ArgumentNullException("leftAlignedText"); } this.Size = size; this.LeftAlignedText = leftAlignedText; this.RightAlignedText = rightAlignedText; }
/// <summary> /// Adds a new title to the report and returns it /// </summary> public ReportTitle <TModel> AddTitle(ReportTitleSize size, string leftAlignedText, string rightAlignedText = null) { if (leftAlignedText == null) { throw new ArgumentNullException("leftAlignedText"); } var title = new ReportTitle <TModel>(size, leftAlignedText, rightAlignedText); this.Components.Add(new Tuple <LambdaExpression, ReportComponent>(null, title)); return(title); }
/// <summary> /// Returns the font based on settings /// </summary> private Font GetFont(ReportTitleSize size, bool leftText, ReportSettings settings) { if (settings == null) { throw new ArgumentNullException("settings"); } switch (size) { case ReportTitleSize.H1: return(leftText ? settings.TitleH1LeftAlignedTextFont : settings.TitleH1RightAlignedTextFont); case ReportTitleSize.H2: return(leftText ? settings.TitleH2LeftAlignedTextFont : settings.TitleH2RightAlignedTextFont); case ReportTitleSize.H3: return(leftText ? settings.TitleH3LeftAlignedTextFont : settings.TitleH3RightAlignedTextFont); } throw new Exception("Unsuported size"); }
/// <summary> /// Returns the border width based on settings /// </summary> /// <param name="size"></param> /// <param name="settings"></param> /// <returns></returns> private float GetBorderWidth(ReportTitleSize size, ReportSettings settings) { if (settings == null) { throw new ArgumentNullException("settings"); } switch (size) { case ReportTitleSize.H1: return(settings.TitleH1BorderWidth); case ReportTitleSize.H2: return(settings.TitleH2BorderWidth); case ReportTitleSize.H3: return(settings.TitleH3BorderWidth); } throw new Exception("Unsuported size"); }