/// <summary> /// Initialize after entering VT. /// </summary> /// <param name="icelc"></param> void IRequireEnterLeave.Enter(IChartEnterLeaveContext icelc) { EnsureAxes(icelc as IChartComponentContext); EnsureValuePath(icelc as IChartComponentContext); Layer = icelc.CreateLayer(); _trace.Verbose($"{Name} enter c2(v):{CategoryAxis2Name} {CategoryAxis2} c1:{CategoryAxisName} {CategoryAxis1} d:{DataSourceName}"); if (PathTemplate == null) { if (Theme?.PathTemplate == null) { if (icelc is IChartErrorInfo icei) { icei.Report(new ChartValidationResult(NameOrType(), $"No {nameof(PathTemplate)} and {nameof(Theme.PathTemplate)} was not found", new[] { nameof(PathTemplate), nameof(Theme.PathTemplate) })); } } } AssignFromRef(icelc as IChartErrorInfo, NameOrType(), nameof(PathStyle), nameof(Theme.PathColumnSeries), PathStyle == null, Theme != null, Theme.PathColumnSeries != null, () => PathStyle = Theme.PathColumnSeries ); BindPaths = new Evaluators2(CategoryPath, Category2Path, ValuePath, ValueLabelPath); if (!BindPaths.IsValid) { if (icelc is IChartErrorInfo icei) { icei.Report(new ChartValidationResult(NameOrType(), $"ValuePath: must be specified", new[] { nameof(ValuePath) })); } } }
/// <summary> /// Ctor. /// </summary> /// <param name="state">Starting state; SHOULD be empty.</param> /// <param name="rc">The recycler.</param> /// <param name="evs">Evaluators.</param> internal RenderState_Heatmap(List <SIS> state, Recycler <EL, SIS> rc, Evaluators2 evs) : base(state, rc) { #pragma warning disable IDE0016 // Use 'throw' expression if (evs == null) { throw new ArgumentNullException(nameof(evs)); } if (evs.by == null) { throw new ArgumentNullException(nameof(evs.by)); } #pragma warning restore IDE0016 // Use 'throw' expression this.evs = evs; }