From 852f93dec5ec2143fdcaeb7fda62f75d8e51e4c5 Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Thu, 29 Apr 2021 19:57:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0Custom=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E7=9A=84Serie=E7=9A=84tooltip=E8=87=AA=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Runtime/API/BaseChart_API.cs | 5 +++++ Runtime/Component/Main/Axis.cs | 3 ++- Runtime/Helper/AxisHelper.cs | 3 --- Runtime/Helper/TooltipHelper.cs | 26 +++++++++++++++----------- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/Runtime/API/BaseChart_API.cs b/Runtime/API/BaseChart_API.cs index 489593a4..a62dc77a 100644 --- a/Runtime/API/BaseChart_API.cs +++ b/Runtime/API/BaseChart_API.cs @@ -10,6 +10,7 @@ using System.Collections.Generic; using System; using UnityEngine.UI; using UnityEngine.EventSystems; +using System.Text; namespace XCharts { @@ -738,5 +739,9 @@ namespace XCharts { return m_LegendRealShowName.IndexOf(name); } + + public virtual void InitCustomSerieTooltip(ref StringBuilder stringBuilder, Serie serie, int index) + { + } } } diff --git a/Runtime/Component/Main/Axis.cs b/Runtime/Component/Main/Axis.cs index f83bcb82..2d7e42ed 100644 --- a/Runtime/Component/Main/Axis.cs +++ b/Runtime/Component/Main/Axis.cs @@ -586,7 +586,8 @@ namespace XCharts } } - internal List GetDataList(){ + internal List GetDataList() + { return m_Data.Count > 0 ? m_Data : m_RuntimeData; } diff --git a/Runtime/Helper/AxisHelper.cs b/Runtime/Helper/AxisHelper.cs index 3720754e..23b8f96d 100644 --- a/Runtime/Helper/AxisHelper.cs +++ b/Runtime/Helper/AxisHelper.cs @@ -4,9 +4,7 @@ /* https://github.com/monitor1394 */ /* */ /************************************************/ -using System.Text; using UnityEngine; -using UnityEngine.UI; namespace XCharts { @@ -149,7 +147,6 @@ namespace XCharts minValue = -minValue; maxValue = -maxValue; } - if (forcePercent) return string.Format("{0}%", (int)value); else return axis.axisLabel.GetFormatterContent(value, minValue, maxValue); } diff --git a/Runtime/Helper/TooltipHelper.cs b/Runtime/Helper/TooltipHelper.cs index 838797d5..dd9629d9 100644 --- a/Runtime/Helper/TooltipHelper.cs +++ b/Runtime/Helper/TooltipHelper.cs @@ -189,13 +189,14 @@ namespace XCharts } } - private static void InitCoordinateTooltip(ref StringBuilder sb, Tooltip tooltip, Serie serie, int index, + public static void InitCoordinateTooltip(ref StringBuilder sb, Tooltip tooltip, Serie serie, int index, ChartTheme theme, bool isCartesian, DataZoom dataZoom = null) { string key = serie.name; float xValue, yValue; serie.GetXYData(index, dataZoom, out xValue, out yValue); var isIngore = serie.IsIgnorePoint(index); + if(isIngore) return; var serieData = serie.GetSerieData(index, dataZoom); var numericFormatter = GetItemNumericFormatter(tooltip, serie, serieData); if (isCartesian) @@ -242,7 +243,7 @@ namespace XCharts } private static void InitDefaultContent(ref StringBuilder sb, Tooltip tooltip, Serie serie, int index, - ChartTheme theme = null, DataZoom dataZoom = null, bool isCartesian = false, + BaseChart chart, DataZoom dataZoom = null, bool isCartesian = false, Radar radar = null) { switch (serie.type) @@ -250,28 +251,31 @@ namespace XCharts case SerieType.Line: case SerieType.Bar: case SerieType.Candlestick: - InitCoordinateTooltip(ref sb, tooltip, serie, index, theme, isCartesian, dataZoom); + InitCoordinateTooltip(ref sb, tooltip, serie, index, chart.theme, isCartesian, dataZoom); break; case SerieType.Scatter: case SerieType.EffectScatter: - InitScatterTooltip(ref sb, tooltip, serie, index, theme); + InitScatterTooltip(ref sb, tooltip, serie, index, chart.theme); break; case SerieType.Radar: - InitRadarTooltip(ref sb, tooltip, serie, radar, theme); + InitRadarTooltip(ref sb, tooltip, serie, radar, chart.theme); break; case SerieType.Pie: - InitPieTooltip(ref sb, tooltip, serie, index, theme); + InitPieTooltip(ref sb, tooltip, serie, index, chart.theme); break; case SerieType.Ring: - InitRingTooltip(ref sb, tooltip, serie, index, theme); + InitRingTooltip(ref sb, tooltip, serie, index, chart.theme); break; case SerieType.Heatmap: break; case SerieType.Gauge: - InitGaugeTooltip(ref sb, tooltip, serie, index, theme); + InitGaugeTooltip(ref sb, tooltip, serie, index, chart.theme); break; case SerieType.Gantt: - InitGanttTooltip(ref sb, tooltip, serie, index, theme); + InitGanttTooltip(ref sb, tooltip, serie, index, chart.theme); + break; + case SerieType.Custom: + chart.InitCustomSerieTooltip(ref sb, serie, index); break; } } @@ -401,7 +405,7 @@ namespace XCharts if (string.IsNullOrEmpty(itemFormatter)) { if (!first) sb.Append(FormatterHelper.PH_NN); - InitDefaultContent(ref sb, tooltip, serie, dataIndex, chart.theme, dataZoom, isCartesian, radar); + InitDefaultContent(ref sb, tooltip, serie, dataIndex, chart, dataZoom, isCartesian, radar); first = false; continue; } @@ -449,7 +453,7 @@ namespace XCharts if (string.IsNullOrEmpty(itemFormatter) || serie.type == SerieType.Radar) { if (!first) sb.Append(FormatterHelper.PH_NN); - InitDefaultContent(ref sb, tooltip, serie, dataIndex, chart.theme, dataZoom, isCartesian, radar); + InitDefaultContent(ref sb, tooltip, serie, dataIndex, chart, dataZoom, isCartesian, radar); first = false; continue; }