private void UpdateAxisLabel(Serie serie)
        {
            var show = serie.gaugeAxis.show && serie.gaugeAxis.axisLabel.show;

            serie.gaugeAxis.SetLabelObjectActive(show);
            if (!show)
            {
                return;
            }
            var count           = serie.splitNumber > 36 ? 36 : serie.splitNumber;
            var startAngle      = serie.startAngle;
            var totalAngle      = serie.endAngle - serie.startAngle;
            var totalValue      = serie.max - serie.min;
            var diffAngle       = totalAngle / count;
            var diffValue       = totalValue / count;
            var radius          = serie.runtimeInsideRadius - serie.gaugeAxis.axisLabel.margin;
            var serieData       = serie.GetSerieData(0);
            var customLabelText = serie.gaugeAxis.axisLabelText;

            for (int j = 0; j <= count; j++)
            {
                var angle = serie.startAngle + j * diffAngle;
                var value = serie.min + j * diffValue;
                var pos   = ChartHelper.GetPosition(serie.runtimeCenterPos, angle, radius);
                var text  = customLabelText != null && j < customLabelText.Count ? customLabelText[j] :
                            SerieLabelHelper.GetFormatterContent(serie, serieData, value, totalValue,
                                                                 serie.gaugeAxis.axisLabel, Color.clear);
                serie.gaugeAxis.SetLabelObjectText(j, text);
                serie.gaugeAxis.SetLabelObjectPosition(j, pos + serie.gaugeAxis.axisLabel.offset);
            }
        }
Example #2
0
        public static void SetLiquidLabelText(Serie serie, ChartTheme theme, int colorIndex)
        {
            var serieData = serie.GetSerieData(0);

            if (serieData == null)
            {
                return;
            }
            var serieLabel = SerieHelper.GetSerieLabel(serie, serieData, serieData.highlighted);

            if (serieLabel.show && serieData.labelObject != null)
            {
                if (!serie.show || !serieData.show)
                {
                    serieData.SetLabelActive(false);
                    return;
                }
                var value   = serieData.GetData(1);
                var total   = serie.max - serie.min;
                var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, total);
                serieData.SetLabelActive(true);
                serieData.labelObject.SetText(content);
                serieData.labelObject.SetLabelColor(GetLabelColor(serie, theme, colorIndex));
                serieData.labelObject.SetLabelPosition(serieData.labelPosition + serieLabel.offset);
            }
        }
Example #3
0
 public void RefreshLabel()
 {
     for (int i = 0; i < chart.series.Count; i++)
     {
         var serie = chart.series.GetSerie(i);
         if (serie.type != SerieType.Radar)
         {
             continue;
         }
         if (!serie.show && serie.radarType != RadarType.Single)
         {
             continue;
         }
         var radar = chart.GetRadar(serie.radarIndex);
         if (radar == null)
         {
             continue;
         }
         var center = radar.runtimeCenterPos;
         for (int n = 0; n < serie.dataCount; n++)
         {
             var serieData = serie.data[n];
             if (serieData.labelObject == null)
             {
                 continue;
             }
             var serieLabel = SerieHelper.GetSerieLabel(serie, serieData);
             var iconStyle  = SerieHelper.GetIconStyle(serie, serieData);
             var labelPos   = serieData.labelPosition;
             if (serieLabel.margin != 0)
             {
                 labelPos += serieLabel.margin * (labelPos - center).normalized;
             }
             serieData.labelObject.SetPosition(labelPos);
             serieData.labelObject.UpdateIcon(iconStyle);
             if (serie.show && serieLabel.show && serieData.canShowLabel)
             {
                 var value = serieData.GetCurrData(1);
                 var max   = radar.GetIndicatorMax(n);
                 SerieLabelHelper.ResetLabel(serieData.labelObject.label, serieLabel, chart.theme, i);
                 serieData.SetLabelActive(serieData.labelPosition != Vector3.zero);
                 serieData.labelObject.SetLabelPosition(serieLabel.offset);
                 var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, max,
                                                                    serieLabel, Color.clear);
                 if (serieData.labelObject.SetText(content))
                 {
                     chart.RefreshPainter(serie);
                 }
             }
             else
             {
                 serieData.SetLabelActive(false);
             }
         }
     }
 }
Example #4
0
 protected override void OnRefreshLabel()
 {
     for (int i = 0; i < m_Series.Count; i++)
     {
         var serie = m_Series.GetSerie(i);
         if (!serie.show && serie.radarType != RadarType.Single)
         {
             continue;
         }
         var radar  = m_Radars[serie.radarIndex];
         var center = radar.runtimeCenterPos;
         for (int n = 0; n < serie.dataCount; n++)
         {
             var serieData = serie.data[n];
             if (serieData.labelObject == null)
             {
                 continue;
             }
             var serieLabel = SerieHelper.GetSerieLabel(serie, serieData);
             var labelPos   = serieData.labelPosition;
             if (serieLabel.margin != 0)
             {
                 labelPos += serieLabel.margin * (labelPos - center).normalized;
             }
             serieData.labelObject.SetPosition(labelPos);
             serieData.labelObject.UpdateIcon(serieData.iconStyle);
             if (serie.show && serieLabel.show && serieData.canShowLabel)
             {
                 var value = serieData.GetCurrData(1);
                 var max   = radar.GetIndicatorMax(n);
                 SerieLabelHelper.ResetLabel(serieData, serieLabel, themeInfo, i);
                 serieData.SetLabelActive(serieData.labelPosition != Vector3.zero);
                 serieData.labelObject.SetLabelPosition(serieLabel.offset);
                 var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, max, serieLabel);
                 if (serieData.labelObject.SetText(content))
                 {
                     RefreshChart();
                 }
             }
             else
             {
                 serieData.SetLabelActive(false);
             }
         }
     }
 }
        private static void SetGaugeLabelText(Serie serie)
        {
            var serieData = serie.GetSerieData(0);

            if (serieData != null)
            {
                if (serieData.IsInitLabel())
                {
                    var value   = serieData.GetData(1);
                    var total   = serie.max;
                    var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, total);
                    serieData.SetLabelText(content);
                    serieData.SetLabelPosition(serie.runtimeCenterPos + serie.label.offset);
                    if (serie.label.color != Color.clear)
                    {
                        serieData.SetLabelColor(serie.label.color);
                    }
                }
            }
        }
Example #6
0
        public static void SetRingLabelText(Serie serie, ChartTheme theme)
        {
            for (int i = 0; i < serie.dataCount; i++)
            {
                var serieData  = serie.data[i];
                var serieLabel = SerieHelper.GetSerieLabel(serie, serieData, serieData.highlighted);
                if (serieLabel.show && serieData.labelObject != null)
                {
                    if (!serie.show || !serieData.show)
                    {
                        serieData.SetLabelActive(false);
                        continue;
                    }
                    var value   = serieData.GetData(0);
                    var total   = serieData.GetData(1);
                    var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, total);
                    serieData.SetLabelActive(true);
                    serieData.labelObject.SetText(content);
                    serieData.labelObject.SetLabelColor(GetLabelColor(serie, theme, i));

                    if (serie.label.position == SerieLabel.Position.Bottom)
                    {
                        var labelWidth = serieData.GetLabelWidth();
                        if (serie.clockwise)
                        {
                            serieData.labelObject.SetLabelPosition(serieData.labelPosition - new Vector3(labelWidth / 2, 0));
                        }
                        else
                        {
                            serieData.labelObject.SetLabelPosition(serieData.labelPosition + new Vector3(labelWidth / 2, 0));
                        }
                    }
                    else
                    {
                        serieData.labelObject.SetLabelPosition(serieData.labelPosition);
                    }
                }
            }
        }
Example #7
0
        public static void SetGaugeLabelText(Serie serie)
        {
            var serieData = serie.GetSerieData(0);

            if (serieData == null)
            {
                return;
            }
            if (serieData.labelObject == null)
            {
                return;
            }
            var value   = serieData.GetData(1);
            var total   = serie.max;
            var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, total);

            serieData.labelObject.SetText(content);
            serieData.labelObject.SetLabelPosition(serie.runtimeCenterPos + serie.label.offset);
            if (!ChartHelper.IsClearColor(serie.label.textStyle.color))
            {
                serieData.labelObject.label.SetColor(serie.label.textStyle.color);
            }
        }
Example #8
0
        private void DrawLabel(Serie serie, int dataIndex, SerieData serieData, Color serieColor)
        {
            if (serieData.labelObject == null)
            {
                return;
            }
            var currAngle   = serieData.runtimePieHalfAngle;
            var isHighlight = (serieData.highlighted && serie.emphasis.label.show);
            var serieLabel  = SerieHelper.GetSerieLabel(serie, serieData);
            var showLabel   = ((serieLabel.show || isHighlight) && serieData.canShowLabel);

            if (showLabel || serieData.iconStyle.show)
            {
                serieData.SetLabelActive(showLabel);
                float rotate           = 0;
                bool  isInsidePosition = serieLabel.position == SerieLabel.Position.Inside;
                if (serieLabel.rotate > 0 && isInsidePosition)
                {
                    if (currAngle > 180)
                    {
                        rotate += 270 - currAngle;
                    }
                    else
                    {
                        rotate += -(currAngle - 90);
                    }
                }
                Color color = serieColor;
                if (isHighlight)
                {
                    if (!ChartHelper.IsClearColor(serie.emphasis.label.color))
                    {
                        color = serie.emphasis.label.color;
                    }
                }
                else if (!ChartHelper.IsClearColor(serieLabel.color))
                {
                    color = serieLabel.color;
                }
                else
                {
                    color = isInsidePosition ? Color.white : serieColor;
                }
                var fontSize  = isHighlight ? serie.emphasis.label.fontSize : serieLabel.fontSize;
                var fontStyle = isHighlight ? serie.emphasis.label.fontStyle : serieLabel.fontStyle;

                serieData.labelObject.label.color     = color;
                serieData.labelObject.label.fontSize  = fontSize;
                serieData.labelObject.label.fontStyle = fontStyle;
                serieData.labelObject.SetLabelRotate(rotate);

                UpdateLabelPostion(serie, serieData);
                if (!string.IsNullOrEmpty(serieLabel.formatter))
                {
                    var value   = serieData.data[1];
                    var total   = serie.yTotal;
                    var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, total, serieLabel);
                    if (serieData.labelObject.SetText(content))
                    {
                        RefreshChart();
                    }
                }
                else
                {
                    if (serieData.labelObject.SetText(serieData.name))
                    {
                        RefreshChart();
                    }
                }
                serieData.labelObject.SetPosition(serieData.labelPosition);
                if (showLabel)
                {
                    serieData.labelObject.SetLabelPosition(serieLabel.offset);
                }
                else
                {
                    serieData.SetLabelActive(false);
                }
            }
            else
            {
                serieData.SetLabelActive(false);
            }
            serieData.labelObject.UpdateIcon(serieData.iconStyle);
        }