mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-14 20:00:09 +00:00
增加Serie的Label的formatter支持{index}通配符
This commit is contained in:
@@ -53,6 +53,22 @@ namespace XCharts.Runtime
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetTitleFormatterContent(Serie serie, SerieData serieData,
|
||||
int dataIndex, LabelStyle titleStyle, BaseChart chart)
|
||||
{
|
||||
string content;
|
||||
if (string.IsNullOrEmpty(titleStyle.formatter))
|
||||
{
|
||||
content = serieData.name;
|
||||
}
|
||||
else
|
||||
{
|
||||
content = titleStyle.formatter;
|
||||
FormatterHelper.ReplaceContent(ref content, dataIndex, titleStyle.numericFormatter, serie, chart, null, serieData);
|
||||
}
|
||||
return content;
|
||||
}
|
||||
|
||||
public static void SetGaugeLabelText(Serie serie)
|
||||
{
|
||||
var serieData = serie.GetSerieData(0);
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace XCharts.Runtime
|
||||
/// <param name="category">选中的类目,一般用在折线图和柱状图</param>
|
||||
/// <returns></returns>
|
||||
public static bool ReplaceContent(ref string content, int dataIndex, string numericFormatter, Serie serie,
|
||||
BaseChart chart, string colorName = null)
|
||||
BaseChart chart, string colorName = null, SerieData serieData = null)
|
||||
{
|
||||
var foundDot = false;
|
||||
var mc = s_Regex.Matches(content);
|
||||
@@ -112,7 +112,7 @@ namespace XCharts.Runtime
|
||||
}
|
||||
else
|
||||
{
|
||||
var serieData = serie.GetSerieData(bIndex);
|
||||
serieData = serie.GetSerieData(bIndex);
|
||||
content = content.Replace(old, serieData.name);
|
||||
}
|
||||
}
|
||||
@@ -207,6 +207,10 @@ namespace XCharts.Runtime
|
||||
}
|
||||
}
|
||||
}
|
||||
if (serieData != null)
|
||||
{
|
||||
ReplaceIndexContent(ref content, serie.useSortData ? serieData.sortIndex : serieData.index, serie.dataCount);
|
||||
}
|
||||
content = s_RegexNewLine.Replace(content, PH_NN);
|
||||
return foundDot;
|
||||
}
|
||||
@@ -310,7 +314,10 @@ namespace XCharts.Runtime
|
||||
}
|
||||
}
|
||||
}
|
||||
ReplaceIndexContent(ref content, sortData ? serieData.sortIndex : serieData.index, dataCount);
|
||||
if (serieData != null)
|
||||
{
|
||||
ReplaceIndexContent(ref content, sortData ? serieData.sortIndex : serieData.index, dataCount);
|
||||
}
|
||||
content = TrimAndReplaceLine(content);
|
||||
}
|
||||
|
||||
|
||||
@@ -432,17 +432,8 @@ namespace XCharts.Runtime
|
||||
if (titleStyle != null)
|
||||
{
|
||||
var color = chart.GetItemColor(serie, null);
|
||||
var content = string.Empty;
|
||||
if (string.IsNullOrEmpty(titleStyle.formatter))
|
||||
{
|
||||
content = serie.serieName;
|
||||
}
|
||||
else
|
||||
{
|
||||
content = titleStyle.formatter;
|
||||
FormatterHelper.ReplaceContent(ref content, -1, titleStyle.numericFormatter, serie, chart);
|
||||
}
|
||||
var label = ChartHelper.AddChartLabel("title_" + 0, serieTitleRoot.transform, titleStyle, chart.theme.common,
|
||||
var content = SerieLabelHelper.GetTitleFormatterContent(serie, null, -1, titleStyle, chart);
|
||||
var label = ChartHelper.AddChartLabel("title_0", serieTitleRoot.transform, titleStyle, chart.theme.common,
|
||||
content, color, TextAnchor.MiddleCenter);
|
||||
serie.context.titleObject = label;
|
||||
label.SetActive(titleStyle.show, true);
|
||||
@@ -461,16 +452,7 @@ namespace XCharts.Runtime
|
||||
if (titleStyle == null) continue;
|
||||
m_InitTitleLabel = true;
|
||||
var color = chart.GetItemColor(serie, serieData);
|
||||
var content = string.Empty;
|
||||
if (string.IsNullOrEmpty(titleStyle.formatter))
|
||||
{
|
||||
content = serieData.name;
|
||||
}
|
||||
else
|
||||
{
|
||||
content = titleStyle.formatter;
|
||||
FormatterHelper.ReplaceContent(ref content, i, titleStyle.numericFormatter, serie, chart);
|
||||
}
|
||||
var content = SerieLabelHelper.GetTitleFormatterContent(serie, serieData, i, titleStyle, chart);
|
||||
var label = ChartHelper.AddChartLabel("title_" + i, serieTitleRoot.transform, titleStyle, chart.theme.common,
|
||||
content, color, TextAnchor.MiddleCenter);
|
||||
serieData.titleObject = label;
|
||||
@@ -493,6 +475,8 @@ namespace XCharts.Runtime
|
||||
var labelPosition = GetSerieDataTitlePosition(null, titleStyle);
|
||||
var offset = titleStyle.GetOffset(serie.context.insideRadius);
|
||||
serie.context.titleObject.SetPosition(labelPosition + offset);
|
||||
var content = SerieLabelHelper.GetTitleFormatterContent(serie, null, -1, titleStyle, chart);
|
||||
serie.context.titleObject.SetText(content);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -506,6 +490,8 @@ namespace XCharts.Runtime
|
||||
var labelPosition = GetSerieDataTitlePosition(serieData, titleStyle);
|
||||
var offset = titleStyle.GetOffset(serie.context.insideRadius);
|
||||
serieData.titleObject.SetPosition(labelPosition + offset);
|
||||
var content = SerieLabelHelper.GetTitleFormatterContent(serie, serieData, i, titleStyle, chart);
|
||||
serieData.titleObject.SetText(content);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user