| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | using System.Collections.Generic;using UnityEngine;namespace XCharts.Runtime{    public static class SerieLabelHelper    {        public static Color GetLabelColor(Serie serie, ThemeStyle theme, int index)        {            if (serie.label != null && !ChartHelper.IsClearColor(serie.label.textStyle.color))            {                return serie.label.textStyle.color;            }            else            {                return theme.GetColor(index);            }        }        public static bool CanShowLabel(Serie serie, SerieData serieData, LabelStyle label, int dimesion)        {            return serie.show && serieData.context.canShowLabel && !serie.IsIgnoreValue(serieData, dimesion);        }        public static string GetFormatterContent(Serie serie, SerieData serieData,            double dataValue, double dataTotal, LabelStyle serieLabel, Color color, BaseChart chart = null)        {            if (serieLabel == null)            {                serieLabel = SerieHelper.GetSerieLabel(serie, serieData);            }            var numericFormatter = serieLabel == null ? "" : serieLabel.numericFormatter;            var serieName = serie.serieName;            var dataName = serieData != null ? serieData.name : null;            if (string.IsNullOrEmpty(serieLabel.formatter))            {                var currentContent = ChartCached.NumberToStr(dataValue, numericFormatter);                if (serieLabel.formatterFunction == null)                    return currentContent;                else                    return serieLabel.formatterFunction(serieData.index, dataValue, null, currentContent);            }            else            {                var content = serieLabel.formatter;                FormatterHelper.ReplaceSerieLabelContent(ref content, numericFormatter, serie.dataCount, dataValue,                    dataTotal, serieName, dataName, dataName, color, serieData, chart);                if (serieLabel.formatterFunction == null)                    return content;                else                    return serieLabel.formatterFunction(serieData.index, dataValue, null, content);            }        }        public static void SetGaugeLabelText(Serie serie)        {            var serieData = serie.GetSerieData(0);            if (serieData == null) return;            if (serieData.labelObject == null) return;            var label = SerieHelper.GetSerieLabel(serie, serieData);            if (label == null) return;            var value = serieData.GetData(1);            var total = serie.max;            var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, total, null, Color.clear);            serieData.labelObject.SetText(content);            serieData.labelObject.SetPosition(serie.context.center + label.offset);            if (!ChartHelper.IsClearColor(label.textStyle.color))            {                serieData.labelObject.text.SetColor(label.textStyle.color);            }        }    }}
 |