/// <summary> /// Sets whether or not the chart and tags should be rendered in compact mode. /// </summary> /// <param name="chart">The breakdown chart.</param> /// <param name="compact">Whether or not the chart and tags should be rendered in compact mode.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static BreakdownChart Compact(this BreakdownChart chart, bool compact) { if (chart is null) { throw new ArgumentNullException(nameof(chart)); } chart.Compact = compact; return(chart); }
/// <summary> /// Adds an item to the breakdown chart. /// </summary> /// <param name="chart">The breakdown chart.</param> /// <param name="label">The item label.</param> /// <param name="value">The item value.</param> /// <param name="color">The item color.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static BreakdownChart AddItem(this BreakdownChart chart, string label, double value, Color color) { if (chart is null) { throw new ArgumentNullException(nameof(chart)); } chart.Data.Add(new BreakdownChartItem(label, value, color)); return(chart); }
/// <summary> /// Sets whether or not tag values will be shown. /// </summary> /// <param name="chart">The breakdown chart.</param> /// <param name="show">Whether or not tag values will be shown.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static BreakdownChart ShowTagValues(this BreakdownChart chart, bool show) { if (chart is null) { throw new ArgumentNullException(nameof(chart)); } chart.ShowTagValues = show; return(chart); }
/// <summary> /// Tags will be shown. /// </summary> /// <param name="chart">The breakdown chart.</param> /// <param name="func">The value formatter to use.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static BreakdownChart UseValueFormatter(this BreakdownChart chart, Func <double, CultureInfo, string>?func) { if (chart is null) { throw new ArgumentNullException(nameof(chart)); } chart.ValueFormatter = func; return(chart); }
/// <summary> /// Sets the width of the breakdown chart. /// </summary> /// <param name="chart">The breakdown chart.</param> /// <param name="width">The breakdown chart width.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static BreakdownChart Width(this BreakdownChart chart, int?width) { if (chart is null) { throw new ArgumentNullException(nameof(chart)); } chart.Width = width; return(chart); }
/// <summary> /// Tags will be shown. /// </summary> /// <param name="chart">The breakdown chart.</param> /// <param name="format">The tag value format.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static BreakdownChart TagValueFormat(this BreakdownChart chart, string?format) { if (chart is null) { throw new ArgumentNullException(nameof(chart)); } chart.TagValueFormat = format; return(chart); }
/// <summary> /// Tags will be shown. /// </summary> /// <param name="chart">The breakdown chart.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static BreakdownChart ShowPercentage(this BreakdownChart chart) { if (chart is null) { throw new ArgumentNullException(nameof(chart)); } chart.ValueFormatter = (value, culture) => string.Format(culture, "{0}%", value); return(chart); }
/// <summary> /// Tags will be shown. /// </summary> /// <param name="chart">The breakdown chart.</param> /// <param name="func">The value formatter to use.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static BreakdownChart UseValueFormatter(this BreakdownChart chart, Func <double, string>?func) { if (chart is null) { throw new ArgumentNullException(nameof(chart)); } chart.ValueFormatter = func != null ? (value, _) => func(value) : null; return(chart); }
/// <summary> /// Adds multiple items to the breakdown chart. /// </summary> /// <typeparam name="T">A type that implements <see cref="IBreakdownChartItem"/>.</typeparam> /// <param name="chart">The breakdown chart.</param> /// <param name="items">The items.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static BreakdownChart AddItems <T>(this BreakdownChart chart, IEnumerable <T> items) where T : IBreakdownChartItem { if (chart is null) { throw new ArgumentNullException(nameof(chart)); } if (items is null) { throw new ArgumentNullException(nameof(items)); } foreach (var item in items) { AddItem(chart, item); } return(chart); }
/// <summary> /// Adds an item to the breakdown chart. /// </summary> /// <typeparam name="T">A type that implements <see cref="IBreakdownChartItem"/>.</typeparam> /// <param name="chart">The breakdown chart.</param> /// <param name="item">The item.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static BreakdownChart AddItem <T>(this BreakdownChart chart, T item) where T : IBreakdownChartItem { if (chart is null) { throw new ArgumentNullException(nameof(chart)); } if (item is BreakdownChartItem chartItem) { chart.Data.Add(chartItem); } else { chart.Data.Add( new BreakdownChartItem( item.Label, item.Value, item.Color)); } return(chart); }
/// <summary> /// Adds multiple items to the breakdown chart. /// </summary> /// <typeparam name="T">A type that implements <see cref="IBarChartItem"/>.</typeparam> /// <param name="chart">The breakdown chart.</param> /// <param name="items">The items.</param> /// <param name="converter">The converter that converts instances of <c>T</c> to <see cref="IBreakdownChartItem"/>.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static BreakdownChart AddItems <T>(this BreakdownChart chart, IEnumerable <T> items, Func <T, IBreakdownChartItem> converter) { if (chart is null) { throw new ArgumentNullException(nameof(chart)); } if (items is null) { throw new ArgumentNullException(nameof(items)); } if (converter is null) { throw new ArgumentNullException(nameof(converter)); } foreach (var item in items) { chart.Data.Add(converter(item)); } return(chart); }
/// <summary> /// Chart and tags is rendered in full size mode. /// </summary> /// <param name="chart">The breakdown chart.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static BreakdownChart FullSize(this BreakdownChart chart) { return(Compact(chart, false)); }
/// <summary> /// Chart and tags is rendered in compact mode. /// </summary> /// <param name="chart">The breakdown chart.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static BreakdownChart Compact(this BreakdownChart chart) { return(Compact(chart, true)); }
/// <summary> /// Tag values will be not be shown. /// </summary> /// <param name="chart">The breakdown chart.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static BreakdownChart HideTagValues(this BreakdownChart chart) { return(ShowTagValues(chart, false)); }
/// <summary> /// Tag values will be shown. /// </summary> /// <param name="chart">The breakdown chart.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static BreakdownChart ShowTagValues(this BreakdownChart chart) { return(ShowTagValues(chart, true)); }