mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-27 03:10:11 +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)
|
public static void SetGaugeLabelText(Serie serie)
|
||||||
{
|
{
|
||||||
var serieData = serie.GetSerieData(0);
|
var serieData = serie.GetSerieData(0);
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace XCharts.Runtime
|
|||||||
/// <param name="category">选中的类目,一般用在折线图和柱状图</param>
|
/// <param name="category">选中的类目,一般用在折线图和柱状图</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static bool ReplaceContent(ref string content, int dataIndex, string numericFormatter, Serie serie,
|
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 foundDot = false;
|
||||||
var mc = s_Regex.Matches(content);
|
var mc = s_Regex.Matches(content);
|
||||||
@@ -112,7 +112,7 @@ namespace XCharts.Runtime
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var serieData = serie.GetSerieData(bIndex);
|
serieData = serie.GetSerieData(bIndex);
|
||||||
content = content.Replace(old, serieData.name);
|
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);
|
content = s_RegexNewLine.Replace(content, PH_NN);
|
||||||
return foundDot;
|
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);
|
content = TrimAndReplaceLine(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -432,17 +432,8 @@ namespace XCharts.Runtime
|
|||||||
if (titleStyle != null)
|
if (titleStyle != null)
|
||||||
{
|
{
|
||||||
var color = chart.GetItemColor(serie, null);
|
var color = chart.GetItemColor(serie, null);
|
||||||
var content = string.Empty;
|
var content = SerieLabelHelper.GetTitleFormatterContent(serie, null, -1, titleStyle, chart);
|
||||||
if (string.IsNullOrEmpty(titleStyle.formatter))
|
var label = ChartHelper.AddChartLabel("title_0", serieTitleRoot.transform, titleStyle, chart.theme.common,
|
||||||
{
|
|
||||||
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,
|
|
||||||
content, color, TextAnchor.MiddleCenter);
|
content, color, TextAnchor.MiddleCenter);
|
||||||
serie.context.titleObject = label;
|
serie.context.titleObject = label;
|
||||||
label.SetActive(titleStyle.show, true);
|
label.SetActive(titleStyle.show, true);
|
||||||
@@ -461,16 +452,7 @@ namespace XCharts.Runtime
|
|||||||
if (titleStyle == null) continue;
|
if (titleStyle == null) continue;
|
||||||
m_InitTitleLabel = true;
|
m_InitTitleLabel = true;
|
||||||
var color = chart.GetItemColor(serie, serieData);
|
var color = chart.GetItemColor(serie, serieData);
|
||||||
var content = string.Empty;
|
var content = SerieLabelHelper.GetTitleFormatterContent(serie, serieData, i, titleStyle, chart);
|
||||||
if (string.IsNullOrEmpty(titleStyle.formatter))
|
|
||||||
{
|
|
||||||
content = serieData.name;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
content = titleStyle.formatter;
|
|
||||||
FormatterHelper.ReplaceContent(ref content, i, titleStyle.numericFormatter, serie, chart);
|
|
||||||
}
|
|
||||||
var label = ChartHelper.AddChartLabel("title_" + i, serieTitleRoot.transform, titleStyle, chart.theme.common,
|
var label = ChartHelper.AddChartLabel("title_" + i, serieTitleRoot.transform, titleStyle, chart.theme.common,
|
||||||
content, color, TextAnchor.MiddleCenter);
|
content, color, TextAnchor.MiddleCenter);
|
||||||
serieData.titleObject = label;
|
serieData.titleObject = label;
|
||||||
@@ -493,6 +475,8 @@ namespace XCharts.Runtime
|
|||||||
var labelPosition = GetSerieDataTitlePosition(null, titleStyle);
|
var labelPosition = GetSerieDataTitlePosition(null, titleStyle);
|
||||||
var offset = titleStyle.GetOffset(serie.context.insideRadius);
|
var offset = titleStyle.GetOffset(serie.context.insideRadius);
|
||||||
serie.context.titleObject.SetPosition(labelPosition + offset);
|
serie.context.titleObject.SetPosition(labelPosition + offset);
|
||||||
|
var content = SerieLabelHelper.GetTitleFormatterContent(serie, null, -1, titleStyle, chart);
|
||||||
|
serie.context.titleObject.SetText(content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -506,6 +490,8 @@ namespace XCharts.Runtime
|
|||||||
var labelPosition = GetSerieDataTitlePosition(serieData, titleStyle);
|
var labelPosition = GetSerieDataTitlePosition(serieData, titleStyle);
|
||||||
var offset = titleStyle.GetOffset(serie.context.insideRadius);
|
var offset = titleStyle.GetOffset(serie.context.insideRadius);
|
||||||
serieData.titleObject.SetPosition(labelPosition + offset);
|
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